1. 概述

事件数据去重可以用于删除重复的事件数据 (去重指的是如果有多条一模一样的数据,去重之后则只有 1 条这样的数据了)。
重复的事件数据可以是两条完全一摸一样的事件数据记录;也可以是忽略某些属性的值之后,完全一摸一样的事件数据记录。


该工具 提供 如下功能:

  • 提交事件数据去重任务。
  • 查询事件数据去重任务状态。

对涉及去重的数据是不可逆操作,请严格审查执行参数,并谨慎执行。

2. 提交事件去重任务

本功能用于提交一个事件去重任务,任务提交成功之后,会在控制台输出任务 id。

后续可以使用 查询事件去重任务状态 功能查询该任务的状态。

2.1. 操作指令

horizonadmin event_distinct execute
BASH

2.2. 参数列表

参数必填描述
-p / --project操作事件数据去重的项目的项目名。
-b / --begin需要去重的事件数据的开始时间 (包含开始时间),这个时间是事件数据发生的时间,不是事件数据上报的时间。
时间格式:yyyy-MM-dd
样例:-b 2024-01-01 或者 --begin 2024-01-01
-e / --end需要去重的事件数据的结束时间 (包含结束时间),这个时间是事件数据发生的时间,不是事件数据上报的时间。
时间格式:yyyy-MM-dd
样例:-e 2024-01-02 或者 --end 2024-01-02
--skip_properties

需要忽略属性值的属性名列表,多个属性名之间用 ,(英文逗号) 间隔,参数值需要用 '(单引号) 包裹。
样例:--skip_properties '$lib, $receive_time'

如不指定,则使用全部属性作为去重依据。

2.3. 指令样例

# 对 default 项目 2020年11月20号 的数据进行去重
horizonadmin event_distinct execute -p default -b 2020-11-20 -e 2020-11-20
 
# 对 default 项目 2020年11月20号 的事件进行去重,去重时忽略属性 $lib 的属性值
horizonadmin event_distinct execute -p default -b 2020-11-20 -e 2020-11-20 --skip_properties '$lib'
BASH


3. 查询事件数据去重任务状态

本功能用于查询事件数据去重任务的状态。

3.1. 操作指令

horizonadmin event_distinct show
BASH

3.2. 参数列表

参数必填描述
-j / --job_id事件数据去重任务的任务 id

3.3. 任务状态

状态描述
RUNNING事件数据去重任务正在处理中
SUCCESS事件数据去重任务执行成功
FAILED事件数据去重任务执行失败

3.4. 指令样例

# 查询任务 id 为 12345 的任务状态
horizonadmin event_distinct show -j 12345
BASH


4. 最佳实践

4.1. 切换到 sa_cluster 用户

su - sa_cluster
BASH

4.2. 开启一个 screen 窗口

开启 screen 窗口可以避免因为与远程服务器断开连接、突然没有网络等情况,导致操作失败。

screen -S event_distinct
BASH

4.3. 统计需要去重的事件数据的条数

统计需要去重的事件数据的条数,可以用于后续验证,验证事件数据去重操作结果跟预期是否相符。

4.4. 提交事件数据去重任务

参考 提交事件去重任务

4.5. 查询事件数据去重任务状态

参考 查询事件数据去重任务状态

4.6. 统计需要去重的事件数据的条数

当事件数据去重任务处理成功之后,统计需要去重的事件数据的条数。