海拍客DMP平台建设实践

2021年11月11日 2,139次浏览

王新(边城)

一、概述

1.1 背景介绍

海拍客是一家母婴行业的B2B2C平台,随着业务的发展,公司对数据化运营的需求越来越迫切。面对大量数据,数据工程师需要从多维度去分析挖掘数据价值,从而构建标签化数据体系,形成用户洞察和分析的数据服务平台,以此助力运营、采购、BI人员快速实现业务需求。

其中,DMP作为一个全面的数据收集、加工、整合平台,吸收各种数据源的数据,以门店、商家、商品为基本单位,清洗、整理形成结构化的数据表,并进行标签的计算,从而精准地描述各种目标主体。

1.2 术语解释

DMP 即 data management platform,数据管理平台。

二、架构设计

整体技术架构图

DMP平台整体架构分为:数据、服务、应用三个层级。

2.1 数据层

数据层主要是收集、沉淀各个业务域的原始数据,数仓开发工程师对源数据进行数据清洗、数据建模,沉淀一套规范化的数仓中间层。再由业务方数据开发工程师和算法工程师基于数仓中间层,进行数据分析、数据挖掘等手段,产出统计指标数据和偏好类数据,用于对主体进行标签化。

1)数据采集

整合各业务模块,提供Mysql、Kafka、HDFS、Api等多种异构数据源,通过ODS层将数据进行统一的清洗转化,最终形成统一的数据源,从而屏蔽底层异构数据源影响。

常用数据类型:

业务数据:伴随着业务产生,包含门店的基础信息,在平台上的购买业务数据、评价数据等

埋点行为数据:通过埋点的方式,采集到的一些行为数据,如浏览、点击、停留时长等

日志数据: 一般是web端日志记录的数据

第三方数据:通过接入第三方数据(目前已知的场景:货架陈列数据、爬虫数据),来进一步丰富门店标签画像

2)数据加工

在前期,我们已经完成了数据整合和管理体系OneData平台的建设,其包含一致性的指标定义体系 、模型设计方法体系以及配套工具,这为数据标签的开发提供了极大的便利。

运营人员提出标签需求后,由产品经理分析业务方所提需求并判断是否合理。数据开发人员基于EDP平台和数仓开发规范,完成离线、准实时及实时数据标签的加工。标签开发最终将各个维度的标签数据进行汇总,以宽表形式进行输出,如门店标签汇总表、商品标签汇总表等。目前,已形成一套完善的标签开发协作流程。

标签开发流程

人员协作流程

3)数据存储

存储层的技术选型是基于不同的业务场景以及结合现有的组件体系考虑,选择最佳的存储方案,它决定了数据的实时响应速度,是整个DMP项目的核心。通过参考行业案例和调研测试,我们最终选择了ClickHouse。ClickHouse是一款高性能列式分布式数据库管理系统,我们对ClickHouse进行了测试,发现有下列优势:

  • 高可用,基于shard+replica实现的线性扩展和高可靠
  • 存储效率高,采用列式存储,数据类型一致,压缩性能更高,硬件利用率高
  • 查询效率高,向量化引擎与SIMD提高了CPU利用率,多核多节点并行化查询
  • 通用性好,支持标准SQL语法

在官方提供的基准测试报告中,当数据量无论是百万级还是亿级以上时,ClickHouse在查询性能上完全碾压其他传统的关系型数据库,与Greenplum等OLAP数据库也拉开了不小的差距。


结合DMP门店分群场景,标签数据进入ClickHouse之前已经进行了格式化预处理,标签数据宽表有统一的Schema,符合ClickHouse Table的模式。在查询的时候,一般按照某一维度进行数据过滤或统计,天然符合ClickHouse面向列式存储的使用场景。

2.2 服务层

服务层主要功能:

  • 元数据管理:定义基础数据模型,维护标签结果、明细表,字段名称、类型,更新频率等信息
  • 标签市场:维护主体标签定义,元数据依赖关系,筛选参考值等信息
  • 门店圈选:基于底层的主体-标签体系,提供门店圈选、扩展、洞察等相关能力
  • 数据同步:将圈选结果数据同步至业务系统,通过业务系统提供数据通用能力
    1)门店圈选

核心实现一:规则表达式映射表

将用户选择的规则限定条件转换成SQL表达式。

核心实现二:如何拼接最优SQL规则

谓词下推
减少关联
SQL拼接场景分析:

场景一:单规则组(或)

场景二:单规则组(且)

场景三:多规则组(且)

场景四:多规则组(或),类似省略。

具体实现流程:

2)数据同步

数据同步主要是指DMP门店圈选结果数据到CRM门店分组之间的同步。当更新频率配置为每天更新时,则每天定时进行数据同步。

同步流程如下:版本号作为数据切换的唯一标识。

2.3 应用层

目前,DMP门店圈选结果数据通过数据同步和API两种方式对外提供服务,已对接CRM门店分组、触达中心等应用系统。

主要应用场景有:

优惠券投放:通过DMP平台提供的标签组合,圈选出特定的用户群,制定优惠券投放计划,实现对目标用户群的精准定向,帮助平台提升优惠券投放效果。
精准营销:针对一些营销活动,通过DMP平台圈选出符合营销活动的用户群,制定营销运营计划,实现用户群精准营销。
触达中心:打通DMP画像标签体系,链接企微渠道,提升门店匹配和运营效率。
AB-TEST(待建设):针对特定的场景采用特定的用户群进行实验,促进GMV提升。

三、内容建设

3.1 元数据管理

元数据管理功能主要包含基础数据模型定义,维护标签结果、明细表,字段名称、类型、更新频率等基础信息。

3.2 标签市场

标签按创建类型分为固定值和动态标签两大类,更新频率依据元数据类型分为T+1和准实时两种更新模式,满足不同需求场景。

创建类型:

  • 固定值标签,基于元数据中的标签结果表的字段创建
  • 动态标签,基于元数据中的明细表创建,可自由组合条件生成结果

标签在创建时可以选择筛选值类型,方便用户在圈选门店时做条件筛选。

3.3 门店圈选

门店圈选是依据门店的属性特征和行为特征将门店群体进行分类,对其进行观察和分析的方式。

我们可以通过以下方式创建门店分群:

通过上传ID列表创建;
通过选择规则条件创建
1)手动导入

通过手动导入表格的方式进行门店圈选,比较简单,规则校验通过之后,根据应用场景进行相应的处理。

2)规则创建

通过标签市场用户可以选择需要的标签进行组合,生成规则组和规则。点击预估,用户可实时查看圈选结果数量。在选择规则创建之后,依据标签更新频率,可以选择手动更新、每天更新和每小时更新三种更新方式。门店圈选结果支持下载、门店分组同步、触达中心三种应用场景。

四、项目成果

在DMP建设的过程中,我们定义了一套标准的标签生产流程,并规范到各个技术业务参与方,包含需求收集规范、开发规范、标签输出途径、标签业务支持方式等。通过收拢数据口径及出口,从0到1搭建了统一标签库,极大地提升了数据质量和数据使用效率。目前已完成门店主体标签体系建设,覆盖类型多达16种,共计100个数据标签。

项目上线一个半月时间,已帮助运营人员创建314个圈选任务,覆盖优惠券发放、营销活动、触达中心等多个业务场景。

五、未来规划

5.1 标签建设
标签是面向业务的一种数据组织形式,可以让业务直接用起来,帮助业务从看数据变成用数据,真正意义上起到数据驱动业务。所以标签市场的建设质量,直接决定了营销活动的业务反馈。后续我们的工作重心会放在完善数据的准确性和提高数据的覆盖率上,使其在业务上发挥更大的价值。

更丰富的内容建设:支持更多的主体和标签,赋能更多业务线

更强大的标签扩展能力:支持查看标签值分布,按门店查看标签值等

5.2 A-B测试
A-B测试就是将用户按照既定的规则分成不同的组,然后对这些组进行实验测试,通过用户反馈的真实数据来找出更优版本,从而进行科学的决策。在DMP中引入A-B测试功能,可以帮助运营人员针对特定的场景采用特定的用户群进行实验,促进GMV提升。

5.3 精细化数据运营
通过分析DMP任务创建规则数据发现,运营人员在圈选门店时,使用的规则还是比较粗旷的,对一些事实类标签使用比较集中,对算法类标签不够敏感。我们通过调查发现,有两个方面的原因:一是公司对流量、优惠券等资源的管控不够精细,二是运营人员对数据不够敏感,平台也缺乏营销反馈机制帮助运营人员分析营销结果数据。接下来我们会从两个方面发力:

  • 成立精细化运营项目组,统筹DMP系统与业务场景融合,收紧流量及优惠券等资源投放。
  • 培养用户心智,总结一套完善的数据分析-策略投放-结果沉淀的精细化运营路线,真正做到千店千面。