sdfadmin 数据清理工具使用说明
|
收藏
只有安装了 SDF 才能使用该工具,没有安装 SDF 请使用 sa_clean 工具进行数据清理,参考文档:sa_clean 数据清理工具使用说明
如果不确认您的环境是否安装了 SDF,请咨询神策值班同学获取一对一的协助。
概述
数据清理工具既可用于清理神策分析中导入的行为事件数据,也可用于对导入的行为事件数据去重。
该工具 不提供 的功能如下:
- 删除指定属性的数据。
- 删除某次批量导入的数据。
- 删除某个时间段导入的数据。
- 将某个事件定义删除。但是元数据管理中可以对事件进行隐藏,管理员可以操作。
数据清理为 不可逆操作,频繁或大量的清理数据将导致碎片过多可能会 影响导入进度,请谨慎操作。
除了 HdfsImporter 导入工具之外,其他导入数据的方式,导入的数据都是会先经过 Kudu,达到一定条件之后,事件数据才会转换到 Hdfs 中存储。
使用方法
请先 ssh 到部署了神策服务的任意一台机器,在 sa_cluster 账户下使用数据清理工具。从 root 切换到 sa_cluster 账户:
su - sa_cluster
CODE
- 请注意 su 与 sa_cluster 中间的减号。
事件删除
- 该方法可以清理一个项目指定时间段内所有事件或者指定某些事件名称的事件数据的数据。
- 该时间段为事件行为的时间,非导入数据的时间段。
- 该方法会保留事件、事件属性的定义。
- 单机版:不会释放磁盘。
- 集群版:不会立即释放磁盘,每天凌晨会例行清理。注意 : 集群版事件删除一般需要消耗大量时间和资源,尽量不要指定过大的时间范围。
提交一个事件删除任务
执行命令
sdfadmin event_delete
--method/-m execute <操作类型> \
--project/-p default <项目名> \
--begin/-b 2020-12-01 <删除数据的起始日期(包含这一天)> \
--end/-e 2020-12-01 <删除数据的结束日期(包含这一天)> \
[--priority] LOW <Job的优先级> \
[--events] 'HomePageView,FistPay' <删除的事件名> \
[--hours] 3,13,21 <删除的小时数或范围> \
[--libs] python,Android <删除的事件来源> \
[--hdfs_import_names] HdfsImporter-785,HdfsImporter-786 <删除的HDFSInporter导入批次> \
[--reserved_events] FollowClick,SpecificRoomView <保留的事件名> \
CODE
参数列表
参数名 | 必须 | 说明 | 格式 | 样式 | 备注 |
---|---|---|---|---|---|
--method | o | 操作类型 | execute / show / history | execute | |
--begin | o | 删除数据的起始日期(包含这一天) | yyyy-MM-dd | 2020-06-17 | 此时间是事件时间 |
--end | o | 删除数据的结束日期(包含这一天) | yyyy-MM-dd | 2020-06-17 | 此时间是事件时间 |
--project | o | 操作对应的项目 | 项目名 | default | |
--priority | Job 优先级 | VERY_LOW / LOW / NORMAL | LOW | 默认 VERY_LOW,若想增加执行优先级,可指定为 LOW / NORMAL | |
--events | 指定删除数据的 event,可同时指定多个事件,使用逗号分隔 | 事件名称 | 'gameListView,newHobby,search' | 由于$符号的转义问题,要删除的事件需要用单引号引起来,如 'gameListView,newHobby,search' | |
--hours | 指定删除数据所属的小时数,使用逗号分隔 | 1,2,5,23 | 15,16,17 | ||
--libs | 删除的事件来源,多个来源之间使用逗号分隔 | LIBS | python,java | 不能指定BatchImpoter或者HDFSImporter,若要删除某一批HDFSImporter导入的数据,可使用下面的参数,目前不支持删除某一批BatchImporter导入的数据 | |
--hdfs_importer_names | 删除的 hdfs_importer 导入批次 | HdfsImporter-785,HdfsImporter-786 | |||
--reserved_events | 指定保留的事件名 | 事件名称 | FollowClick,SpecificRoomView | 由于$符号的转义问题,要保留的事件需要用单引号引起来,如 'gameListView,newHobby,search' |
注意:–events 不可以和 --reserved_events 参数同时使用
使用示例
- 删除项目 httest 2020 年 11 月 14 号的数据
sdfadmin event_delete -m execute -p httest -b 2020-11-04 -e 2020-11-04
CODE
- 删除项目 httest 2020 年 11 月 14 号用 python SDK 和 java SDK 导入的数据
sdfadmin event_delete -m execute -p httest -b 2020-11-04 -e 2020-11-04 --libs 'python,java'
CODE
- 删除项目 httest 2020 年 11 月 1 号事件名为 gameListView,newHobby,search 的数据
sdfadmin event_delete -m execute -p httest -b 2020-11-01 -e 2020-11-01 --events 'gameListView,newHobby,search'
CODE
- 删除项目 httest 2020 年 11 月 1 号小时数为 1,5,7 的数据
sdfadmin event_delete -m execute -p httest -b 2020-11-01 -e 2020-11-01 --hours 1,5,7
CODE
查看事件删除 job 信息
执行命令
sdfadmin event_delete
--method/-m show <操作类型> \
--job_id 74562 <execute提交job后返回的job ID> \
CODE
参数列表
参数名 | 必须 | 说明 | 格式 | 样式 | 备注 |
---|---|---|---|---|---|
--method | o | 操作类型 | execute / show / history | execute | |
--job_id | o | execute 提交 job 后返回的job ID | 74562 | 该 job ID 对应 sdf_data_loader_job 表中的 ID |
查看事件删除 job 历史
执行命令
sdfadmin event_delete
--method/-m history <操作类型> \
--project/-p default <项目名> \
--begin/-b 2020-12-01 <要查看的最早的 Job 的创建时间(包含这一天)> \
--end/-e 2020-12-01 <要查看的最晚的 Job 的创建时间(包含这一天)>
CODE
参数列表
参数名 | 必须 | 说明 | 格式 | 样式 | 备注 |
---|---|---|---|---|---|
--method | o | 操作类型 | |||
--project | o | 项目名称 | |||
--begin | o | 最早的 job 创建时间 | yyyy-MM-dd | ||
--end | o | 最晚的 job 创建时间 | yyyy-MM-dd |
事件去重
- 该方法会去重重复导入的数据,目前仅集群私有环境支持此方法。
提交一个事件去重任务
执行命令
sdfadmin event_distinct
--method/-m execute <操作类型> \
--project/-p default <项目名> \
--begin/-b 2020-12-01 <去重数据的起始日期(包含这一天)> \
--end/-e 2020-12-01 <去重数据的结束日期(包含这一天)> \
[--priority] LOW <Job的优先级> \
[--events] 'HomePageView,FistPay' <去重的事件名> \
[--skip_properties] property1, property2 <去重时需要忽略的属性>
CODE
参数列表
参数名 | 必须 | 说明 | 格式 | 样式 | 备注 |
---|---|---|---|---|---|
--method | o | 操作类型 | execute / show / history | execute | |
--begin | o | 去重数据的起始日期(包含这一天) | yyyy-MM-dd | 2020-06-17 | 此时间是事件时间 |
--end | o | 去重数据的结束日期(包含这一天) | yyyy-MM-dd | 2020-06-17 | 此时间是事件时间 |
--project | o | 操作对应的项目名称 | 项目名 | default | |
--priority | Job 优先级 | VERY_LOW/LOW/NORMAL | LOW | 默认 VERY_LOW,若想增加执行优先级,可指定为 LOW / NORMAL | |
--events | 指定要去重的 event,多个事件使用逗号分隔 | 事件名称 | gameListView,newHobby,search | ||
--skip_properties | 去重时需要忽略的属性,多个属性之间使用逗号分隔 | 属性名 | property1, property2 | _offset, $kafka_offset,$receive_time这三个属性默认忽略,如果有其他需要忽略的属性,需要用该参数进行指定,如忽略 $lib 属性进行去重:–skip_properties '$lib' 若是去重HDFSImporter导入的数据,需要额外跳过属性 $hdfs_import_batch_name |
使用示例
- 对项目 httest 2020 年 11 月 20 号的数据进行去重
sdfadmin event_distinct -m execute -p httest -b 2020-11-20 -e 2020-11-20
CODE
- 对项目 httest 2020 年 11 月 20 号的事件 HomePageView,FistPay 进行去重
sdfadmin event_distinct -m execute -p httest -b 2020-11-20 -e 2020-11-20 --events 'HomePageView,FistPay'
CODE
- 对项目 httest 2020 年 11 月 20 号的事件忽略 $lib 属性进行去重
sdfadmin event_distinct -m execute -p httest -b 2020-11-20 -e 2020-11-20 --skip_properties '$lib'
CODE
查看事件去重 job 信息
执行命令
sdfadmin event_distinct
--method/-m show <操作类型> \
--job_id 74562 <execute提交job后返回的job ID>
CODE
参数列表
参数 | 必须 | 说明 | 格式 | 样式 | 备注 |
---|---|---|---|---|---|
--method | o | 操作类型 | execute / show / history | execute | |
--job_id | o | execute 提交 job 后返回的job ID | 74562 | 该 job ID 对应 sdf_data_loader_job 表中的 ID |
查看事件去重 job 历史
执行命令
sdfadmin event_distinct
--method/-m history <操作类型> \
--project/-p default <项目名> \
--begin/-b 2020-12-01 <Job 的创建时间(包含这一天)> \
--end/-e 2020-12-01 <Job 的创建时间(包含这一天)> \
CODE
参数列表
参数 | 必须 | 说明 | 格式 | 样式 | 备注 |
---|---|---|---|---|---|
--method | o | 操作类型 | |||
--project | o | 项目名称 | |||
--begin | o | 最早的 job 创建时间 | yyyy-MM-dd | ||
--end | o | 最晚的 job 创建时间 | yyyy-MM-dd |
注:本文档内容为神策产品使用和技术细节说明文档,不包含适销类条款;具体企业采购产品和技术服务内容,以商业采购合同为准。