随着人工智能、大数据、云计算、区块链等新一代信息化、数字化技术的高速发展,现阶段社会的方方面面都已经有了巨大的改变,各行各业的企业也都开始了新一轮的科技革命和产业革命,可以说是互联网时代之后,又一个能够从各方面影响世界发展的新的时代。
系统设计包含总体设计、数据设计及平台设计。
1、总体设计(数据架构、平台架构和研发规范)第一阶段的规划工作完成后,进入总体的架构设计阶段。由阿里巴巴提出的 OneData 的核心思想是统一数据主体、统一数据建模、统一数据服务以及一系列的数据管理体系。在设计阶段,可以参考这几个方面进行考虑与架构。
(1)数据架构数据中台的数据架构设计是基于需求调研阶段的业务需求、数据情况,完成数据中台概要设计工作。数据架构设计主要包含 OneModel 、OneID 和 OneService 。
OneData数据中台就是要在整个企业中形成一个公共数据层,实现数据的复用,所以强调数据只加工一次,不会因为不同的应用场景造成数据重复加工。如何实现:数据划分主题进行管理:表的命名,字段的命名等规范统一,做到见名知义数据格式和字段命名和定义规范化:具体参考离线数仓项目讲解的表和字段命名规范:数仓分层-业务主题域-业务过程-基础信息-分区规则指标一致:提供全局数据字典确保意义一致。数据模型复用:推荐采用分层的设计方式,通常包括:ODS,DWD,DWS,ADS / DM,DIM。
数据完善:数据中台尽可能的覆盖到所有业务过程,用户和系统的一切行为都被记录下来永久保存OneData 体系的目标是构建统一的数据规范标准,让数据成为一种资产,而不是成本。OneModel 可分为以下四部分。
业务板块:根据业务的特点和需求将相对独立的业务划分成不同的业务板块,不同业务板块之间的指标或业务重叠度较低。数据域是指面向业务分析,将业务过程或者维度进行抽象的集合。
数据域划分上,需要从三个方面进行考虑。
- 全局性:站在企业高度上,保障良好的扩展性和稳定性。
- 数量适中:根据业务情况,划分的粒度要粗细合适,通常在 5~15 个。
- 可理解:站在业务的角度上,确保划分便于理解,不产生歧义。在划分数据域时,既要涵盖当前所有业务的需求,也要考虑有新业务的弹性扩展。
总线矩阵:在进行了充分的业务调研和需求调研后,就要构建总线矩阵了。总线矩阵由业务处理过程和维度组成一个二维表格。在行为不同的业务处理过程与维度的交叉点上打上标记,表示该业务处理过程与该维度相关。
数据分层:数据模型以维度建模理论为基础,建设数据中台的公共数据层。一般将数据模型划分为操作数据层(ODS)、通用数据模型层(CDM)和应用数据层(ADS)。
2、OneID 功能包含以下四部分。
OneID 配置:主要根据具体的业务需求,完成数据源表、ID 映射表、歧义规则表的设置工作。
OneID 数据处理:主要通过数据源表和 ID 映射表等配置表单完成原始数据的数据拉取和清洗等操作,生成基础数据。
OneID 规则计算:主要利用图计算框架完成关键连接点的搜索和歧义数据的图连通工作,并根据配置的规则对图数据进行切割,从而唯一确定一个实体的身份信息,生成 OneID。
OneID 数据存储和展示:主要完成 OneID 图数据存储和展示,以及最后生成的 OneID 清单数据存储等。
OneService 统一数据服务OneService 包括以下功能模块:服务单元设计、API 设计、API 审核和 API 运营。服务单元设计是指将单个或多个物理表配置成一个视图。基于配置好的服务单元,通过简单可视化界面或 SQL 脚本,设计 API 的请求参数和返回参数。API 设计好后,将其发布至服务市场供使用者调用。API 在被使用前,需要经过申请审批。被使用的 API 需要运维及监控,包括平均响应时长、调用次数、错误率等指标的监控,还可以配置 API 的告警及限流措施等。
(2)平台架构结合前期调研的业务需求和数据现状,从宏观层面规划出数据中台的各个模块、各个功能部件所用到的技术总体架构图。
采集架构:数据采集打通各种数据来源,为数据中台提供待分析和处理的数据,主要分为实时和离线数据采集。
存储架构:整个存储架构包含原始数据源存储技术、数据源接入技术、数据中台数据存储与计算技术、数据服务及数据应用技术。
数据流:从业务数据进入数据采集通道,到进入数据中台在各个加工任务中流转,再到数据对外服务的这个过程,需要进行哪些存储、哪些技术处理等,这些步骤需要在设计时就以数据流向用流程图的形式画出。
网络架构:数据中台涉及与多方的源系统进行数据交互,而网络设计对于后续数据同步、接口调用等有较大影响。
部署架构:这部分设计主要涉及数据中台的研发平台与应用软件。需包含整体的部署方案。
安全架构:主要包含研发平台的用户角色权限控制方案、开发与生产环境隔离方案、数据安全方案。
(3)数据模型设计规范与标准良好的数据模型可方便、有效地组织数据中台中存储的企业数据资产,所以数据模型的设计工作有必要遵循一定的规范和约束。
2. 数据设计 (数据集成、模型设计和服务详设)数据设计包括数据集成、模型设计和服务详设,
数据集成数据集成需要解决不同源系统数据异构性问题。结构化数据一般以二维形式存储在关系型数据库中,对于这种数据类型,数据集成有 3 种方式。直连同步:通过规范的 API(如 JDBC)直接连接业务库。但是业务库直连的方式对源系统的性能影响较大,当执行大批量数据同步时会降低甚至拖垮业务系统的性能,此种抽取方式性能较差,不太建议使用。
数据文件同步:通过约定好的文件编码、大小、格式等,直接从源系统生成数据的文件,由专门的文件服务器加载到数据中台。但由于要保证数据文件的完整性,通常除数据文件外,还需要上传校验文件,供下游系统做数据校验。
数据库日志解析同步:这种方式实现了实时与准实时同步,延迟可以控制在毫秒级别,并且对业务系统的性能影响比较小,目前应用较为广泛。除了数据读取的方式,还可按数据量来分解数据集成策略。
小数据量同步:数据记录小于 10 万条的源表建议每日全量更新,写入全量分区表。全量分区表可按天创建。可根据业务需要设置数据的生命周期,并定时清理。
大数据量同步:数据记录大于 10 万条的源表通过时间戳抽取增量数据到增量分区表。增量分区表可设置长周期,根据需要设置冷、温、热数据区。非结构化数据一般没有固定的结构,各种文档、图片、视频、音频等都属于非结构化数据。对于这类数据,数据集成策略通常是直接整体存储,而且一般存储为二进制的数据格式。除了结构化数据和非结构化数据,还有半结构化数据,常见的数据格式有 JSON 和 XML。对于半结构化数据,数据集成策略同样可以是直接整体存储。但随着数据技术的发展,NoSQL 数据库已经可以很好地支持半结构化数据的存储。