数据中台演进
01
数据中台演进的过程
从数据处理的维度来聊一聊数据中台经历的四个阶段:数据库阶段、数据仓库阶段、数据平台阶段、数据中台阶段。
1、数据库阶段:OLTP(事务处理)是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,记录及时的增、删、改、查。比如银行交易、电商交易等
2、数据仓库阶段:数据仓库系统的主要应用主要是OLAP(联机分析处理),支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。比如复杂的动态报表分析、用户价值分析等
3、数据平台阶段:其实,目前业界并没有对大数据平台做统一的定义,一般情况下,只要使用了Hadoop/Spark/Storm/Flink等这些分布式的实时或者离线计算框架,建立计算集群,并在上面运行各种计算任务,具有数据互联互通、支持多数据集实时同步、支持数据资源管理、实现多源异构数据的整合管控;
提供完善的大数据分析基础运行环境,提供统一二次开发接口等能力的,就算的上理解上的大数据平台。主要是为了解决大数据存储计算 + 数据应用管理 + 任务监控 + 数据资产管理 + 开发管理 + 可视化报表需求等
4、数据中台阶段:指具有全域级、可复用的数据资产中心与数据能力中心,对海量数据进行采集、计算、存储、加工,同时统一标准和口径,提供干净、透明、智慧的数据资产与高效、易用的数据能力来,能够对接OLTP(事务处理)和OLAP(报表分析)的需求,从业务架构设计到模型设计,从数据研发到数据服务,做到数据可管理、可追溯、可规避重复建设,强调的是数据业务化的能力
02、数据仓库、数据平台和数据中台的架构
【数据仓库架构图】
1、采集层
从各种数据源中采集数据和存储到数据到存储在基于Hadoop分布式文件系统HDFS上,期间做ETL操作。其中数据采集一般采用Flume收集日志,采用Sqoop将RDBMS以及NoSQL中的数据同步到HDFS上
数据源主要有:日志数据(服务器日志 + 系统日志等)+ 业务数据库(Mysql、Oracle等)+ 埋点数据(服务端埋点 + 移动端埋点数据等)+ 其他数据(Excel手工录入的数据、合作伙伴提供的接口数据、第三方爬虫数据、合法购买的第三方数据等)
2、存储与分析层
主要有离线计算 + 实时计算
存储系统:基于Hadoop分布式文件系统对采集层的数据进行存储
消息系统:加入Kafka防止数据丢失
离线计算:是对实时性要求不高的部分,通常将计算结果保存在Hive中
实时计算:使用Spark Streaming、Storm消费Kafka中收集的日志数据,然后通过实时计算,将结果保存在Redis中
机器学习:用Spark MLlib提供的机器学习算法
3、共享层
通过离线和实时计算的数据分析与计算后的结果存储在数据共享层,做数据共享层,主要做数据分发和调度中心。因为通过Hive、MR、Spark、SparkSQL分析和计算的结果,是存储在HDFS上,业务和应用不可能直接从HDFS上获取数据。其中使用Kylin作为OLAP引擎做多维度分析
4、数据应用
报表展示 + 数据分析 + 即席查询 + 数据挖掘
5、任务调度与监控
【数据平台架构图】
1、采集层
基于Hadoop分布式文件系统对采集层的数据进行存储。
结构化数据:通过两种途径抽取并存放到HDFS分布式文件系统中,能够序列化的数据,直接存放到HDFS中;不能够序列化的数据,通过数据整理后统一存放在分布式数据库环境中, 再经过序列化后和整理后还不能序列化的数据一样直接存放到HDFS中;
半结构化和非结构化数据:各种日志数据(通常序列化半结构化数据)直接存放到HDFS中;点击流和数据接口中的数据(通常序列化半结构化数据)直接存放到HDFS中;非结构化的数据直接存放到HDFS中
2、数据层
一方面,把相关业务结构化数据和有一定格式关系的半结构化的数据存放在Hadoop Hive数据仓库中,基于业务需求,按照特定的业务主题域进行数据集市的构建;另一方面把相关业务中半结构化的数据直接存放在HDFS分布
3、计算层
离线计算 + 实时计算
4、应用层
可视化数据分析报表 + 具体的场景应用
5、任务调度与监控
04
数据仓库、数据平台和数据中台的区别与联系
数据仓库、数据平台和数据中台的区别与联系:
1、在概念层面上
数据平台和数据中台的技术能力都是基于数据仓库发展而来的,在数据建设理论上一脉相承,他们处理的对象都是海量数据,服务目的、商业价值也同样类似。其实中平台和中台,两者在能力上都有对外都提供Open API服务。
一方面,中台是业务应用,不具体代表着某种技术,它不是最终用户能直接使用的,必须结合企业的各个数据业务场景;另一方面,平台是不带有业务特征性质的,主要汇集其他人的能力,整合成平台的能力,相对来说是静态的,而中台是动态变化的本身,需要通过数据驱动的方式来滋养业务,不断训练调整业务模型和业务算法提供的能力,提供给其他系统和平台集成的能力。
2、在数据层面上
数据仓库的数据来源主要来源于RDBMS,其中存储的数据格式以结构化数据为主,这些数据并非企业全量数据,而是根据企业业务需求做针对性整合、抽取。数据平台和数据中台的数据来源的期望都是全域级的数据,主要有结构化数据、半结构化数据、非结构化数据等
3、在目标层面上
数据仓库基于单机的,一旦数据量变大,会受单机容量、计算以及性能等方面的限制。主要用来做报表分析,目的性相对来说单一,只是针对相关分析报表用到基础数据,进行抽取、整合、数据清洗和分析。比如,新增一张报表,就要从底层到上层再做一次,流程上相对来说繁琐;
数据平台建立是为了解决数据仓库不能处理非结构化数据和报表开发周期长的问题以及计算和性能等问题。汇集整合打通数据,数据清洗后,当业务提出需求的时候,把业务方需要的若干个小数据集单独提取出来,以数据集的形式提供给业务方去使用;
数据中台通常会对来自多方面的基础数据进行数据清洗后,然后按照主题域的概念建立多个以事物为主的主题域;和数据平台在底层建设上都是基于分布式计算平台和存储平台,理论上可以通过无限扩充平台的计算和存储能力。目标是都是为了融合整个企业的全域级数据,打通数据之间的隔阂,消除数据标准和口径不统一的问题。
4、在应用层面上
建立在数据中台上的数据应用场景,不仅仅只是面向于数据报表开发分析与展示处理,更多是将数据变成服务化的方式,然后提供给业务系统,比如面向用户的画像系统,搜索/推荐/广告营销系统等。
作者:七_seven
原文链接:https://www.jianshu.com/p/e6a764174e14