标签配置
平台目前包含3种类型的标签:原子标签、衍生标签、组合标签、自定义标签,后续将逐步增加算法标签、实时标签。
- 原子标签:实体的原始数据维度,可是实体的基本属性,如性别、年龄、性别等,也可是经过加工的数据,如会员等级、年收入、年消费金额等。在{tag_en}中,原子标签一般来源于离线计算DWS层的一个结果表,读入标签系统中,衍生标签和组合标签基于此计算。
- 衍生标签:可以通过实体的主表、辅表或关系表的基础字段来创建,支持配置规则或写SQL两种加工方式。
- 组合标签:规则类标签,多个标签的组合,可由原子标签、衍生标签、自定义标签组合而来。
- 自定义标签:通过导入标签数据的方式创建的标签。
标签创建
原子标签
原子标签在创建实体时,从源表中读入,读入后即成为标签体系中的原子标签,无需在界面上手动新增。
原子标签读入后,为“未发布”状态,需在标签配置页面手动发布。
衍生标签
规则加工
步骤一:在标签配置页面,点击新增标签-衍生标签-规则加工进入标签新增页面,填写标签基本信息。
- 标签名称:除空格外,其余字符都支持,不超过64个字符;
- 标签英文名:标签标识,作为标签存表时的字段名称;
- 选择目录:选择标签归类类目;
- 业务口径:业务口径信息输入,不超过200个字符;
- 技术口径:技术口径信息输入,不超过200个字符;
- 标签描述:标签描述信息,除空格外,其余字符都支持,不超过200个字符;
标签英文名创建后,后续不支持修改。
步骤二:设置标签规则,包括3部分,配置数据范围、统计周期和标签值规则。
- 数据范围:衍生标签可基于源数据主表、辅表、关系来加工,选择数据范围后,衍生标签配置需要的所有字段,都需从该实体表或关系表下选择,无法选择其他表的字段。
- 实体:选择实体下的某张表(主表或辅表),实体下的表可在实体管理菜单中配置;
- 关系:选择该实体下的关系,关系可在关系管理中配置;
- 实体建标签只能通过实体下单张表(主表或辅表)中的字段来创建衍生标签 ;
- 如果创建衍生标签需要用到的字段分布在同一实体或不同实体下的多张表中,那么需要通过关系来建标签。
- 统计周期:为SQL拼接中的where条件
- 统计周期:用于加工“带时间维度的标签”,比如最近30天消费金额,最近60天销售套数等,可在统计周期菜单中配置;
- 时间字段:如果有具体的统计周期,需要选择时间字段;
- 过滤条件:用于标签值的整体过滤,支持设置“且、或”关系以及根据选择的字符类型设置不同的操作符。
所选时间字段的格式需要与统计周期的格式一致。
- 标签值规则:从已经发布的原子标签中选择,为标签值定义不同的规则,标签值的配置方式为选择标签、选择函数、选择操作符和选择字段。
标签数据类型分为5种,数值型、字符型、日期型、数组型和多值型,根据数据类型,系统将给出不同的配置选项。
- 数值型
可使用的函数及操作符如下:
函数 | 求和、均值、计数、去重计数、最大值、最小值、无函数 |
---|---|
操作符 | 等于(输入值与标签值精准匹配,可输入多个值)、不等于(输入值与标签值精准匹配,可输入多个值)、小于、小于等于、大于、大于等于、区间(设置数值取值区间)、有值、无值 |
- 字符型
可使用的函数及操作符如下:
函数 | 计数、去重计数 |
---|---|
操作符 | 等于(输入值与标签值精准匹配,可输入多个值)、不等于(输入值与标签值精准匹配,可输入多个值)、包含(可输入多个值)、不包含(可输入多个值)、有值、无值 |
- 日期型
无函数,可使用操作符如下:
时间类型 | 操作符 |
---|---|
绝对时间 | 等于、不等于、小于、小于等于、大于、大于等于、区间(开始时间~结束时间) |
相对当前时间点 | 之内、之前,例如选择“最近购买时间 相对当前时间点 3天之内”,即表示“最近3天购买过的用户”。 |
相对当前时间区间 | 选择起止时间~终止时间,例如“注册时间 在相对当前时间周期 在过去30天到过去2之内”,表示的是“所有(相对于数据更新时间)过去30天到过去2天这段时间内注册的用户”。 |
有值 | -- |
无值 | -- |
- 数组型
无函数,可使用操作符如下:
函数 | - |
---|---|
操作符 | 等于(输入值与标签值精准匹配,可输入多个值)、不等于(输入值与标签值精准匹配,可输入多个值)、包含(可输入多个值)、不包含(可输入多个值)、有值、无值 |
- 多值型
多值型标签的值由一个或多个值组合构成,多个值之间由分隔符进行分隔(系统固定为英文逗号)。
只有字符型的原子标签支持多值,且需在创建实体/关系时标记标签是否为多值列。
多值型标签的操作符包括【包含部分、包含所有、不包含、精确匹配、模糊匹配、不匹配、有值、无值】,可选的是分隔并去重后的标签值。其中:
- 包含所有:若选择多个标签值,筛选结果将同时符合所有标签值,即多个标签值的筛选结果之间使用交集运算;
- 包含部分:若选择多个标签值,筛选结果将至少符合其中一个标签值,即多个标签值的筛选结果之间使用并集运算。
若配置了映射字典,用该标签创建新标签或圈群,设置规则时的操作符将只有【等于、不等于、有值、无值】。
标签值类型: 支持定义标签值计算为单值标签还是多值标签
- 单值标签:根据标签值配置顺序依次匹配实例满足程度,命中其中一个后,后续标签值不再计算。适用于用户价值等级这类标签值之间互斥的场景。
- 多值标签:每一个实例都匹配所有的标签值,计算结果中,一个实例可能会命中多条,命中结果就存储多个标签值,多个值之间通过英文逗号分隔,整体以字符串存储。适用于用户偏好类型这类标签值之间互不影响的场景
预估标签值:可进行全量计算、1/2抽样、1/4抽样、1/8抽样、1/16抽样、1/32抽样、1/64抽样、1/128抽样,系统将抽取全量数据中的部分数据算标签值的分布,用户可看到标签值规则下的实例分布。
步骤三:设置标签的更新规则,支持设置更新周期和更新优先级。
- 更新周期:支持天、周、月、小时、分钟更新,默认每天02:00更新
- 更新时间:根据更新周期选择计划的具体更新时间,可参考更新周期
- 更新优先级:可选1~10,数字越小,优先级越高;当底层资源不够时,系统会按照优先级顺序运行任务
单个标签的周期更新粒度不能小于实体标签大宽表的更新粒度,假设实体标签大宽表是天更新,单个标签不能是小时或分钟更新。
步骤四:保存后,衍生标签配置完成,页面将回到标签列表页。
SQL加工
支持常用聚合函数、窗口函数、多表join、Case when等SQL语句灵活加工衍生标签。
步骤一:在标签配置页面,点击新增标签-衍生标签-SQL加工进入标签新增页面,编辑SQL内容
- 数据表列表:展示各实体下的主表、辅表和关系表,以及表字段,用户可以复制元数据至编辑器中
- 代码编辑器:可以在代码编辑器内编写SQL语句
- 格式化语句:可以对PrestoSQL语句进行标准格式化展示
- SQL编写提示:包括SQL规范和示例语句
- 系统变量:系统自带如下几个参数
${bdp.system.bizdate} --业务日期,业务日期默认为计划运行日期的前一天,格式:yyyyMMdd
${bdp.system.bizdate2} --业务日期,格式:yyyy-MM-dd
${bdp.system.cyctime} --计划时间,格式:yyyyMMddHHmmss
${bdp.system.premonth} --上个月(以计划时间为基准),格式:yyyyMM
${bdp.system.currmonth} --当前月(以计划时间为基准),格式:yyyyMM
${bdp.system.runtime} --当前时间,即任务实际运行的时间,格式:yyyyMMddHHmmss
- 不能进行select * 查询;
- 不能出现Alter、Delete、Drop、Insert等关键词;
- 只能查询,且查询语句中必须包含该实体的主键字段。
示例,建一个名为“age_level”的标签,年龄小于12岁的为“少年”,12岁和30岁之间的为“青年”,30岁到50岁的为“中年”,50岁到80岁的为“中老年”,大于80岁的为“老年”。以下便是SQL:
Select
id,
Case
When age<12 then '少年'
When age between 12 and 30 then '青年'
When age between 30 and 50 then '中年'
When age between 50 and 80 then '中老年'
else '老年'
END as age_level
From
dim_user;
PRESTOSQLCopied!
- 任务名称:可以自定义该段SQL对应的任务名称,标签发布后,将在任务管理、实例管理页面展示,项目内唯一,除空格外,其余字符都支持,不超过64个字符;
- 预览结果:运行查询SQL,打印查询日志,并显示执行结果。
步骤二:设置标签信息
- 标签中文名称:除空格外,其余字符都支持,不超过64个字符;
- 标签描述:标签描述信息,除空格外,其余字符都支持,不超过200个字符;
- 标签目录:选择标签归类类目。
步骤三:设置标签的更新规则,支持设置更新周期和更新优先级,此处与规则加工衍生标签的步骤三一致
步骤四:
- 保存后,SQL中涉及到的衍生标签都配置完成,但都为“未发布”状态;
- 保存并发布,配置安全等级、发布有效期、可见用户组等信息,具体可参考标签发布,SQL中涉及到的衍生标签都将配置完成,且都为“已发布”状态。
组合标签
组合标签的配置步骤与规则加工衍生标签基本一致,但组合标签的数据范围只能来自“实体”,且不需要配置统计周期和过滤条件,组合标签可由原子标签、衍生标签、自定义标签组成。
自定义标签
自定义标签通过导入“实体主键”及“实例对应的标签值”数据,根据实体主键从大宽表匹配相关用户,为匹配到的用户打上标签。配置步骤如下:
步骤一:创建标签。 在标签配置首页点击“新增标签",选择“自定义标签"来创建标签,填写标签基本信息,包括标签名称、标签英文名、标签目录、业务口径、技术口径、描述信息或配置字典。
- 标签名称:限制64个字符,不可重复设置
- 标签英文名:作为标签唯一标识符,不可重复设置,不可修改,由字母、数字、下划线构成且需以字母开头
步骤二:发布标签。 在标签配置首页点击该标签对应的“发布"按钮,发布刚刚创建的标签
步骤三:导入标签。 自定义标签创建并发布完成后,需要导入具体的标签值。只有导入数据后才能用来建组合标签、标签圈群等后续操作,否则是个空标签,没有任何业务价值。
自定义标签的数据类型为“字符型”。
标签编辑
- 原子标签:可修改标签名称、所属类目、标签描述、引用字典;
- 衍生标签
- 规则类标签:与新增时一致,可修改标签名称、标签英文名、所属类目、标签描述、数据范围、统计周期、过滤条件、标签值规则、更新周期、更新时间、更新优先级等;
- SQL类标签:进入标签所在的SQL片段编辑页面,对该标签所在的部分SQL片段进行编辑,编辑页面与新增时一致,可修改任务名称、整段SQL代码、标签中文名、标签描述、标签类目、更新周期、更新时间、更新优先级等;
- 组合标签:与新增时一致,可修改标签名称、标签英文名、所属类目、标签描述、标签值规则、更新周期、更新时间、更新优先级等。
- 自定义标签:与新增时一致,可修改标签名称、标签英文名、所属类目、标签描述、字典信息。
只有系统管理员可以修改标签英文名称,普通用户无法修改。
标签删除
- 非SQL类标签:包括原子标签、规则加工的衍生标签、组合标签、自定义标签,处于“未发布”状态时可删除,即已发布的标签,需下线后才可删除;
- SQL类标签:进入编辑页,对该标签所在的部分SQL片段进行删除,若点击SQL类标签的删除按钮,将删除通过该段SQL加工的所有标签。
在标签删除时,系统将判断该标签是否被其他标签、群组、模型引用,若被引用不允许删除,需解除引用关系。
标签元数据管理
该功能仅专业版、旗舰版支持。
标签定义过程中,涉及两类属性的定义:系统内置属性、用户自定义属性。
系统内置属性涉及标签名称、标签英文名、标签目录、标签责任人等属性。
自定义属性为企业根据自身业务需要定义的特有的属性,该属性以实体为单位进行定义。不同实体间可定义不同的属性。
- 属性类型:支持创建文本型或枚举型属性。选择枚举型属性,需指定枚举值,用于标签定义时的属性选择,后续创建/编辑标签时,该属性以单选框形式呈现;选择文本框,需指定文本类型,可选择字符型或数值型内容,后续创建/编辑标签时,该属性以文本/数值输入框形式呈现,数值型限制输入-100000至100000之间的小数;字符型限制输入150个字符。
- 是否必填:选择「是」,则后续创建/编辑标签时,该属性值必填。
函数管理
该功能仅专业版、旗舰版支持。
部分标签加工场景下,用户需要基于特定的函数做标签计算,此时通过传统的规则化标签定义方式无法实现,可通过衍生SQL标签实现。
实现步骤如下:
- 函数管理中定义需要用到的函数
- 配置衍生SQL标签,直接在SQL中使用在函数管理中定义的函数
- 仅Trino385以上版本支持创建函数。
- 目前创建的UDF函数为集群层面的函数,即标签上传的函数在离线也可使用,但标签平台仅展示通过标签平台上传的函数。
新增/编辑函数
进入【函数管理】模块,点击「新建自定义函数」,进入函数定义页面。
在「函数管理」中新增自定义函数,填写函数名称,上传zip包资源。此处函数名称只是起到注释的作用,实际编写sql时用到的函数名是zip包中函数名。
成功上传后,系统会解析函数方法,可在函数包详情中查看函数方法的具体内容。