大家好,许久未见,我是云祁~
今天想和大家分享下 企业级CDP项目 建设中的数据工程实践。
在很多情况下,大家可能会将数据工程与ETL的过程画上等号,但实际上ETL只是数据工程的一部分,其工作量通常仅占整个数据项目的 30% 左右。
而一个数据工程项目,本质上是要解决三大问题:
-
客户有什么?
客户想要什么?
怎样设计最合理?
因此,在数据工程项目中,数据现状梳理、业务理解 和 数据模型设计 等工作量通常占据了项目的大部分,约占百分之五六十。如果在这些关键阶段 没有深入了解情况、理解需求不充分 或 设计不合理,就可能导致开发返工,从而影响整个项目的交付进度。
CDP(Customer Data Platform)是一种面向营销的 客户数据管理平台,旨在采集、整合、分析和应用来自不同渠道和场景的实时和非实时客户数据。通过客户建模、设计营销活动、提高营销效率 和 优化客户体验,实现企业业绩和利润的增长。
CDP在功能上注重用户群体分析,包括 分群、标签画像 和 变化趋势等。
通过将多渠道、多场景的客户数据整合到一个平台中,为企业提供全面的客户视图和洞察。这使得企业能够更好地了解客户的行为、偏好和需求,从而精准地定位目标受众,并开展个性化的营销活动。
CDP的功能还包括 数据清洗、数据质量管理、数据安全 和 隐私保护等方面的支持,以确保数据的准确性、一致性 和 合规性。
通过CDP,企业能够建立长期的客户关系,并提供卓越的客户体验。
它为企业提供了一个集中管理和利用客户数据的平台,从而使营销团队能够更加智能地分析客户数据、制定营销策略,并实时监测和优化营销效果。
这些功能帮助企业实现更精准的营销投放、提升客户忠诚度,最终达到业绩和利润的增长。
“ CDP 与 CRM系统、DMP系统通常有很多关联,也有区别。CDP 是面向客户营销和运营场景,使用者以营销人员为主,营销活动包括新客获取,也包含老客运营。数据以企业的一方客户数据为主,一般包含 PII (Personal Identifiable Information,个人身份信息) 信息,也可包含其他来源数据。
CRM是面向记录和分析场景,使用者以销售和服务人员为主,管理内容是一方客户数据;DMP面向营销场景,使用者以营销人员为主。营销活动以拉新为主,系统一般会直接对接数字媒体,数据以二方或三方数据为主,一般不含PII信息。
CDP系统可以看作是 CRM 系统的功能延伸,一般会从 CRM 系统、DMP 系统中获取数据,可以相互集成。”
PS:一方数据是指企业自由的客户相关数据,即收集来源为客户自由渠道;二方数据是指媒体或者服务商来源的数据,如广告投放中的点击、曝光数据;三方数据是其他来源的数据。以上含义属于在数字化广告中常见提法。
CDP项目数据工程主要包括7个阶段,如下所示,在后面针对每个阶段的详细介绍中首先会给出每个阶段的输入和输出,再介绍每个阶段的工作内容和要点。
1) 数据调研 —— 业务系统和数据源梳理
2)业务理解 —— 标签体系及其计算口径梳理
3)集成设计 —— 数据集成接口及ODS层数据设计
4)数据设计 —— 数据模型设计
5)开发过程 —— ETL 设计
6)开发过程 —— ETL 开发
7)部署运维 —— 运维
如下图所示,这些过程时自下而上顺序进行的,规范化开发、设计过程贯穿始终。也可以根据项目的实际情况迭代进行,
第一步:数据调研
数据调研是为数据采集做准备的重要步骤。在这个过程中,我们需要进行以下工作,以全面了解数据的情况:
客户的一方数据:我们需要深入了解客户已有的数据资源。这包括客户内部产
生的数据,例如交易记录、行为数据、个人信息等。通过了解这些一方数据,
我们可以获得客户的基本情况,并了解他们的行为和偏好。
可能获得的二方数据:除了客户一方数据,我们还要探索可能从合作伙伴或其他合作方获得的数据。这些二方数据可能包括与客户相关的合作伙伴数据、合作关系数据等。通过获取这些数据,我们可以扩大我们对客户的了解,并丰富数据的多样性和广度。
可能获得的三方数据:在数据调研过程中,我们也要调查可能获得的三方数据来源。这些数据来源包括外部数据提供商、数据市场等。通过获取三方数据,我们可以进一步丰富数据的维度和深度,获取更多关于客户的相关信息。
数据内容和关系:在调研过程中,我们需要详细了解数据的内容和数据之间的关系。这包括数据字段的定义、数据格式、数据的存储方式等。通过了解数据的内容和关系,我们可以确保在数据采集和整合过程中的准确性和一致性。
数据质量评估:除了了解数据的内容和关系,我们还需要评估数据的质量。这包括数据的完整性、准确性、一致性和及时性等方面。通过对数据质量的评估,我们可以了解数据的可靠性和可用性,并为后续的数据处理和分析工作提供基础。
总得来说,数据调研是为数据采集和处理提供基础的重要步骤。通过了解客户的数据,以及评估数据的内容、关系和质量,我们可以确保在后续的数据工程实践中获得高质量和有价值的数据资源。
第二步:标签体系及其口径数据(业务调研)
在这一步中,我们需要进行标签体系和口径数据的梳理,主要包括以下几个方面的工作:
业务调研:首先,我们需要与业务方进行充分的沟通和调研,了解他们的数据需求。通过与业务方的合作,我们可以将业务方的数据需求转化为具体的标签需求,确保我们可以准确地衡量和描述业务指标。
标签需求定义:基于业务调研的结果,我们可以明确标签体系的设计和定义。标签是对数据的描述和分类,可以用来衡量和分析客户行为、特征和偏好。在这一步中,我们需要明确每个标签的定义和含义,确保标签能够准确地反映业务指标。
口径数据定义:除了标签的业务定义,我们还需要定义标签的口径数据。口径数据包括 业务口径 和 技术口径。业务口径是指标计算所需的业务规则和逻辑,它们反映了业务指标的计算方式。技术口径是指标的数据源、数据处理和计算方法,它们确保了标签的准确性和可靠性。
通过对标签体系和口径数据的梳理,我们可以确保在后续的数据处理和分析过程中,能够基于准确和可靠的标签数据进行业务指标的衡量和分析。
第三步:数据集成接口定义
第三步是定义数据集成接口,主要包括以下几个方面的工作:
数据源获取接口设计:根据需要从各个数据源获取数据的要求,我们需要设计相应的数据获取接口。这包括确定数据获取的方式(例如API接口、数据库连接等),定义数据的传输协议和格式,以及确保数据获取的安全性和稳定性。
数据同步存储路径设计:一旦数据被获取,我们需要确定数据同步后的存储路径。这包括选择合适的存储介质(如数据库、数据仓库、文件系统等),并设计数据存储的结构和格式,以便后续的数据处理和分析能够顺利进行。
同步接口更新周期和方式:在定义数据集成接口时,我们需要明确每个同步接口的更新周期和更新方式。这包括确定数据同步的频率(如每日、每小时等),以及确定是增量更新还是全量更新。这些决策将影响数据的实时性和准确性。
通过定义数据集成接口,我们能够确保从各个数据源获取数据的程序接口设计合理,并能够按照预定的周期和方式进行数据的同步和更新。
第四步:数据模型设计
数据模型设计主要是参考 Kimball 维度建模,以分析决策的需求出发构建模型。设计主要按以下的步骤:
选择需要进行分析决策的业务过程。业务过程可以是单个业务事件,比如交易的支付、退款等;
选择粒度。在事件分析中,我们要预判所有分析需要细分的程度,从而决定选择的粒度。粒度是维度的一个组合。
识别维表。选择好粒度之后,就需要基于这个粒度来设计维表,包括维度属性,用于分析时进行分组和筛选。
选择事实。确定分析需要衡量的指标。
我们需要考量将表划分为事实表、维度表两种类型。其中,事实表根据粒度的角色划分不同,可分为事务事实表、周期快照事实表、累积快照事实表等。维度表则需要考虑,缓慢变化维度、退化维度、雪花维度等。
除了常规的 维度建模,为了能更好的支持 CDP,我们引入了 UEI 模型,且听后面细细道来。
第五步:ETL设计
在企业级CDP项目的数据工程实践中,ETL 设计是关键步骤之一,它主要包括以下两个方面的设计工作:
数据处理工作流设计:在这一步中,我们需要设计数据处理的工作流程,即定义加工目标数据集的步骤和任务流。这包括确定数据的抽取(Extract)、转换(Transform)和加载(Load)的过程。我们需要考虑数据的来源、数据的处理顺序以及数据的流向。通过合理的工作流设计,可以确保数据处理过程的有序性和高效性。
数据处理逻辑设计:在数据处理工作流中的每个环节,我们需要设计具体的数据处理逻辑。这包括对数据进行清洗、过滤、转换、计算等操作,以满足业务需求和数据质量要求。在设计数据处理逻辑时,需要考虑数据结构、数据类型、业务规则等因素,并选择适当的数据处理工具和技术来实现。
ETL设计的质量和效率直接影响数据的准确性和可用性,对于企业的决策和运营具有重要意义。因此,在进行ETL设计时,需要充分理解业务需求,合理规划数据处理流程,并利用合适的工具和技术实现数据处理逻辑。
第六步:ETL开发
在企业CDP项目的数据工程实践中,ETL开发是将设计好的数据处理逻辑转化为可执行的程序代码的过程。它主要包括以下几个关键步骤:
编写程序代码:根据前面设计好的数据处理逻辑,使用相应的开发语言(如SQL、Python等)编写程序代码。这些代码用于实现数据的抽取、转换和加载过程,包括数据清洗、转换操作、计算逻辑等。编写代码时,需要遵循最佳实践和编程规范,确保代码的可读性、可维护性和性能优化。
配置调度依赖和运行时间:完成代码编写后,需要配置ETL任务的调度依赖关系和运行时间。这包括定义任务之间的依赖关系,确保数据流的正确顺序和依赖关系,以及设置任务的运行时间,确定ETL任务的调度频率和时间窗口。
数据结果核查:在ETL开发完成后,需要对数据的结果质量进行核查。这包括验证数据的完整性、准确性和一致性,确保数据处理的结果符合预期和业务要求。可以通过比对源数据和目标数据的关键指标、进行抽样验证、输出日志信息等方式来进行数据结果的核查。
ETL开发过程需要开发人员具备相关的编程技能和数据处理经验,同时也需要与业务团队密切合作,及时调整和优化数据处理逻辑,以满足业务需求和数据质量要求。
第七步:运维
ETL运维是保证系统稳定运行、数据质量和需求变更的关键环节。它主要包括以下几个方面的工作:
系统监控与故障处理:运维团队需要监控ETL系统的运行情况,包括任务的启动、运行状态、运行时间等。如果任务没有按时启动或出现故障,需要及时进行故障处理和调整,保证系统的稳定性和可用性。
数据质量分析与处理:ETL运维人员需要对数据质量进行监测和分析,及时发现和解决数据质量问题。这包括检查数据的完整性、准确性、一致性等方面,发现数据异常和不一致性的情况,进行数据修复和校正,保证数据的质量符合要求。
需求变更管理:随着业务的发展和变化,可能会出现需求的变更和新增。ETL运维团队需要及时响应和管理这些需求变更,包括调整ETL任务的逻辑、新增数据处理流程等。运维人员需要与业务团队紧密合作,及时了解需求变更,并进行相应的系统调整和优化。
通过有效的ETL运维工作,我们能够保证ETL系统的稳定运行,及时处理数据质量问题,并适应业务需求的变化。
本专题,主要是为一个甲方客户实施数据工程项目的工作经验总结。
以乙方为甲方客户建立一个营销CDP系统项目为背景,重点介绍在项目实施方将自研的CDP软件产品部署到甲方生产环境后,乙方数据工程人员与甲方数据人员一起完成的数据工程设计、开发、实施的过程及工作内容。
……
以上。
数据体系构建👇
更多精彩👇