王贵宾
(中国烟草总公司江苏省公司,江苏 南京 210018)
随着卷烟工商零销业务的快速发展,企业数据成几何倍增长,数据量庞大、复杂、各类数据间标准不一致,往往会出现数据难以管理的现象。以新数基数据中台能力,以大数据工具智能数据建模服务,将无序、杂乱、繁琐、庞大且难以管理的数据,进行结构化有序的管理。使存在于企业中的数据产生更多的价值,将数据价值最大化。以新数基底座支撑数仓规划设计、制定并沉淀企业数据标准、维度建模、数据指标定义,通过使用Data-Works 数据建模,将建模设计产出的维度表、明细表和汇总表物化到计算引擎中并进一步应用[1]。
数据仓库是所有数据的集合,包括日志信息、数据库数据、文本数据、外部数据等都集成在数据仓库中。数据分层、数据域、业务过程三大要素,共同确定数据建模的逻辑数仓架构。
以AnalyticDB 云原生数据仓库、MaxCompute大数据计算服务、DataWorks 数据管理平台构成的组合方案[2],构建企业级数仓中心。在创建数仓中心时,以数据分层、业务分类、数据域、业务过程和建模空间进行数仓规划设计。图1 为业务数据分析应用平台示意图。
图1 业务数据分析应用平台示意图
数据分层保障了数据在进入数据仓库之前都经过清洗和过滤,使原始数据不再杂乱无章,优化了查询过程,有效地提高了数据获取、统计和分析的效率。同时,数据分层实现了各种不同维度数据的关联,使多维分析更加方便,为从多角度、多层次地数据分析和决策制定提供便捷。
结合业务场景、数据场景综合考虑设计数仓的数据分层,以DataWorks 的数据分层功能进行创建[3]。创建数据引入层(Operational Data Store,ODS)、明细数据层(Data Warehouse Detail,DWD)、汇总数据层(Data Warehouse Summary,DWS)、聚合数据层(Data Warehouse Management,DWM) 及应用数据层(Application Data Service,ADS) 5 层,各个分层如下。
1) ODS。ODS 用于接收并处理需要存储至数据仓库系统的原始业务数据,其数据表的结构与原始数据所在的业务系统数据库中的表结构一致,是数据仓库的数据准备区和存储备份区。ODS 对原始数据的操作步骤如下。一是将原始的结构化数据增量或全量同步至数据仓库中。二是将原始的非结构化数据(例如,日志信息、离线数据、文本数据)进行结构化处理,并存储至MaxCompute。三是根据实际业务需求,记录原始数据的历史变化或对原始数据进行简单的清洗。四是ODS 的数据表,命名必须以ods 开头,并且生命周期为366 d。
2) DWD。DWD 通过具体业务活动事件构建数据模型。跟进业务操作的特点,构建最细粒度的明细数据表。结合业务数据使用特点,将明细数据表的重要维度属性字段适当冗余,作为大宽表化处理。同时,也可以减少明细数据表及维度表的关联,提高明细表的易用性。
3) DWS。DWS 通过分析的主题对象构建数据模型。基于上层的应用和产品的指标需求,构建公共粒度的汇总指标事实表。例如,从ODS 层中对用户的行为做一个初步的归类汇总,抽象出来一些通用的维度,假设维度为时间、客户、组织机构、商品,并根据这些维度统计出相关数据,比如统计区县分公司每个时间段销售的商品数。则在DWS可以进一步添加一层轻度的汇总,创建组织日汇总表、组织周汇总表、组织月汇总表、组织年汇总表,可以让计算更加的高效。例如在此基础上计算日、周、月、年会节省很多时间。
4) DWM。DWM 存放根据业务需求统计的计算指标数据和维度数据。如订足客户数、退货次数、电子结算次数、电子结算成功次数、电子结算不成功次数等。
5) ADS。ADS 用于存放数据产品个性化的统计指标数据,输出各种报表。例如,要统计江苏省各公司在2023年1月1 日至当天,需求量、销量、销售额、单箱销售额(元)、库存数量、订单满足率、不含税销售额、税额、成本金额、财务成本金额、毛利、财务毛利、毛利率、财务毛利率、单箱毛利(元)、财务单箱毛利(元)、占总量比,同时显示上期、环比、同期、同比的数据。
数据域是一个较高层次的数据归类标准,是对企业业务过程进行抽象、提炼、组合的集合,是业务人员在使用数据时第一个分组入口,可以帮助业务人员快速地从海量的数据中快速定位到自己需要查询的业务数据。
数据域面向业务分析,一个数据域对应一个宏观分析领域,比营销域、专卖域、物流域、人力资源域、财务域、质检域等。同时也可以按照用户中心、客户中心、商品中心、交易中心、支付中心、消息中心、案件中心、证件中心等区划。
业务过程是数据域中所执行的业务活动,是数据建模所需要分析的逻辑主体。例如,交易中心域中加入购物车、下单、支付等业务过程。进行业务效果分析时,业务过程有非常典型的应用,例如常用漏斗分析,即将零售户购进卷烟的业务活动分解为浏览卷烟商品、加入购物车、下订单、付款结算、物流衔接、订单分拣、确认收货等业务过程,统计查询每个业务过程的“订单销量”,可以针对“订单销量”这一指标做漏斗分析。
通过规范约束字段标准、字典代码、度量单位、命名词典,来保障后续建模与应用过程中数据处理的一致性,从源头上保障数据的标准化生产,节约后续数据应用和处理的成本。数据标准包含字段标准、字典代码、度量单位、命名词典。
DataWorks 在建模前规划制定数据标准,或在建模使用过程中根据业务情况沉淀企业业务的数据标准[4]。通过规范约束字段标准、字段代码、度量单位、命名词典,来保障后续建模与应用过程中数据处理的一致性。
字段标准又称为数据字典,是对含义相同但字段名称不同的数据进行统一规范管理的数据准则,字段标准可定义字段的取值范围、度量单位等内容,可理解为全局字段管理。可将多个表中含义相同但字段名不同的字段数据类型进行定义保证数据类型长度一致,并对该字段制定相关的取值范围、度量单位、字典代码等内容。后期字段标准发生变化时,可快速定位和变更关联的表,极大程度提升构建效率、应用效率、准确性和后期治理效果。
字典代码是数据标准的取值范围,在字典代码中可设置某一数据标准可选择的数据的内容以及范围。例如性别数据标准的字典代码内容应该为男性或女性。
字典代码与枚举维度比较相似,但是在数据治理的作用要强于枚举维度,标准代码可以与数据质量打通,某个字段被设定为标准代码以后,该字段的取之范围必须在标准代码以内,如取值范围不在标准代码以内,需要马上治理。
遵循Kimball 维度建模理论,使用DataWorks的维度建模功能进行数据仓库模型设计,根据业务情况设计并创建维度表、明细表、汇总表、应用表,并且将模型快速发布到相应的研发引擎[5]。同时,还可以使用逆向建模,将已有物理表逆向生成模型。
结合业务的数据域规划,提取出各业务数据域中进行数据分析时可能存在的维度,并将维度及其属性通过维度表的方式存储下来。
例如,在进行批量销售数据分析时,可用的维度及其属性有:订单维度(属性包括订单标识、销售类型、订单编号、订货日期、业务日期、销售组织、客户标识、客户编码、营销线路标识、营销部门标识、营销分公司标识、客户经理标识、制单人、制单时间、修改人、修改时间、审核人、审核时间等)、客户维度(客户标识、客户编码、客户名称、客户电话、客户卷烟档位等)、商品维度(包括商品标识、商品编码、商品名称、品质类型、计量单位标识) 等,可以将这些维度和属性创建为订单维度表、客户维度表、商品维度表等,将维度属性记录作为维度表的字段。
结合业务过程的规划,梳理分析各业务过程中可能产生的实际数据,将这些实际数据字段通过事实表的方式存储下来。
例如下订单这一业务过程中,可以创建下订单这一事实表,用于记录下单过程可能产生实际数据字段,例如订单ID、品质类型、计量单位、要货数量、订单数量、定量数量、含税单价、含税金额、税率、税额等。可将这些事实表部署到数仓中,通过DataWorks 将真实的数据按照明细表的定义方式进行汇总存储。
结合业务数据分析和数仓分层,将一些明细的事实数据和维度数据先进行汇总分析,创建汇总表,在数据分析时直接查询汇总表中的数据,无需再取用明细表和维度表中的数据。
通过建立一个包含所有相关数据源的数仓中心,然后利用数据挖掘和探索性分析方法,找出与业务目标相关的有效路径。同时,还需建立自动化的数据处理和分析系统,以便及时获取和处理所需数据,并提供实时的数据分析和报告功能。应建立一个可持续发展的数据管理和维护体系,以确保数据的质量、完整性和安全性,并不断推进数据分析与应用的迭代升级。营销业务应用系统,可以查询所在地各公司需求量、销量、销售额、单箱销售额(元)、库存、订单满足率、不含税销售额、毛利、毛利率、单箱毛利(元) 等,同时可以选择卷烟,查询不同卷烟属性。