在企业的数字化进程中,标签体系的创建与使用在业务场景需求中经常用到,也基本是数据建设过程中必不可少的环节。
一般有互联网基因的大公司,有专业的数据技术人才储备,会自己实现整个标签加工使用流程、技术选型等,也存在不具备相应人才的公司需要标准产品帮他们快速实现这个过程,无需再自己探索,B端的标准产品可以帮客户快速实现标签体系的搭建与标准化管理,解决业务问题。
本次我们一些项目交付经验,先来聊聊标签的设计与加工。
标签的建设与应用一般需要经过几个步骤:
标签服务于业务应用场景,好的标签体系设计能够让业务人员在使用时随需随取,及时查询出需要的数据,就算不具备这个标签时,业务人员也可以自己快速加工出来,无需寻求数据开发的帮助。那需要做到
标签体系的设计一般会按照以下步骤:
根据现有业务背景,以及数据,梳理出大概的标签体系。如企业一般数据大概来源于这几部分:
1)用户基础数据
用户ID、性别、年龄、手机号、邮箱、身份证号、会员等级等基础信息。
2)业务交易数据
如在零售领域,用户发生的每一笔交易都会有记录,如下图:
3)用户行为数据
如用户在APP、PC、小程序等的浏览、点击、收藏、评论行为,可反映出用户的行为特点。
4)活动/积分数据
会员商城的cha会员等级、积分兑换等数据。
5)售后投诉数据
客户投诉、售后处理等数据。
基于对数据的梳理,可进行标签基本体系的梳理,梳理出一部分有价值的标签。
OLP模型是目前比较通用的建立标签体系的模型,OLP指“实体-关系-属性”模型,用下方场景举例:
基于该模型,对标签进行查漏补缺,梳理出标签类目与标签。
基于以上工作,最终得出一份标签体系表,以这份表和业务方最终确认标签划分、标签与标签值、标签加工口径是否有疑义,没问题,便可进入标签开发环节。
进入具体开发之前,需考虑标签模型层设计,在数仓加工出来哪些数据,标签产品加工哪些数据。标签模型依旧遵循数仓建模的“ODS-DWD-DWS-ADS”分层设计,基于DWD、DWS层抽象一层标签模型层,加工标签基础标签,届时在标签产品上让业务人员通过规则可加工生成新的标签。
一般遵循“公共层数据”、“大数据量计算”的标签放在数仓中数据开发写SQL实现,“通过规则可定义”、“标签规则经常修改”的标签在标签产品中配置。数仓一般实现:
包含基础属性数据、基础指标(指标也可以作为一种标签,如最近30天购买金额、最近30天访问次数等),这些数据不仅给标签系统用,也可以给BI报表、数据门户使用,所以放在数仓中加工表。
1)基础信息类标签
2)交易类标签
3)行为类标签
如计算历史最高花费金额、商品的历史最高库存、累计消费金额、用户排序等,这些标签的计算基于的数据量大,最好放在hive中跑批上线。
在数仓中加工好标签基础表,这些表中的标签一般称之为原子标签,再将该表对接标签产品,在标签产品中进行衍生类、组合类标签加工。
基于标签模型的设计,一部分基础指标类的标签在数仓已建设完成,一部分标签需要在产品界面上实现。我们接下来看下业务人员如何在袋鼠云标签产品中配置标签。
假设一个电商类客户,需要建立一套用户标签体系,则首先创建“用户”实体对象,并在实体对象下可以接入标签多张基础表,如用户基础信息表、用户行为事件的指标表等,这些表的字段可作为原子标签直接使用,作为后续加工衍生、组合标签的基础。
同时,在后续加工衍生标签时,在某些场景上会用到多个实体下的原子标签加工,这时候可以用“关系”将2个实体关联起来,如将“用户”实体与“书籍”实体通过用户表的“最近购买商品ID”、以及书籍表的“书籍ID”关联起来,便可以用到2个表的字段进行某个标签的加工,如下图:
从标签基础表中读入原子标签,进行原子标签的元数据管理。
读入原子标签时,有些字段可能存储的是编号或一些枚举值,但业务人员需要看到具有真实业务含义的值,此处可做一层字典值映射。比如将“省市编号”映射为具体的省市名称。
基于接入的数据表的原始字段和原子标签,通过“且、或”关系、“求和、去 重计数、计数、最大值、最小值、均值”聚合函数、“等于、不等于、小于、小于等于、大于、大于等于、包含、不包含等”操作符,对源表字段进行加工,生成衍生标签。
如基于用户访问次数、交易次数,加工“用户活跃度“衍生标签,包含“高活跃”、“一般活跃”、“睡眠状态”标签值,对用户活跃度进行衡量。
除通过可视化规则加工标签外,也会开放SQL界面写SQL加工标签,因为在实际场景中,客户场景不禁相同,有些复杂标签需要SQL快速实现,在产品界面上也可直接操作。
同时,虽然产品上会开放基于函数计算的标签加工、SQL类的标签加工,但还是会建议客户将公共层的指标类标签、及复杂类标签放在数仓中实现,以使标签配置这层轻量,届时进行数据跑批时快速。
基于原子标签和衍生标签,可进行组合标签的创建,如基于最近交易时间、最近1年交易次数,最近1年交易金额区间这3个标签,加工“用户综合价值”组合标签,将客户分为“低价值用户”、“一般保持用户”、“重要发展用户”等。
最终将这些实时与算法标签的元数据可统一接入标签平台统一管理。
标签逻辑创建好之后,同时配置标签的更新周期、更新优先级,进行标签的定时跑批、手动跑批等。