# 维度表属性与虚拟属性
# 一、维度表属性和虚拟属性的意义
对于已经上报的事件属性和用户属性,可以通过上传维度表或设置虚拟属性将原先上传的数据映射为另一种展示值或计算值,使初始埋点时的属性值不与展示值相同,并可在后期可对数据进行加工,提高灵活性。维度表属性和虚拟属性可以在分析模型的筛选条件和分组项里使用。
# 二、维度表属性和虚拟属性的使用场景
维度表属性:在数据采集时,可能会通过渠道号记录渠道,比如以 A01 代表小米渠道(小米应用商城),A02 代表百度渠道(百度手机助手)。如果希望在分析时使用中文,则可以为“渠道”属性创建维度表属性,在维度表中设置渠道号对应的中文名。在进行计算时,可以使用对应中文名的维度表属性“渠道名”。
虚拟属性:在数据采集时,以“分”作为单位记录了付费金额。如果希望计算时使用“元”作为单位,则可以创建虚拟属性,通过 SQL 规则生成转换成“元”的付费金额新属性(值为原始属性的 1/100)
# 三、维度表属性和虚拟属性的概念与权限
# 3.1 属性类型基本概览
- 系统属性:事件表、用户表中固有的系统字段,如事件时间、账户 ID 等,一定以“#”号开头
- 预置属性:在数据接入过程中,由 SDK 自行生成的字段,如 IP、国家等,一定以“#”号开头
- 自定义属性:根据业务需求定制上传的属性,如付费金额等,不以“#”号开头
- 虚拟属性:通过SQL规则而新生成的新属性
- 维度表属性:通过基于已有属性上传维度表而新生成的属性,这类属性可能因覆盖而消失
注意:数据类型有文本、数值、时间、布尔、列表、对象、对象组七种,对象及对象组类型的属性本身不能上传维度表,但可以基于下面的子属性上传维度表
# 3.2 使用权限
公司超管 | 管理员 | 分析师 | 普通成员 | |
---|---|---|---|---|
编辑维度表、虚拟属性 | ● | ● | ▲ | ○ |
下载维度表 | ● | ● | ▲ | ○ |
查看虚拟字段创建规则 | ● | ● | ▲ | ○ |
权限说明:
● 角色必有
▲ 角色默认有,可以没有
△ 角色默认没有,可以有
○ 角色必没有
# 四、创建维度表属性与虚拟属性
# 4.1 创建入口
可在“数据管理”中的事件属性管理和用户属性管理,进行维度表与虚拟属性的创建
# 4.2 上传维度表
1.请在需要添加维度表的原始属性字段上选择“上传”维度表属性
2.维度表文件的具体规则
- 首行内容将作为维度表属性的字段名称,需要以英文开头,英文、数字或“_”组成
- 首列内容将和原始属性进行关联,取值需要和原始属性值对应,并保证值唯一。如遇到重复,则以首条为准,后续重复信息将被抛弃
3.以 UTF-8 编码格式保存 csv 文件
- Excel 保存方法
根据下图提示,在保存时使用 UTF-8 编码格式,文件类型为 CSV 文件
- 记事本保存方法
根据下图提示,编码选择 UTF-8 ,文件类型改为 CSV 文件
4.将维度表文件添加到上传位置
5.填写显示名和字段类型
根据需求填写映射后的维度表字段显示名和类型
6.系统解析情况提示
7.完成后,可在列表中找到新加入的维度表属性
8.在模型中可以使用该维度表属性进行分析
# 4.3 使用 TA OpenApi 创建维度表并定时更新
详情可参见维度表 API中的使用说明
# 4.4 创建虚拟属性流程
1.填写基本信息
属性名以“#vp”开头,不可编辑。填入属性名和显示名
2.编辑虚拟属性的创建规则
在左侧列表中可以快速获取属性的信息,在界面上半部分选择属性的类型以及属性与哪些事件关联(仅虚拟事件属性可选)
3.逻辑校验
输入内容后,可点击“校验”检查语法,校验成功则会在“调试”板块出现属性的值输入框。如果SQL规则里使用了标签,则可以选择标签使用的版本,每个标签可以单独设置,当标签没有历史版本时默认采用最新版本;如果创建的是虚拟用户属性,仅能使用标签的最新版本,不可修改。关于标签的更多信息,请参见用户标签
- 最新版本:按用户最新的标签值计算
- 动态匹配:按用户在事件发生当日的标签值计算
- 历史版本:按用户在某个特定日期的标签值计算
输入校验值后查看计算结果,可以校验结果是否符合需求。如果符合需求,可以点击“下一步”完成属性创建,如果与预期有差距可以修改创建规则,并重复校验。
# 4.5 注意事项
- 维度表属性与虚拟属性不会占用属性数
- 一个项目中,维度表属性可创建数量上限为 3000,虚拟属性可创建数量上限为 3000
- 虚拟事件属性的SQL规则中,同一个标签仅能选择一种版本
- 虚拟属性之间不能有嵌套逻辑,包括以下场景:
- 虚拟属性的创建逻辑中不能使用虚拟属性
- 虚拟属性的创建逻辑中不能使用关联虚拟属性的维度表属性
- 虚拟属性的创建逻辑中不能使用以虚拟属性作为来源的分析主体的标签
- 创建逻辑中包含维度表属性的虚拟属性不能上传维度表
- 以下场景不能上传维度表:
- 该属性的数据类型为对象或对象组
- 该属性的属性类型为维度表属性
- 该属性的属性类型为虚拟属性,且生成规则中使用了维度表属性
- 该属性的属性类型为事件虚拟属性,且生成规则中使用了用户属性或者用户维度表属性
# 五、维度表属性与虚拟属性的使用
# 5.1 管理维度表属性与虚拟属性
可在事件属性管理或用户属性管理页面中,对维度表属性与虚拟属性进行管理
# 5.2 模型中使用的注意事项
维度表属性与虚拟属性,在使用上和通常的属性一致,根据类型决定其计算逻辑以及筛选条件
- 事件属性的维度表属性可以在其原始属性关联的事件中被使用
- 虚拟事件属性可以在计算其关联的事件时被使用,关联关系可以自定义
- 用户属性的维度表属性以及虚拟用户属性,可用场景等同一般的用户属性
- 事件列表、用户列表、用户行为序列
# 5.3 下载与删除
# 5.3.1 下载维度表
分析师及以上权限的用户可以下载维度表的.csv格式文件
# 5.3.2 删除维度表与虚拟属性
维度表属性可在点击按钮弹出的选项中选择“删除”选项进行删除
虚拟属性可在操作列选择“删除”按钮进行删除
# 六、最佳实践
# 6.1 通过维度表进行翻译
对于属性值是英文或者 ID 的属性,在分析时往往需要通过查表来完成,使用会相当麻烦,为这些属性创建维度表,通过维度表属性引入对应的中文名,在分析时即可使用新引入的中文属性来进行分析了,如果存在多语言的使用场景,则也可以引入更多语种的维度属性来满足各语言用户的使用。
# 6.2 维度表引入补充信息
维度表属性除了翻译之外,还经常被用来引入更多在计算时使用的信息,比如活动开始的时间、某一天的天气、汇率等等,也都是可以通过维度表引入,并在分析时作为筛选条件、分组项或者计算值。
# 6.3 虚拟属性处理数据格式、类型
由于可以使用 SQL 表达式,因此虚拟属性拥有非常强大的扩展性,不过最常用的仍然是对原始属性进行格式或者类型上的转换,比如金额的单位转化、汇率转换,字符串的截断、提取或者拼接,以及属性类型上的转换等等。