大数据 presto 作业
1. 搜索 HyperLogLog 算法相关内容,了解其原理,写出 5 条 HyperLogLog 的用途或大数据场景下的实际案例。
hyperloglog 可以用按日统计每日 UV
hyperloglog 可以用按日统计每日唯一 IP 访问数
hyperloglog 通过合并每日 UV,得到一段时间的 UV
hyperloglog 可以统计实时访问的 UV
hyperloglog 可以统计总的注册用户
2. 在本地 docker 环境或阿里云 e-mapreduce 环境进行 SQL 查询, 要求在 Presto 中使用 HyperLogLog 计算近似基数。(请自行创 建表并插入若干数据)
新建 presto job
CREATE TABLE bsm_table1(
begindate integer,
media varchar,
hll varbinary
);
create table bsm_table3(
userid integer,
media varchar,
daytime integer
);
create table bsm_table7(
cnt bigint,
media varchar,
begindate integer
);
INSERT INTO bsm_table1
SELECT daytime, media, cast(approx_set(userid) AS varbinary)
FROM bsm_table3
where (daytime>=20210920 and daytime<=20210923)
GROUP BY daytime, media;
INSERT INTO bsm_table7
SELECT cardinality(merge(cast(hll AS HyperLogLog))),media,begindate AS daily_unique_users
FROM bsm_table1
group by media,begindate;
执行成功
新建 spark sql job,验证结果,可以看到统计结果无误
评论