当前,“新基建”正在成为朝野共识,是应对疫情和经济下行的最简单有效手段,是中美贸易摩擦下大国竞争和改革创新的胜负手,不是“四万亿重来”“重走老路”。本次新基建的内容包含:加快 5G 商用步伐,加强人工智能、工业互联网、大数据中心、物联网等新型基础设施建设,加大城际交通、物流、市政基础设施等投资力度,补齐农村基础设施和公共服务设施建设短板,加强自然灾害防治能力建设。在此背景下云计算、大数据、人工智能等新IT技术会继续迎来发展的新阶段,而以数据中台为代表的解决方案会得到更加广泛的应用。
而数据中台解决方案包含:数据中台建设方法论、相关技术体系和工具、数据体系等几大部分构成,本篇主要讲解数据建设方法论中的数据仓库建设部分。
数据仓库(Data Warehouse)是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。这个概念最早由数据仓库之父比尔·恩门(Bill Inmon)于 1990 年在《建立数据仓库》一书中提出,点出了数据仓库的四大特性。而数据仓库的另外一位实践派大师Ralph Kimball提出的数据仓库是基于维度模型建立的,它的架构有的时候可以称之为“总线体系结构。
两位大师提出的数据仓库设计模式都可以满足企业需要,实践派大师Kimball的方式对团队的技术水平要求更低,更容易实现,更能适应业务的变化,Inmom的方式更加规范适合于具备战略定力的大型集团。
但是现在大数据时代的数据仓库有了一些新的变化,最大的变化数据数据量增加,数据来源更复杂之外,还有应用不仅仅用于支持管理决策,因此大数据时代的数据仓库的定义,需要发生一些变化,我把它重新定义为:大数据时代的数据仓库是一个面向主题的、集成的、相对全面的、反映历史变化的数据集合,用于支持管理决策和业务应用。
我改动了两个地方,一个是相对稳定,因为现在数据仓库变得越来越实时,相对的稳定已经不是主要特性了。另一个是支持业务应用,现在的数据仓库不仅仅支持决策而已,还支持业务对数据的应用。
我们重新定义了大数据时代的数据仓库,那么他的建设步骤应该是怎样的呢
笔者认为他可以分为六个步骤
一,需求调研
通过调研确认建设目标,数据仓库建设的调研分为如下几类:业务调研、技术调研、数据调研
其中业务调研的内容包含
1.业务的目标、定位、人群
2.业务流程、专业术语含义和规则
3.用户对业务和系统的意见和建议
技术调研的内容包含:
1.涉及到的产品的功能设计,每个系统的用户角色,
2.设计到的系统的技术架构,技术选型,各系统的交互、网络部署情况,用户和性能参数3.当前系统存在各类问题
数据调研内容:
1.业务产生数据的形态,存储类型、网络限制、数据存量和增量,数据对接方式
2.系统的数据流转图,血缘链路等
3.数据的业务管理视图,如数据目录、数据标准、元数据等
二,数据建模
数据建模是数据仓库中数据组织和关系设计的蓝图。通过数据建模进行数据标准定义和分层,形成一套完整、规范、准确的数据体系,可以更好的支持决策和数据应用。
数据仓库分层是对数据进行逻辑上的梳理,按照不同来源、不同使用目的、不同颗粒度等进行区分,让数据使用更方便、易理解,让数据管理更高效。如下是笔者实践中推荐的分层架构:
操作数据层ODS(Operational Data Store):对各业务系统数据进行采集、汇聚,尽可能保留原始业务流程数据,与业务系统基本保持一致,仅做简单整合、结构化处理不做深度加工。
统一数仓层DW(Data Warehouse):又细分为明细数据层DWD(Data Warehouse Detail)和汇总数据层DWS(Data Warehouse Summary),与传统数据仓库保持一致,存储历史业务过程数据。对来源于业务系统的数据进行重新组织,业务系统是按照业务流程方便操作的方式组织数据,统一数仓层按照业务的易理解的视角重新组织,定义一致性指标、维度,各业务板块、业务域按照统一规范独立建设,建设成统一规范的标准业务数据体系。
标签数据层TDM(Tag Data Model):面向对象建模,把跨业务板块、跨数据域的特定对象数据进行整合,通过ID-Mapping把各个业务板块各个业务过程同一对象的数据打通,形成对象的全域标签体系,方便深度的分析、挖掘、应用。
应用数据层ADS(Application Data Store):按照业务的需要从统一数仓层、标签层抽取数据,并且面向业务的特殊需要加工业务特定数据,以满足业务以及性能需求,向特定应用组装应用数据。
其中DW层是数据仓库分层建设的核心,DW层的设计会采纳Kimball的维度建模方法,在大数据场景下我们更加推荐使用维度建模,维度建模以分析决策的需求出发来构建模型,构建的数据模型为分析需求服务,因此它重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能。
以事实表为例进行维度建模的步骤如下:
确定业务过程,事实表就是为了记录这些业务过程产生的事实,以便还原任意时刻的业务运转状态。
定义粒度,不管事实表对应一个还是多个业务过程,粒度必须是确定的,每个事实表都有且只能有唯一的粒度,粒度是事实表的每一行所表示的业务含义,是事实的细节级别。
确定维度,定义粒度之后,事实表每一行的业务含义就确定了,那么业务人员会站在哪些角度来描述事实度量,这就是要确定维度,常见的维度有时间、区域、客户、产品、员工等。
确定事实,事实就是事实表度量的内容,也就是业务过程产生的事实度量的计算结果,比如注册量、登录次数、交易金额、退款量等。
数据建模的设计原则:
易用性:冗余存储换性能,公共计算下沉,明细汇总并存
高内聚低耦合:核心与扩展分离,业务过程合并,考虑产出时间
一致性:业务口径一致,主要实体一致,命名规范一致
三,标签和指标体系设计
标签和指标是数据用于分析和使用的逻辑表现,标签和指标体系设计在整个数据中心的建设过程中非常重要。
标签的设计需要结合数据情况和业务需求,因为标签值就是数据字段值,同时标签是要服务于业务的,需要具备业务意义。假如,标签的设计仅基于业务方以往的经验得出,那么最终开发出来的标签值可能会失去标签的使用意义。
按照标签的加工方式可以将标签分为以下三类:
基础标签:直接对应的业务表字段,如性别、城市等
统计标签:标签定义含有常规的统计逻辑,开发时需要通过简易规则进行加工,如年增长率、月平均收益率等
算法标签:标签定义含有复杂的统计逻辑,开发时需要通过算法模型进行加工,如企业信用分、预测年销量等
为了更好的管理和使用,可以将标签进行分类。所有的事物都可以抽象为三类对象:人、物、关系,然后把标签按照业务特性进行类目的分层分级拆分,便于管理。
四、数据加工生产
经过调研、数据建模、标签和指标设计之后,接着会进入到代码开发阶段,开发实施的关键环节由以下几部分组成:
数据交换汇聚
数据清洗加工和配置
数据测试
数据生产
数据开发和系统开发医院是技术门槛高、需要多人协作的复杂工作,因此需要制定规范,保障整个开发质量和效率。笔者之前的经验总结了如下规范
基础规范
层次调用约定
数据类型规范
数据冗余拆分
空值处理原则
刷新周期标识
增量全量标识
生命周期管理
......
ODS层模型开发规范
表命名规范
任务命名规范
数据同步方式
数据清洗规范
ODS层架构
数据同步及处理规范
命名规范
DW层模型开发规范
......
为了保障规范更好的落地,可以使用市面上一些较好的大数据相关的数据建模和开发类平台和工具达到目的,例如
五,数据治理
随着业务的增长,表会越来越多,数据也会在加工中不断增长,管理和维护成本会越来越高。
数据治理贯穿数据采集、加工、应用到实现价值的整个过程。数据治理通过对数据的生命周期的管理,提高数据资产质量,从而更好实现业务价值。数据管理的核心内容为:
数据标准管理
元数据管理
数据质量管理
数据安全管理
其中,数据标准可以参考国家、行业以及企业内部标准,将其中某些规则固化为功能。
元数据贯穿大数据平台数据流动的全过程,可以使用包括数据库直连、接口、日志文件等技术手段,对结构化数据的数据字典、非结构化数据的元数据信息、业务指标、代码、数据加工过程等元数据信息进行自动化和手动采集。之后将元数据组织成方便查看和分析的数据结构,通常存储在关系型数据库中。
数据质量,会根据监控规则制定监控策略,当触发规则时能够自动通知到相关人。基础的数据质量监控维度有以下几部分:
完整性
特定完整性:必须有值的字段中,不允许为空
条件完整性:根据条件字段值必须始终存在
唯一性
特定唯一性:字段必须唯一
条件唯一性:根据业务条件,字段值必须唯一
有效性
范围有效性:字段值必须在指定的范围内取值
日期有效性:字段是日期的时候取值必须是有效的
形式有效性:字段值必须和指定的格式一致
一致性
参照一致性:数据或业务具有参照关系的时候,必须保持其一致性
数据一致性:数据采集、加工或迁移后,前后的数据必须保持一致性
准确性
逻辑正确性:业务逻辑之间的正确性
计算正确性:复合指标计算的结果应符合原始数据和计算逻辑的要求
状态正确性:要维护好数据的产生、收集和更新周期
当出现数据异常后,需要快速的进行恢复。基于异常和修复场景,有以下几种数据运维方式:
平台环境问题引起的异常,需要允许在线手动恢复,当环境问题解决后,重新调度作业,对当天的数据进行修复
业务逻辑变更或代码 bug 引起的异常,需要允许更新后的新代码重新生成异常时间段内的数据
数据安全主要是保障数据不被窃取、破坏和滥用,包括核心数据和隐私数据,以及确保数据系统的安全可靠运行。需要构建系统层面、数据层面和服务层面的数据安全框架,从技术保障、管理保障、过程保障和运行保障多维度保障大数据应用和数据安全。
系统层面
架构和网络管控
租户隔离
应用监控:监控数据使用端、使用次数、使用流量等
接口管理:生产和管理数据输出接口
数据层面
数据评估:对数据来源、用途、合法性等进行评估
数据脱敏:对敏感数据进行处理
认证鉴权:根据数据使用者的不同角色开放不同权限
血缘追溯:建立数据血缘关系,可追溯数据链路
副本限制:限制数据结果集的复制,防止数据外泄
六,数据赋能业务
数据交付给业务,客户真正使用了,产生真正的价值就是数据的应用过程,为了更方便把数据服务于上层应用,我们先将数据形成服务接口,然后让数据应用产品直接调用数据服务接口,获取数据以及调用数据的底层能力,可以形成一个数据服务市场供开发者发布各种数据服务,服务的使用者申请相关服务权限,所有数据服务平台统一管控,基于统一管控方便对服务调用、效果做监控统计。
通过以上六个步骤,就能在一定的技术架构上,构建能够服务于数据分析,辅助决策、风控、营销等各类场景的数据服务,完成大数据时代的数据仓库的搭建。