0919 作业:HyperLogLog 算法在 Presto 的应用
1、搜索 HyperLogLog 算法相关内容,了解其原理,写出 5 条 HyperLogLog 的用途或大数据场景下的实际案例。
Presto 是专门为大数据实时查询计算而设计和开发的产品。由于 Presto 是基于 Java 语言开发的, 因此,对使用者和开发者而言, Presto 极易学习、使用并针对特定的业务场景进行改造开发和性能优化。无论是对多数据源支持,还是高性能、易用性、可扩展性等方面, Presto 都是大数据实时查询计算产品中的佼佼者。
Presto 支持在线数据查询,包括 Hive, Cassandra, 关系数据库以及专有数据存储。 一条 Presto 查询可以将多个数据源的数据进行合并,可以跨越整个组织进行分析。
Presto 以分析师的需求作为目标,他们期望响应时间小于 1 秒到几分钟。 Presto 终结了数据分析的两难选择,要么使用速度快的昂贵的商业方案,要么使用消耗大量硬件的慢速的“免费”方案。
实际应用场景或案例如下:
案例 1:hyperloglog 可以用按日统计每日 UV。
案例 2:hyperloglog 可以用按日统计每日唯一 IP 访问数。
案例 3:hyperloglog 通过合并每日 UV,得到一段时间的 UV。
案例 4:hyperloglog 可以统计实时访问的 UV。
案例 5:hyperloglog 可以统计总的注册用户。
在本地 docker 环境或阿里云 e-mapreduce 环境进行 SQL 查询,要求在 Presto 中使用 HyperLogLog 计算近似基数。(请自行创建表并插入若干数据)。
学习使用 Presto-Jdbc 库连接 docker 或 e-mapreduce 环境,重复上述查询。(选做)
评论