架构总览

数据中台通常采用分层架构,各层应用采用微服务化方式构建。针对不同的行业,系统托管方式各不一样,比如传统企业更倾向于采用私有云或自建机房,小型互联网企业倾向采用公有云等;针对不同应用场景的不同,技术架构也不相同,比如推荐场景,往往采用实时数据架构,传统报表应用采用离线数据架构;针对数据获取途径,所采用 的技术选型也不相同,比如电商行业的数据通常来源于业务数据库和点击日志等,基于Hadoop生态的数据仓库即可满足查询分析应用,工业企业的数据来源于传感器采集的实时数据,因为工业数据量更大,于是采用的数据采集方式和存储系统的选型差别很大,基于Hadoop的生态存储反而无法满足需求。本文以面向传统工业如燃气、水务等行业为例,讨论如何搭建数据中台,其中主要架构原则要点;

a. 技术成熟稳定

b. 系统组合最小化

c. 选型适度超前

下图是一个基本的总体架构面貌:

大数据系统从底向上涉及到的系统或者基础设施依次为:

a.  客户业务系统:如企业资源计划ERP系统、客户关系管理系统CRM以及各类物联网数据采集设备等;

b.  数据传输网络:业务系统数据的存储位置可以是公有云、私有云、混合云以及自建的专有云等,数据从业务系统上传到数据存储系统或者通过5G网络设备上传等;

c.  统一数据采集平台:支持离线数据迁移和实时数据迁移以及按需上报等方式。离线迁移通常采用T-1模式定时从客户业务系统同步到数据存储系统;实时迁移通常基于业务系统的日志实时汇聚到数据存储系统;按需上报的方式通常提供业务系统数据上报接口,随时上报;

d.  大数据基础平台:包括大数据存储和计算平台,数据存储在分布式文件系统或者对象存储系统,比如HDFS、S3等;数据计算平台分为离线计算平台和实时计算平台,离线计算平台包括Hive、Spark等,实时计算平台分为Storm、Flink等。大数据平台根据数据使用场景方式又可以分为大数据分析平台和算法开发平台;

e:   数据中台:在大数据基础平台之上,通过平台的赋能实现敏捷开发、快速部署等,如通过屏蔽底层系统的接入门槛和使用差异,将开发流程简化为页面操作,提供简洁、易用的敏捷数据开发平台;通过沉淀通用的业务功能进一步赋能业务开发和价值挖掘,如按照行业标准构建通用的数据模型创建的企业级数据仓库通过公共数据服务接口赋能上层应用。大数据中台包含数据仓库系统、数据治理系统、数据血缘系统等;

f:  数据服务层:提供统一的数据服务API,上游应用系统通过接口访问数据中台的数据;

g:  数据应用层:接入数据中台的上层业务应用系统,如智能决策、移动推送等。

数据流程

系统架构图也反映了数据加工处理的流程和方向,如果从数据流向的角度来看,大概是这样:

接入到系统的数据源经过一系列处理之后向上层提供服务,因为数据按照应用场景的时效性要求不同,一般会有离线批处理和实时处理两条链路,实时链路作为离线链路的补充,提供增量数据,在提供给上层应用查询之前,需要合并以反映最终全量的数据,这种架构就是典型的lambda数据架构。

数据中台系统架构

为支撑上述数据流程的实施,需要数据中台一揽子功能组件的支持和配合,从应用系统功能组件的视角来看是这样子:

其中绿色部分表示重要且紧急的功能,是构成数据中台的最小必备选项,而红色表示重要但不紧急的功能,可以延后实现,红绿相间的部分表示可以按需酌情实现的功能。总体层次跟架构总览图差不多:

a. 数据采集层:提供如 实时、离线、填报等功能

b. 数据存储与计算层:提供诸如存储引擎、计算引擎和调度引擎等核心基础功能,如存储引擎分为行式存储(如hdfs),列式存储(如hbase);计算引擎分为实时处理、离线处理、机器学习等;调度引擎包括分布式任务调度和分布式资源调度等;

c. 数据中台:包括基于数据存储与计算层实现的敏捷开发工具套件集,如数据集成工具,开发工具、可视化报表系统、权限管理等;数据开发系统,如数据建模、数据分析和算法开发;以及数据治理平台,包括元数据管理,数据血缘、数据资产管理等;

d. 数据服务层:通过统一的数据访问接口访问数据中台的数据,如数仓数据、画像数据、推荐数据等;

e. 数据应用层:通过数据服务层赋能上层业务开发,如营销、个性化推荐、计量分析等。

数据采集系统

数据采集层连接业务系统和数据存储与计算层,实现业务数据到数据存储系统的转移功能:业务系统数据可以通过sqoop等工具实现离线跑批(全量或增量)的方式进入数据仓库,也可以通过日志流的方式,经过kafka和flink实时进入数据仓库的准备层(ODS)。

数据存储与计算层

数据存储与计算层连接数据采集层和数据中台,提供数据存储与计算的基本功能。离线数据可以通过sqoop,datax等传输到基于Hadoop生态的数据仓库,实时数据可以通过Debezium或者canal先暂存到kafka,然后经过Flink等处理后传输到Druid,Doris等,这里可选技术组件较多。

数据中台

数据中台连接数据存储与计算层和数据服务层,包含数据开发工具套件集、数据开发系统和数据质量系统。其中数据开发系统包括将来自数据采集层的数据按照一定的规范和模型建立标准的企业数据仓库、在此基础上做的书分析系统如分主题数据建模、模型画像等以及以及算法模型训练相关的算法开发。

数据仓库层

数据仓库层连接数据开发平台层和数据服务层,提供标准数据建模方式实现企业级数据仓库。数据仓库实现同样采用分层结构:数据运营层( ODS )、数据仓库层(DW)和数据应用层(ADS):

ods:是最接近数据源中数据的一层,数据源中的数据,经过抽取、洗净、传输,也就说传说中的 ETL 之后,装入本层。本层的数据,总体上大多是按照源头业务系统的分类方式而分类的。

dw:DW层又细分为 DWD(Data Warehouse Detail)层和DWS(Data WareHouse Servce)层。

  • dwd层一般保持和ODS层一样的数据粒度,并且提供一定的数据质量保证。同时,为了提高数据明细层的易用性,该层会采用一些维度退化手法,将维度退化至事实表中,减少事实表和维表的关联。另外,在该层也会做一部分的数据聚合,将相同主题的数据汇集到一张表中,提高数据的可用性。

  • dws称数据集市或宽表。按照业务划分,如流量、订单、用户等,生成字段比较多的宽表,用于提供后续的业务查询,OLAP分析,数据分发等。一般来讲,该层的数据表会相对比较少,一张表会涵盖比较多的业务内容,由于其字段较多,因此一般也会称该层的表为宽表。

ads:提供给数据产品和数据分析使用的数据,一般会存放在 ES、PostgreSql、Redis等系统中供线上系统使用,也可能会存在 Hive 或者 Druid 中供数据分析和数据挖掘使用。比如我们经常说的报表数据,一般就放在这里。

dim:维表层主要包含两部分数据:

  • 高基数维度数据:一般是用户资料表、商品资料表类似的资料表。数据量可能是千万级或者上亿级别。

  • 低基数维度数据:一般是配置表,比如枚举值对应的中文含义,或者日期维表。数据量可能是个位数或者几千几万。

数据服务层

数据服务层连接数据仓库层和上层应用层,实现技术包括微服务在内的整个技术栈体系如访问鉴权、负载均衡和流控等。

数据中台技术架构举例

-End-

数据中台系统架构设计相关推荐

  1. 企业级数据中台应用架构和技术架构

    一.什么是数据中台 数据中台是一种将企业沉睡的数据变成数据资产,持续使用数据.产生智能.为业务服务,从而实现数据价值变现的系统和机制.通过数据中台提供的方法和运行机制,形成汇聚整合.提纯加工.建模处理 ...

  2. 系统架构设计方法-4-数据架构设计篇

    数据架构设计工作内容 数据分布:数据实体和应用的对应关系 个人感觉:这里面写数据流转不太妥,流传应该都是应用层面来完成的.应用和数据之间的读写关系的组合. 工作内容-1-确定数据域 系统架构设计模板和 ...

  3. 架构设计第五讲:数据巡检系统的设计与应用

    架构设计第五讲:数据巡检系统的设计与应用 本文是架构设计第五讲:数据巡检系统的设计与应用 文章目录 架构设计第五讲:数据巡检系统的设计与应用 1.数据巡检系统 1.1.背景知识 1.为什么做数据巡检系 ...

  4. 大数据用户画像系统架构设计

    文章目录 一.用户画像数据仓库搭建.数据抽取部分 二.大数据平台.用户画像集市分层设计.处理 三.离线计算部分 四.实时计算部分 五.Solr/ES搜索引擎部分 六.Java Web毫秒级实时用户画像 ...

  5. 我对 OneData 数据中台体系架构的一些思考

    提起业务流量,除了全民抢票平台 12306,当数阿里最有发言权. 上到双十一千亿级流量洪峰,下到日均百万.千万交易量的平台,每个业务模块背后的高并发架构理念,无处不在. 成熟的架构设计只是其一,要取得 ...

  6. 一文读懂数据中台技术架构

    一文读懂数据中台技术架构 https://www.toutiao.com/i6836923386560512516/?tt_from=weixin&utm_campaign=client_sh ...

  7. 云原生数据中台:架构、方法论与实践

    前言 第一部分 数据中台与硅谷大数据平台 第1章 全面了解数据中台 1.1 数据中台概念的起源 3 1.1.1 艺电的"数据中台"改造 4 1.1.2 Twitter的数据驱动 6 ...

  8. 业务中台系统架构:大中台+小前台电子商务系统搭建框架思维

    [数商云]在电子商务系统搭建行业有近十几年的服务经验,近年来的数据中台.业务中台等系统架构兴起,大多数企业在不清楚的中台背景的情况下就盲目追求,最后只会导致自身平台丢失原有的优势框架.在这里,我们来总 ...

  9. 深度剖析数据中台技术架构

    智领云联合创始人&CTO,前EA(艺电)大数据平台高级工程经理宋文欣博士再度直播开讲,为观众深度剖析了数据中台的技术架构. 数据中台的定义 在介绍数据中台技术架构之前,宋文欣博士表示,在谈到设 ...

最新文章

  1. AtCoder Beginner Contest 197 题解(A ~ F)
  2. NDIS6缓冲相关实验和经验
  3. spring 监听器 IntrospectorCleanupListener简介
  4. python迭代器生成器装饰器
  5. JDK源码解析之 Java.lang.Float
  6. 【Java】翻转字符串中的每个单词
  7. 常用JS正则匹配函数
  8. jwt token注销_退出登录时怎样实现JWT Token失效?
  9. 机器学习实战:基于概率论的分类方法:朴素贝叶斯(源码解析,错误分析)...
  10. 解决在Mac上操作sourcetree反复要求输入密码的问题
  11. [BZOJ 4403]序列统计(Lucas定理)
  12. 个人网站有赞云支付接口申请方法
  13. AIOC4专业版快速修复CAD文件关联,双击dwg文件没反应
  14. 关于一些繁体字体显示乱码的问题
  15. ANSYS - 表格加载方法
  16. 产品周报第29期|创作中心优化:发文助手新增质量分检测功能,博文增加内容历史版本
  17. javaweb之Html/Hss/JavaScript/BootStrap小结
  18. Electron 简介
  19. Linux平台C++ 实现毫秒/微妙级时间获取或者延时
  20. 内联框架和音视频播放

热门文章

  1. SkyWalking之告警
  2. java对手机芯片有没有要求_芯片对手机到底有多重要
  3. arcmap添加字段的类型_ArcGIS 字段数据类型
  4. springmvc中拦截器
  5. 分享2020年线上支付接口产品讲解
  6. 牛客网、赛码网javascript在线编程的输入输出
  7. 基于爱奇艺HCDN视频分发网络的开放缓存
  8. c语言 寻找相同的数字,用c语言编写寻找既是完全平方数,又有两位数字相同的三位正整数,例如121,144等。...
  9. 递归解九连环并且打印中间过程
  10. Python: 用于计算txt文档的字数的小脚本