DMP 数据管理平台(Data Management Platform)
DMP 重点在于明细数据的整理,其基础是用户画像。用户画像相当于对用户进行打标签,是基于人的属性和行为等,经过抽象的状态记录。
一个DMP系统主要有哪些功能模块?
数据接入 人群管理(清洗、整合、计算、挖掘) 多维度洞察分析 对接投放
存在问题:
作为广告行业中的产品和运营人员,最最苦恼的莫过于报表延迟数小时甚至更久,更有甚者写一条SQL洞察几个标签需要等待好久,有时可能会由于 SQL 语法等小问题造成和报表结果不一致,投放人员写 SQL 跑人群包等待时间久,研发人员最苦恼的则莫过于排查数据结果是否准确。
简单总结如下:
指标口径不统一 数据无法回溯 稳定性不够
调研分析:
这里主要评估了几种常见的 OLAP 引擎。
Druid:是一个实时处理时序数据的OLAP数据库,因为它的索引首先按照时间分片,查询的时候也是按照时间线去路由索引。(成熟度不够,比较重)
Kylin:核心是Cube,cube是一种预计算技术,基本思路是预先对数据作多维索引,查询时只扫描索引而不访问原始数据从而提速。(数据回溯不方便,需依赖其他Hadoop等组件,SQL支持有限)
ClickHouse:初实ClickHouse (丰富的SQL函数,不依赖其他组件,高效利用CPU计算,向量化查询)
根据我们典型的业务场景,最终选择以 ClickHouse 作为底层的 OLAP 引擎。
解决方案:
针对以上这些常见的问题,我于2019年9月对整体架构进行了优化和改进。
整体架构:

洞察分析架构
优化前:

优化后:

优化效果对比,从下表可以看出,查询效率显著,且优化后架构以 ClickHouse 为引擎,不需依赖 Hadoop 等组件,不再消耗资源。原本需要起一个 Spark Job 进行复杂逻辑计算,洞察分析;借助 ClickHouse 丰富的 SQL 函数即可实现洞察分析。
| 优化前 | 优化后 | |
| 人群包计算 | 20min | 1min |
| 洞察分析 | 20min | 2min |
贴几个牛逼的 ClickHouse 函数:
arrayJoin arrayPopFront arrayPushBack arrayDistinct hasAll hasAny ......
下一阶段将会增加实时分析链路的整合,提供更实时、更细粒度的洞察分析功能,提供更完备的数据洞察能力,支持留存、智能分析等,让平台更具高性能。完善整体架构,可以更便捷的嵌入到其他系统中。
最后,提前预祝大家新年快乐!




