使用Apache Doris建设客户数据平台(CDP)

使用Apache Doris建设客户数据平台(CDP)

精选文章moguli202025-01-22 15:22:3639A+A-

CDP的核心就是采集客户数据,并存储下来,进行分析利用。现代CDP要求做到湖仓一体、流批一体、冷热分离,对CDP建设的技术选型提出了较高的要求。


客户数据有结构化数据、半结构化和非结构化数据,有离线数据和实时数据。综合考虑如何降低数据采集和存储的成本,并能满足客户数据分析和支持业务的需求,我们决定使用Doris来存储CDP数据,并提供查询服务,部分原因是公司的数据仓库已经在使用Doris。


官方介绍,Doris是Apache 顶级项目之一,是一个基于 MPP 架构的高性能、实时的分析型数据库,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。


基于此,Doris 能够较好的满足报表分析、即席查询、统一数仓构建、数据湖联邦查询加速等使用场景,用户可以在此之上构建用户行为分析、AB 实验平台、日志检索分析、用户画像分析、订单分析等应用。


如图所示,数据源经过各种数据集成和加工处理后,通常会入库到实时数仓 Doris 和离线湖仓(Hive, Iceberg, Hudi 中),Doris 被广泛应用在以下场景中。



一、数据采集


一期CDP建设,采集的数据包括客户行为数据和店务系统数据。


1、行为数据


客户行为数据通过埋点的方式、以事件的形式采集,事件以约定的格式上报到事件服务,以json的形式保存在mysql数据库,同时,推送到Kafka。


以JSON形式保存的客户事件数据,无法有效地支持根据行为数据筛选客户,比如查询近10天浏览过某商品的客户。为此,Doris通过消费kafka的事件数据,并将客户事件数据保存到Doris的事件宽表中,每个事件属性保存在一个对应的列,从而实现事件的结构化存储。


Doris直接订阅Kafka中的消息数据,从客户行为发生,到事件存储到Doris,耗时在毫秒级,以近实时的方式进行数据同步。Doris 自身能够保证不丢不重的订阅 Kafka 中的消息,即 Exactly-Once 消费语义。


2、店务数据


店务数据是存储在mysql的结构化数据,包括客户资料、订单等。现有的数仓解决方案,已经将裸表同步到Doris,构成数仓的ODS层。每30秒同步一次,为准实时同步。


店务数据包含了历年来的历史存量数据,同时也在不断产生新的数据。新产生的数据要准实时进入Doris,我们使用Binlog Load,使Doris增量同步用户在Mysql数据库的对数据更新操作的CDC(Change Data Capture)。


同时,为了优化查询的性能和节省数据存储成本,我们利用Doris的存储策略实现冷热数据分离。在建表或使用Doris过程中,给表或分区关联上storage policy,即可以使用冷热分离的功能。同时,通过冷数据的cache优化查询性能,在冷却后首次命中,Doris会将已经冷却的数据又重新加载到be的本地磁盘。


二、数据查询


1、宽表查询

Doris 查询引擎是向量化的查询引擎,所有的内存结构能够按照列式布局,在宽表聚合场景下性能是非向量化引擎的 5-10 倍。



2、物化视图


物化视图是将预先计算(根据定义好的 SELECT 语句)好的数据集,存储在 Doris 中的一个特殊的表。


客户相关的店务数据包括客户信息和订单数据。订单数据包含订单头和订单明细两张表,常见业务场景是,查询一段时间内在某门店消费了某商品N次金额大于M的客户,为了实现这一目的,需要基于订单明细创建一个视图,融入订单表头的订单ID、客户ID、门店ID、消费时间等字段。


Doris通过自动更新,保证物化视图表和 Base 表的数据一致性, Doris 会将导入,删除等对 base 表的操作都同步到物化视图表中。并且通过增量更新的方式来提升更新效率。


此外,物化视图支持聚合函数,包括SUM, MIN, MAX, COUNT, BITMAP_UNION, HLL_UNION等,通过预计算的方式,大幅提高查询性能。


3、湖仓一体


Doris一个平台满足统一的数据仓库建设需求,简化繁琐的大数据软件栈。比如,海底捞基于 Doris 构建的统一数仓,替换了原来由 Spark、Hive、Kudu、Hbase、Phoenix 组成的旧架构,架构大大简化。


通过外表的方式联邦分析()位于 Hive、Iceberg、Hudi 中的数据,在避免数据拷贝的前提下,查询性能大幅提升。


关注公众号领取大礼包

SCRM笔记介绍CRM、SCRM知识,观察行业发展



点击这里复制本文地址 以上内容由莫古技术网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

莫古技术网 © All Rights Reserved.  滇ICP备2024046894号-2