我花了3天的时间对此进行研究,并试图找出答案,但是没有运气。现在,我正在考虑一次仅将数据一次加载到一个新表中(这会花费很长时间,并且真的不想这样做)。
我有一个表格,里面有一个网站的浏览量。它位于Hive表中,我使用Hue访问数据。它具有不同的用户ID,会话ID,日期和页面。我们每天在大约30个不同的页面上获得约1600万的观看次数。
我正在尝试创建页面浏览量,独立用户数和7天滚动独立用户数。因此,一天中的不同用户以及该天之前一周中的不同用户。下面的示例。
我尝试使用按语句划分的分区,但是没有运气。我曾尝试将表本身与date_dimension表连接,但由于表每天有16M行,因此Hue最终会挂起并且永远无法完成查询
这是我只有一天的代码,但是我需要将其扩展到整个去年,而不是一次将数据输入到新表中。显然需要替换硬编码的日期。
SELECT '2019-04-07' AS Temp_Date
, t.pageview
, COUNT (DISTINCT CASE WHEN t.dates = '2019-04-07' THEN User_ID END) AS Users
, COUNT (DISTINCT User_ID) AS 7Day_Users
, COUNT (CASE WHEN t.dates = '2019-04-07' THEN User_ID END) AS Views
, COUNT (*) AS 7Day_Views
FROM(
SELECT pageview
, User_ID
, Date
FROM ar3.t59_4_1
WHERE Date BETWEEN '2019-04-01' AND '2019-04-07'
) t
GROUP BY '2019-04-07'
,t.pageview
当前代码的示例结果表:
Temp_Date pageview Users 7Day_users Views 7Day_views
2019-04-07 Home 5467 28754 8765 51624
2019-04-07 About 150 548 324 3429
2019-04-07 Store 26345 128754 33247 354324
2019-04-07 Blog 856 28754 8765 54324
2019-04-07 FAQ 32 187 65 478
实际结果要长得多。预期的结果是每天都有。
Temp_Date pageview Users 7Day_users Views 7Day_views
2019-04-07 Home 5467 28754 8765 51624
2019-04-07 About 150 548 324 3429
2019-04-07 Store 26345 128754 33247 354324
2019-04-07 Blog 856 28754 8765 54324
2019-04-07 FAQ 32 187 65 478
2019-04-06 Home 5467 28754 8765 51624
2019-04-06 About 150 548 324 3429
2019-04-06 Store 26345 128754 33247 354324
2019-04-06 Blog 856 28754 8765 54324
2019-04-06 FAQ 32 187 65 478
2019-04-05 Home 5467 28754 8765 51624
2019-04-05 About 150 548 324 3429
2019-04-05 Store 26345 128754 33247 354324
2019-04-05 Blog 856 28754 8765 54324
2019-04-05 FAQ 32 187 65 478
2019-04-04 Home 5467 28754 8765 51624
2019-04-04 About 150 548 324 3429
2019-04-04 Store 26345 128754 33247 354324
2019-04-04 Blog 856 28754 8765 54324
2019-04-04 FAQ 32 187 65 478
...etc. (continues for all days in past 12 months)