元数据管理工具
一、简介
元数据管理工具主要用于对 AE 系统中的事件属性、用户属性进行类型修改或删除操作。由于元数据的调整会暂停数据的 ETL 流转,因此我们建议只在确定类型导入错误与数据异常时使用本工具,不建议进行频繁操作。
通过二开工具完成对上报事件属性的修改后,请联系业务人员在「数据 → 数据管理 → 事件属性」页面确认属性的连接关系是否正常(看列表的「连接状态」列,以及页面右上角「进入 来源事件属性管理 页面」里的上报事件属性列表;用户属性同理,在「数据 → 数据管理 → 用户属性」页面查看),避免因类型变更导致已经使用该属性的看板、报表、标签等资产无法正常计算。
二、使用说明
元数据管理工具只支持私有化服务的用户使用。root 用户登录私有化集群里部署了二次开发工具的服务器(分布式默认前三台),执行 su - ta
然后执行 ta-tool modify_meta,即可进入元数据管理工具界面。
su - ta
ta-tool modify_meta
2.1 填写需处理项目的 appid
首先需要输入待修改项目的 appid ,可进入 AE 系统的「项目管理」页面查看项目的 appid 。
请输入需要属性修改或删除项目的appid >××××
2.2 确认项目名称
输入 appid 后,会提示待修改项目的项目名,输入"y"进行确认,输入"n"取消操作
请确认您将修改的项目:项目测试展示 <y/n> y
2.3 选择元数据操作类型
接下来可以开始添加需要执行的操作类型,此处支持循环添加操作动作,在配置完成一个操作设置后,可以添加另一个操作,直到选择「添加完成」为止。建议把所有修改或删除的操作一次性集中完成。
请选择操作类型
1. 修改事件属性类型
2. 修改用户属性类型
3. 删除事件属性
4. 删除用户属性
5. 添加完成
>
2.4 修改事件属性类型
2.4.1 常规事件属性修改
-
例:修改事件属性 argNum,将其类型从 number 改为 string:
- 操作类型选择:1
- 事件属性名输入:argNum
- 修改类型输入:string
请选择操作类型
>1
当前操作仅修改上报事件属性,请在修改后进入<数据管理-事件属性>页面确认是否存在异常!
请输入要修改的事件属性名>argNum
当前类型:[number],请输入修改类型
number. 数值类型
string. 字符串类型
datetime. 时间类型
bool. 布尔类型
array. 列表类型
row. 对象类型
array_row. 对象列表类型
>string
2.4.2 对象、对象组子属性修改
在元数据管理工具中,可以使用「父属性.子属性」的表达方式在修改/删除时指向对象(组)的子属性
-
例:修改对象(组)属性 argrow 的子属性 channel_id,将其类型从 number 改为 string:
- 操作类型选择:1
- 事件属性名输入:argrow.channel_id
- 修改类型输入:string
请选择操作类型
>1
当前操作仅修改上报事件属性,请在修改后进入<数据管理-事件属性>页面确认是否存在异常!
请输入要修改的事件属性名>argrow.channel_id
当前类型:[number],请输入修改类型
number. 数值类型
string. 字符串类型
datetime. 时间类型
bool. 布尔类型
array. 列表类型
>string
2.5 修改用户属性类型
2.5.1 常规用户属性修改
-
例:修改用户属性 user_argNum,将其类型从 number 改为 string:
- 操作类型选择:2
- 用户属性名输入:user_argNum
- 修改类型输入:string
请选择操作类型
>2
请输入要修改的用户属性名>user_argNum
当前类型:[number],请输入修改类型
number. 数值类型
string. 字符串类型
datetime. 时间类型
bool. 布尔类型
array. 列表类型
row. 对象类型
array_row. 对象列表类型
>string
2.5.2 对象、对象组子属性修改
-
例:修改对象(组)属性 user_argrow 的子属性 channel_id,将其类型从 number 改为 string:
- 操作类型选择:2
- 用户属性名输入:user_argrow.channel_id
- 修改类型输入:string
请选择操作类型
>2
请输入要修改的用户属性名>user_argrow.channel_id
当前类型:[number],请输入修改类型
number. 数值类型
string. 字符串类型
datetime. 时间类型
bool. 布尔类型
array. 列表类型
>string
2.6 删除事件属性
-
例:删除常规事件属性 argbool 和对象(组)属性 argrow 的子属性 level:
- 操作类型选择:3
- 事件属性名输入:argbool,argrow.level
请选择操作类型
>3
当前操作仅删除上报事件属性,请在删除后进入<数据管理-事件属性>页面确认是否存在异常!
请输入要删除的事件属性名,多个用逗号分隔>argbool,argrow.level
2.7 删除用户属性情况下的操作
-
例:删除常规用户属性 user_argbool 和对象(组)属性 user_argrow 的子属性 level:
- 操作类型选择:4
- 用户属性名输入:user_argbool,user_argrow.level
请选择操作类型
>4
请输入要删除的用户属性名,多个用逗号分隔>user_argbool,user_argrow.level
2.8 修改和删除操作添加完成
- 在完成所有配置后,输入「5」进行确认
请选择操作类型
>5
以下为[项目测试展示]项目准备调整的属性meta:
事件属性类型修改列表:
argnum: number -> string
argrow.channel_id: number -> string
用户属性类型修改列表:
user_argnum: number -> string
user_argrow.channel_id: number -> string
待删除的事件属性列表:
argbool
argrow.level
待删除的用户属性列表:
user_argbool
user_argrow.level
警告:操作完成后,在已导入的数据中,修改过类型的属性值将置为NULL;修改属性类型和删除属性操作都无法回滚!
警告:您要操作的属性包含资产依赖,会影响对应资产,请确认后再操作!
-----事件属性[argrow.channel_id],影响类型为[普通依赖],变更类型为[update]-----
-----事件属性[argnum],影响类型为[普通依赖],变更类型为[update]-----
-----用户属性[user_argnum],影响类型为[普通依赖],变更类型为[update]-----
-----事件属性[argbool],影响类型为[普通依赖],变更类型为[delete]-----
-----事件属性[argrow.level],影响类型为[普通依赖],变更类型为[delete]-----
-----用户属性[user_argrow.channel_id],影响类型为[普通依赖],变更类型为[update]-----
-----用户属性[user_argbool],影响类型为[普通依赖],变更类型为[delete]-----
-----用户属性[user_argrow.level],影响类型为[普通依赖],变更类型为[delete]-----
操作完成后,修改过类型的属性值将置为 NULL,修改和删除都无法回滚。
2.9 确认操作
- 在执行前会进行最终确认,输入"y"进行确认,输入"n"取消操作
准备执行操作,请确认(y/n)>y
请再次确认(y/n)>y
2.10 执行相关操作
完成确认后,管理工具会先暂停 AE 系统的数据 ETL 服务。之后会执行本次设置中的所有操作,在完成所有操作后,会重新启动数据 ETL 服务。在此期间上报的数据将会延迟入库,但不会丢失。
...
=== 停止ta1 ETL服务 ===
=== ta1 ETL 停止成功 ===
...
事件属性类型修改成功,argnum: number -> string
...
用户属性类型修改成功,user_argnum: number -> string
...
事件属性类型删除成功,argbool
...
用户属性类型删除成功,user_argbool
...
----------属性修改任务执行成功----------
== 等待etl组件启动 ==
== ta1ETL 启动成功 ===
----------开始关闭更新全局锁----------
----------关闭更新全局锁完成----------
项目属性调整成功
2.11 最终结果显示
2.12 对数据的影响
2.12.1 普通属性
在修改普通属性时,修改后会导致该属性之前导入的数据置为 null。
2.12.2 父属性
在修改父属性时,修改后会导致该父属性之前导入的数据置为 null,包括该父属性所有子属性的值。
2.12.3 子属性
在修改子属性时,修改后会导致该子属性之前导入的数据置为 null,不影响同父属性下其他子属性。
三、注意事项
- 在执行修改和删除过程中,尽量避免会话断开,或者使用 Ctrl + C 来中断操作。
- 修改和删除属性会停止 ETL 流转,避免频繁操作影响数据的实时流入。
- 子级属性不允许修改为复杂结构类型。

