一、数据中台总体架构图
前面我们通过理论层面对数据中台有了一定的了解,下面我们通过架构层面来详细看一下数据中台的设计。
数据中台是位于底层存储计算平台与上层的数据应用之间的一整套体系。
数据中台屏蔽掉底层存储平台的计算技术复杂性,降低对技术人才的需求,让数据的使用成本更低。
通过数据中台的数据汇聚、数据开发模块建立企业数据资产。
通过数据体系对数据进行分层存储
通过资产管理、数据服务,把数据资产变为数据服务能力,服务于企业业务。
数据安全管理、数据运营体系,保障数据中台可以长期健康、持续运转。
1、数据汇聚
数据汇聚是数据中台数据接入的入口,数据中台本身不产生数据,所有的数据来自于业务系统,数据库、日志、文件等,这些数据分散在不同的网络环境和存储平台中,难以利用,很难产生业务价值,所以需要统一汇聚。
2、数据开发
数据开发是一整套数据加工以及处理的工具,因为通过数据汇聚模块汇聚到中台的数据没有经过处理,基本是按照数据的原始状态堆砌在一起的,这样业务是很难直接使用的。所以需要通过数据开发模块实现对数据的加工处理,形成有价值的数据,提供给业务部门使用。
3、数据体系
通过数据汇聚、数据开发,中台就具备了构建数仓平台的基本能力,这一块其实就是将采集过来的各种数据按照数仓的标准进行建设。
4、数据资产管理
通过数仓建立起来的数据资产比较偏向于技术,业务人员比较难理解,资产管理是以业务人员更好理解的方式,把数据资产展现给企业的业务人员。
5、数据服务体系
数据服务体系就是把数据变为一种服务能力,通过数据服务让数据参与到业务,激活整个数据中台,数据服务体系是数据中台存在的价值所在。
6、数据运营体系
是数据中台得以健康、持续运转的基础
7、数据安全管理
是为了保证数据中台中的数据安全。
这是一个典型的数据中台总体架构设计。
二、数据中台 四字箴言
如果大家之前没有工作过的话,可能对数据中台还是不好理解,所以在这我将数据中台的功能总结为四个字:采、存、通、用
下面我们来详细分析一下这四字箴言
1、采
采:表示采集的意思,就是采集企业中的所有数据。
随着互联网、移动互联网、物联网等技术的兴起,企业的业务形态开始多元化,数据的产生形式也是多样化的,对应的就需要有多种采集形式。
埋点采集、硬件采集、爬虫采集、数据库采集、日志采集。
埋点采集:一般是采集用户行为信息,例如用户在平台上的浏览、点击、停留等行为。
硬件采集:指的是物联网数据采集,例如通过无人机传感器来采集空气质量指标。
爬虫采集:指的是采集互联网上的公开数据,例如:电商平台竞品价格采集。
数据库采集:一般是采集企业内的业务数据,例如:用户交易数据、用户个人信息数据等。
日志采集:一般是采集软件运行时产生的日志。
这些是常见的采集形式。
从数据组织形式可以分为:结构化数据、半结构化数据、非结构化数据。
结构化数据:数据规则、完整、能够通过二维逻辑来表现的数据,严格遵守数据格式与长度规范,常见的有数据库中的数据、excel中的数据。
半结构化数据:数据规则、完整,同样严格遵守数据格式与长度规范,但无法通过二维关系来表现,常见的有JSON、XML等格式的数据。
非结构化数据:数据结构不规则或不完整,不方便用二维逻辑表来表现,需要经过复杂的逻辑处理才能提取其中的信息内容,常见的有word文档、图片、视频、音频等数据。
从数据的时效性上来划分,可以分为:离线数据、实时数据。
离线数据:主要用于大批量数据的周期性迁移,对时效性要求不高,一般采用分布式批量数据同步的形式,通过连接读取数据,读取数据过程中可以有全量、增量的方式,经过统一处理后写入到目标存储。
实时数据:主要面向低延时的数据应用场景,一般通过实时监控的方式实现,例如通过读取数据库的binlog日志来实现数据库的实时数据采集。
前面我们针对数据的采集形式、数据的组织形式、数据的时效性进行了分析,那这些数据在采集的时候具体应该使用什么类型的工具呢?
常见的采集工具有:Flume、FileBeat、Logstash、Sqoop、Canal、DataX等。
其中Flume、FileBeat、Logstash适合采集日志数据,这三个组件的特性在前面项目课程中已经详细分析过了,在这不再赘述。
sqoop是在结构化数据和HDFS之间进行批量数据迁移的工具,适合批量采集数据库中的数据,它的主要优势是,在特定场景下,数据交换过程会有很大的性能提升。主要缺点是处理过程定制程度较高,需要在脚本中调整配置参数实现,在用户的一些自定义逻辑和数据同步链路监控方面比较薄弱。
DataX是阿里开源的一套数据采集工具,提供数据采集全链路的流量监控,将作业本身的状态,数据流量,数据速度,执行速度等信息进行展示,提供脏数据探测功能,支持传输过程中对传输报错进行策略化处理。
由于它是基于进程内读写直连的方式,高并发数据采集场景下对机器内存要求比较高。
不过DataX不支持非结构化数据的采集。
这些单个工具都无法很好的满足企业复杂的数据采集场景,所以我们需要对已有的采集工具进行二次开发,以可视化配置的方式提供给用户,屏蔽底层工具的复杂性,要支持常见的数据源采集:关系型数据库、NoSQL数据库、MQ、文件系统等,并且支持增量同步、全量同步等方式。
2、存
将数据采集过来之后,就需要考虑数据存储了。
在这里我们可以将数据分为两种:静态数据和动态数据。
其中静态数据:是以 HDFS 、S3等分布式文件系统作为存储引擎,适用于高吞吐量的离线大数据分析场景。这类存储的局限性是数据无法进行随机的读写。
动态数据:是以 HBase、Cassandra等NoSQL数据库作为存储引擎,适用于大数据随机读写的场景。这类存储的局限性是批量读取吞吐量远不如 HDFS,不适合用于批量数据分析的场景。
3、通
表示是对数据进行加工计算,构建企业级数据仓库,打通企业中的全域数据。
针对数据的加工计算,可以分为两大块,离线计算和实时计算。
离线计算中的代表框架为:MapReduce、Hive、和Spark。
实时计算中的代表框架为:Storm、SparkStreaming和Flink,针对实时计算,现在主要是以Flink为主了。
针对这些计算框架,如果每一个计算任务都需要开发代码的话,对使用人员就不友好了,特别是针对一些业务人员,他们不会写代码,只会写SQL,所以这时候我们就需要开发一套基于SQL的一站式开发平台,底层引擎使用Spark和Flink,支持离线数据计算和实时数据计算。
让用户彻底规避掉繁重的底层代码开发工作。
4、用
企业全域数据采集、存储,打通之后,就涉及到如何去用了。
这里的”用” 包含很多层面。
首先是包括数据资产管理,也可以称之为数据治理,其中包含数据元标准管理,数据标签管理,数据模型管理、元数据管理、数据质量管理等,保证数据中台里面数据的合理化和规范化,充分发挥数据的价值。
对于数据的拥有者和管理者来说,通过对数据的合理管理和有效应用,能盘活并充分释放数据的巨大价值,但如果不能对数据进行有效管理,数据就用不起来,或者即使用起来也用不好,在这种情况下,堆积如山的无序数据给企业带来的是高昂的成本。
在使用数据的时候还需要做好数据安全管理,随着大数据技术和应用的快速发展,数据所承载的多维度业务价值已被越来越多的挖掘和应用变现,随之而来的是数据安全和隐私已经成为世界性的关注点,上升到国家战略层面,最近闹得沸沸扬扬的特朗普要禁用国外版的抖音(TikTok)事件,特朗普的理由就是TikTok平台的数据对他们产生了威胁。
所以说数据安全很有必要,整体的数据安全管理体系通过分层建设、分级防护,创造面向数据的安全管理体系系统框架,形成完整的数据安全管理体系。
数据中台的建设,应该始终把数据安全管理放在最重要的位置上,通过设计完备的数据安全管理体系,多方面,多层次保障数据安全。
最终我们需要把安全、有价值的数据快速方便的提供给上层应用,此时需要通过数据服务对外开放,也就是API接口的形式。
举个例子,水是生命之源,是人们赖以生存和发展的重要物质资源,在日常生活中,可以通过不同的方式使用水,这也给我们的生活带来了巨大便利。
在数据世界中,数据资产就好比日常生活中生命所需的水资源,无处不在且不可或缺。但是如果没有相应的水加工厂,运输管道,人们只能到水库打水喝,这明显会极大影响人们正常的生活和工作。因此,将数据封装成数据服务,以接口形式提供给上层应用,才能极大释放、提升数据资产的价值。
最后总结一下,数据中台其实可以这样理解,采集企业全域数据,存储起来,通过加工计算打通数据之间的关系,最后以API接口的形式对外提供数据服务。这就是数据中台要做的事情。