这几天上海疫情严重了,居家办公了几天,后面如果去公司上班需要核酸证明,今天去做了个核酸,竟然是桶鼻子,卧槽。不过说实话,捅鼻子也没啥,这酸爽犹如灵魂出窍,全身通透,让人飘飘然而不知所措。做一次管3天,后面可能还要去做,其实我在想传说中的肛拭子
是啥样,我倒真希望体验一下。。。
数据仓库系列文章(持续更新)
- 数仓架构发展史
- 数仓建模方法论
- 数仓建模分层理论
- 数仓建模—宽表的设计
- 数仓建模—指标体系
- 数据仓库之拉链表
- 数仓—数据集成
- 数仓—数据集市
- 数仓—商业智能系统
- 数仓—埋点设计与管理
- 数仓—ID Mapping
- 数仓—OneID
- 数仓—AARRR海盗模型
- 数仓—总线矩阵
- 数仓—数据安全
- 数仓—数据质量
- 数仓—数仓建模和业务建模
关注公众号:
大数据技术派
,回复:资料
,领取1024G
资料。
其实数据集成是数仓的一个基本特点,这里我们再回顾一下数仓的特性,或者说是我们再回顾一下数仓的定义,面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策的数据系统。
今天我们学习的数据集成指的是“集成的” 特性,说到数据集成我们就不得不说我们为什么要建设数仓了,关于数仓是是什么或者是服务于什么的我们已经说过了,那就是数仓主要是用来做决策的,也就是从数据的角度出发去做决策,而不是纯粹的拍脑袋去决策。
所以这个时候数据准确性就很重要,这里的数据准确性不仅仅指的是我们的数据计算准确,而是指的是我们的数据本身要能够反应事实,也就是说我们要拿合适的数据来干正确的事情。
我们将以前分散的数据收集到一起不仅仅是为了打破数据壁垒,我们更希望能进行统一处理,从而提高数据的可信性、提高数据的生产效率问题,所以说数据集成并不是单单指的是数据收集,可能一说到数据集成大家想到的可能就是 sqoop、dataX、maxwell 这样的数据同步工具,这个想法本身没错,但是这些仅仅是工具,是开始而已。
数据集成的背景
集成的目的是为了打通数据从而更加准确的描述业务,从而更好的为业务赋能,这里举一个例子介绍我现在有三个决策系统,都需要一份业务数据,那这个时候三个系统都会从业务数据库拉去数据,这个时候就会引发很多问题
- 对业务库的压力太大
- 每个系统都有自己的逻辑、产出不准确、数据无法核对
- 每个系统都有资源消耗
在企业中,由于开发时间或开发部门的不同,往往有多个异构的、运行在不同的软硬件平台上的信息系统同时运行,这些系统的数据源彼此独立、相互封闭,使得数据难以在系统之间交流、共享和融合,从而形成了"信息孤岛"。随着信息化应用的不断深入,企业内部、企业与外部信息交互的需求日益强烈,急切需要对已有的信息进行整合,打通信息孤岛,共享信息。
数据集成是把不同来源、格式、特点性质的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享。在企业数据集成领域,已经有了很多成熟的框架可以利用。目前通常采用联邦式、基于中间件模型和数据仓库等方法来构造集成的系统,这些技术在不同的着重点和应用上解决数据共享和为企业提供决策支持。
数据集成通过应用间的数据交换从而达到集成,主要解决数据的分布性和异构性的问题,其前提是被集成应用必须公开数据结构,即必须公开表结构,表间关系,编码的含义等
数据集成的分类
在企业数据集成领域,已经有了很多成熟的框架可以利用。通常采用联邦式、基于中间件模型和数据仓库等方法来构造集成的系统,这些技术在不同的着重点和应用上解决数据共享和为企业提供决策支持。在这里将对这几种数据集成模型做一个基本的分析。
联邦数据库系统
联邦数据库系统( FDBS)由半自治数据库系统构成,相互之间分享数据,联盟各数据源之间相互提供访问接口,同时联盟数据库系统可以是集中数据库系统或分布式数据库系统及其他联邦式系统。
在这种模式下又分为紧耦合和松耦合两种情况,紧耦合提供统一的访问模式,一般是静态的,在增加数据源上比较困难;而松耦合]则不提供统一的接口,但可以通过统一的语言访问数据源,其中核心的是必须解决所有数据源语义上的问题。
中间件模式
中间件模式通过统一的全局数据模型来访问异构的数据库、遗留系统、Web 资源等。
中间件位于异构数据源系统[数据层) 和应用程序(应用层) 之间,向上协调各数据源系统,向下为访问集成数据的应用提供统一数据模式和数据访问的通用接口。各数据源的应用仍然完成它们的任务,中间件系统则主要集中为异构数据源提供一个高层次的数据收集和分发服务。
中间件模式是比较流行的数据集成方法,它通过在中间层提供一个统一的数据逻辑视图来隐藏底层的数据细节,使得用户可以把集成数据源看为一个统一的整体。这种模型下的关键问题是如何构造这个逻辑视图并使得不同数据源之间能映射到这个中间层。
比较主流的中间件模式是使用一些高性能的消息队列,例如kafak、pulsar 等,也就是说我们的多个数据源将自己的数据发送到kafka ,下游的集成系统再从kafka 进行消费数据,从而完成数据集成。
数据仓库模式
数据仓库在另外一个层面上表达数据之间的共享,它主要是为了针对企业某个应用领域提出的一种数据集成方法,也就是我们在上面所提到的面向主题并为企业提供数据挖掘和决策支持的系统。
所以说数据仓库的数据集成其实是按照域对数据集成进行划分管理的,其实这就和我们的宽表建设进行了呼应,可以参考数仓建模—宽表的设计,所以说数据集成它不等于数据堆集,也不等于数据同步,不是说我把数据同步到一个地方,然后使用的时候就可以在这个地方找得到这就是数据集成。
数据集成的目的是为了打通数据孤岛,数据同步到一起,孤岛还在,这个时候要我们需要按照业务特点进行加工才可以建设我们的数仓表,这样才算是完成了数据集成。
所以我们可以看到前面的联邦数据库系统、中间件模式 只是在一定程度上的数据集成工具,但是它并没有完成业务意义上的数据集成。
数据集成的含义
这里我们还是要说一下数据集成的含义,否则你可能认为数据集成就是数据同步,或者是数据同步平台(d_BUS)的建设
- 数据集成需要有数据同步的能力,也就是说需要将散落在各处的数据同步过来,这里会涉及到各种异构数据源,所以对我们的数据平台能力有一定的要求,例如支持各种数据库的能力、支持实时和离线的数据同步能力
- 按照业务特点对同步过来的数据进行清洗加工,然后以宽表的形式堆外提供服务,这里的宽表才是我们业务上集成的含义
- 集成也是有要求的,也就是说我们是在特定的数据域下进行集成的。
总结
- 数据集成是数仓的特性,所以数仓需要具备数据集成的能力
- 数据集成它不等价于数据同步平台,数据同步只是数据集成的第一步
- 数据集成的目的是为了打通数据孤岛,从而更好的支持企业的数据决策,数仓打破数据孤岛的方式是将各个业务系统数据集中到一个统一的、集中的 数据仓库,而达到这个目的方式就是数据集成