ITPub博客

首页 > 大数据 > Hadoop > Flink SQL - Deduplication 去重

Flink SQL - Deduplication 去重

原创 Hadoop 作者:元亨利贞 时间:2023-07-21 17:39:48 0 删除 编辑

介绍

Flink SQL 中的 Deduplication 是一种数据清洗方式,用于从数据流中去除重复的数据。Deduplication 可以提高数据的质量和准确性,也可以节省存储空间和提高性能。


语法

SELECT *
FROM (
  SELECT *,
    ROW_NUMBER() OVER (PARTITION BY key_col ORDER BY time_col) as row_num
  FROM source_table
)
WHERE row_num = 1;

其中:

  • PARTITION BY:指定去重的维度,可以按照一个或多个字段或表达式进行分区
  • ORDER BY:指定去重的顺序,必须是时间戳列(事件时间或处理时间)
  • ROW_NUMBER:指定去重的策略,可以选择保留第一行或最后一行
  • WHERE:指定去重的条件,只保留  row_num = 1 的数据


Deduplication 的应用场景

  • 日志去重:例如去除日志上报中的重复数据,保证每条日志只被处理一次
  • 事务去重:例如去除金融交易中的重复数据,保证每笔交易只被计算一次
  • 状态去重:例如去除设备状态中的重复数据,保证每个设备只保留最新的状态


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70024433/viewspace-2965750/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2022-11-21

  • 博文量
    383
  • 访问量
    248006