Flink deduplication strategy
发布时间
阅读量:
阅读量
Flink去重
去重计算作为数据分析业务中的一项常见指标处理方式,广泛应用于各类场景,例如统计网站单日的独立访客数量、广告的独立点击用户数等。离线计算通常采用全量数据一次性处理的方式,通过distinct函数实现去重操作;而实时计算则属于增量式、持续性的处理过程。在实际应用中,针对不同场景的需求,如数据规模的差异或对结果精确度的要求,可采取相应的解决方案。本文将围绕如何通过编码实现精确去重展开讨论,并以一个具体场景为例进行说明:统计每个广告每小时的独立点击用户数量。广告点击日志包含以下字段:广告位ID、用户设备ID(idfa/imei/cookie)以及点击时间。
接下来将介绍四种去重方法:
基于MapState的去重方式
利用SQL实现的去重方法
采用HyperLogLog算法进行去重
基于bitmap技术实现的精确去重
MapState去重机制设计
1.1 实现步骤分析
- 为确保当日数据具备可复现性,此处采用事件时间,即广告点击发生的具体时刻,作为划分每小时窗口周期的依据。
- 数据分组的依据为广告位标识符与点击事件所属的具体小时段。
- 选用processFunction进行实现,其中设置两个状态:一个用于存储相关数据,另一个用于记录对应的数据数量。
- 在计算任务完成后,需对数据进行清理操作,并根据时间
全部评论 (0)
还没有任何评论哟~
