GrowingIO数据模型的元数据主要包括事件、事件属性、用户属性,通过元数据创建工具,可以在命令行模式下直接创建元数据。
元数据创建工具支持的操作:
创建事件
创建事件属性
创建用户属性
绑定事件与事件属性
导出元数据
导入元数据
该工具不提供删除功能。若需删除已创建但无用的元数据,需在GrowingIO前端功能里操作。
使用前,请先阅读辅助工具的内容介绍。
python3 meta_importer.py -m create_event \--key <事件名> \[--name <事件显示名>] \[--desc <事件描述>] \
key:必须参数,事件名必须是合法的变量名,仅允许大小写英文、数字、以及下划线,并且不能以数字开头,限长30字符;
name:可选参数,事件显示名可在界面上配置,不加该参数则默认同事件名;
desc:可选参数,事件描述中若有空格则需要加双引号;
例如创建事件ViewProd,显示名是“浏览商品”:
python3 meta_importer.py -m create_event \--key ViewProd \--name 浏览商品
若key已存在,则将该事件的name、desc修改为新的输入值
python3 meta_importer.py -m create_event_variables \--key <事件属性名> \--type <事件属性数据类型> \[--name <事件属性显示名>] \[--desc <事件属性描述>] \
key:必须参数,事件属性名必须是合法的变量名,仅允许大小写英文、数字、以及下划线,并且不能以数字开头,限长30字符;
type:必选参数,事件属性数据类型可选值:string/int/double;
name:可选参数,可在界面上配置,不加该参数则默认同事件属性名;
desc:可选参数,事件属性描述中若有空格则需要加双引号;
例如创建事件属性Price,显示名是“价格”,类型是double:
python3 meta_importer.py -m create_event_variables \--key Price \--type double \--name 价格 \
若key已存在,则将该事件属性的type、name、desc修改为新的输入值
python3 meta_importer.py -m create_user_variables \--key <用户属性名> \--type <用户属性数据类型> \[--name <用户属性显示名>] \[--desc <用户属性描述>] \
key:必须参数,用户属性名必须是合法的变量名,仅允许大小写英文、数字、以及下划线,并且不能以数字开头,限长30字符;
type:必选参数,用户属性数据类型可选值:string/int/date;
name:可选参数,可在界面上配置,不加该参数则默认同用户属性名;
desc:可选参数,用户属性描述中若有空格则需要加双引号;
python3 meta_importer.py -m bind_event_variables \--key <事件名> \--attr <绑定事件属性名集合> \
key:必须参数,若事件不存在则创建;
attr:必须参数,多个属性名之间用英文逗号分隔;
例如将ViewProd事件与Price和Color绑定:
python3 meta_importer.py -m bind_event_variables \--key ViewProd \--attr Price,Color
导出的元数据可以直接用于导入(下一节介绍)。
python3 meta_importer.py -m export_meta \--file <文件名>
file:必须参数,指定导出元数据的文件名
运行后会导出元数据信息,例如:
python3 meta_importer.py -m export_meta \--file meta.json
导出的样例格式如下:
请不要修改以下示例数据中任意key名称(如events、key、name、description等),否则系统将无法识别,无法导入数据
{"events":[{"key": "webhook","name": "webhook","description": ""},{"key": "webhookb","name": "webhookb","description": ""}],"event_variables":[{"key": "webhook_variable_test_string_1","name": "Webhook测试字符串变量1","valueType": "String","description": ""},{"key": "queryTimeRange","name": "查询时间范围","valueType": "Int","description": ""}],"user_variables":[{"key": "ml02","name": "ml测试02","valueType": "String","description": "21111111111333312333333"},{"key": "lyce","name": "ly测试","valueType": "String","description": ""}],"bind_event_variables":[{"key": "webhook","attributes":[{"key": "webhook_variable_test_string"}]},{"key": "webhookb","attributes":[{"key": "webhook_variable_test_string"},{"key": "webhook_variable_test_integer"}]}]}
数据类型 | 含义 | 参数 | 含义 |
events | 事件 | key | 标识符(允许大小写英文、数字、以及下划线,并且不能以数字开头) |
| | name | 展示名称 |
| | description | 描述 |
event_variables | 事件属性 | key | 标识符(允许大小写英文、数字、以及下划线,并且不能以数字开头) |
| | name | 展示名称 |
| | valueType | 数据类型(Int、String、Double) |
| | description | 描述 |
user_variables | 用户属性 | key | 标识符(允许大小写英文、数字、以及下划线,并且不能以数字开头) |
| | name | 展示名称 |
| | valueType | 数据类型(Int、String、Double) |
| | description | 描述 |
bind_event_variables | 事件与事件属性绑定 | key | 事件标识符 |
| | attributes | key为事件属性的标识符 |
导入元数据的格式请见导出元数据中输出的JSON
python3 meta_importer.py -m import_meta \--file <文件名>
file:可选参数,指定导入元数据所在的文件;
其他说明:
导入元数据按导入内容的顺序执行,每项内容的校验规则同其单项的校验规则;
若其中一项内容执行失败,则程序退出,该项后面的内容停止执行,该项前面已导入的内容立即生效;
可将执行失败的内容重新编辑后再次导入,相同的内容更新而不创建;