作者丨石秀峰

全文共2956个字,建议阅读需12分钟

笔者08年就开始参与企业应用集成项目建设,经历了点对点数据集成、总线式数据集成、离线批量数据集成,流式数据集成等数据集成方式。所以,没有人比我更了解数据集成。

数据集成是把不同来源、格式、特点性质的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享。

数据集成的核心任务是要将互相关联的异构数据源集成到一起,使用户能够以透明的方式访问这些数据资源。

数据集成的目的是指维护数据源整体上的数据一致性,解决企业“信息孤岛”的问题,提高信息共享和利用的效率。

01  

点对点数据集成

点多点集成是最早出现的应用集成模式,采用点对点的方式开发接口程序,把需要进行信息交换的系统一对一地集成起来,从而实现整合应用的目标。

点对点的连接方式在连接对象比较少的时候,确实是一种简单和高效的连接方式,具有开发周期短、技术难度低的优势。但其最大的问题是,当连接对象多的时候,连接路径会以指数方式剧增,效率和维护成本是最大的问题。

当需要连接的应用系统越来越多时,点对点集成方式将把整个企业信息系统接口变成无法管理的“混乱的线团”。

点对点的集成架构不能集中管理和监控接口服务,仅支持一对一的数据交换,如果交换协议不一致,开发则非常困难。即,如果沟通的语言、文字、格式、方法等有差异,则每一个连接方都要同时支持和维护多种连接方式。

点对点的集成是紧耦合的,当一个连接变化时,所有与其相关的接口程序都需要重新开发或调试。

基于以上几点,在多点互连的情况下,点对点连接方式成本高,可用性和可维护性低。

显然,这不是一个好的连接方式。

02 

总线式数据集成

总线式数据集成是通过在中间件上定义和执行集成规则,其拓扑结构不再是点对点集成形成的无规则网状,而主要是中心辐射型的(Hub型)星型结构或总线结构。

总线结构通过与点对点集成架构相比,采用总线架构可以显著减少编写的专用集成代码量,提升了集成接口的可管理性。不同连接对象如果连接方式有差异,可以通过总线完全屏蔽掉,做到对连接对象透明,无需各个连接对象关心。通过总线结构,把原来复杂的网状结构变成简单的星形结构,极大提高了硬件的可靠性和可用性。

总线式数据集成的一代:电子数据交换系统(EDI)

EDI不是用户之间简单的数据交换,EDI用户需要按照国际通用的消息格式发送信息,接收方也需要按国际统一规定的语法规则,对消息进行处理,并引起其他相关系统的EDI综合处理。标准化得EDI格式转换保证了不同国家、不同地区、不同企业的各种商业文件(如单证、回执、载货清单、验收通知、出口许可证、原产地证等)得以无障碍电子化交换,促进了国际贸易的发展。

总线式数据集成二代:企业服务总线(ESB)

ESB的使用标志着企业的应用集成进入了SOA时代(SOA是一种面向服务的集成架构)。SOA架构的其主要特征是基于一系列Web标准或规范来开发接口程序,包括UDDI、SOAP、WSDL、XML,并采用支持这些规范的中间件产品作为集成平台,从而实现了一种开放而富有弹性的应用集成方式。

ESB是对web服务(WebService)的注册、编排和管理。

WebService是一种跨编程语言、跨操作系统平台的远程调用技术,是web的一种标准。可以理解为:WebService是一个应用程序向外界暴露了一个能通过Web调用的API接口,我们把调用这个WebService的应用程序称作客户端,把提供这个WebService的应用程序称作服务端。客户端进行服务的远程调用前,需要知道服务的地址与服务有什么方法可以调用。

因此,WebService服务端通过一个文件(WSDL)来说明自己家里有啥服务可以对外调用,服务是什么,服务中有哪些方法,方法输入的参数是什么,返回值是什么,服务的网络地址是什么,通过什么方式来调用等。

WSDL是一个基于XML的语言,用于描述WebService及其函数、参数和返回值,它是WebService客户端和服务器端都能理解的标准格式。

03

离线批量数据集成

在传统数据集成的语境下,离线批量数据集成,通常是指基于ETL工具的离线数据集成,ETL即数据的提取(Extract)、转换(Transform)和加载(Load)。

ETL是数据仓库的核心和灵魂,能够按照统一的规则集成并提高数据的价值,是负责完成数据从数据源向目标数据仓库转化的过程,是实施数据仓库的重要步骤。

在数据仓库、数据湖、数据资产管理等项目中,ETL都是最核心的内容。ETL通过ETL作业流(任务)从一个或多个数据源中抽取数据,然后将其复制到数据仓库。抽取类型有全量抽取、增量抽取、准实时抽取、文件提取等方式。针对不同的数据提取场景设计不同的数据抽取类型。在数据抽取过程中,需要将不符合规则的数据过滤掉,并按照一定的业务规则或数据颗粒度转换成数据仓库可用的数据,这个过程就是数据的清洗和转换。最后,就是调用数据库的服务将数据装载至数据库中。

ETL的实现有多种方法,常用的有三种:

第一种是借助ETL工具:例如:Informatic、IBM CDC、talend、kettle、Nifi等,借助工具可以快速的建立起ETL工程,屏蔽了复杂的编码任务,提高了速度,降低了难度,但是缺少灵活性。

第二种是SQL编码实现:SQL的方法优点是灵活,提高ETL运行效率,但是编码复杂,对技术要求比较高。

第三种是ETL工具和SQL组合实现:综合了前面二种的优点,会极大地提高ETL的开发速度和效率。

04

流式数据集成

流式数据集成也叫流式数据实时数据处理,通常是采用Flume、Kafka等流式数据处理工具对NoSQL数据库进行实时监控和复制,然后根据业务场景做对应的处理(例如去重、去噪、中间计算等),之后再写入到对应的数据存储中。

这个过程类似传统的ETL,但它是流式的处理方式,而非定时的批处理Job,NoSQL数据库采集工具均采用分布式架构,能满足每秒数百MB的日志数据采集和传输需求。

Kafka 就是一个能够处理实时的流式数据的一个新型ETL解决方案。

Kafka 能够通过 Kafka Connect API 实现流数据管道的构建,也就是 ETL 中的 E和L。Connect API 利用了 Kafka 的可扩展性,kafka connect是围绕kafka构建的一个可伸缩,可靠的数据流通道,通过kafka connect可以快速实现大量数据进出kafka从而和其他源数据源或者目标数据源进行交互构造一个低延迟的数据通道。

流处理和转换可以通过 Kafka Streams API 来实现,也就是构建了ETL中的T,Kafka Streams用于在Kafka上构建高可分布式、拓展性,容错的应用程序。它建立在流处理的一系列重要功能基础之上,比如正确区分事件事件和处理时间,处理迟到数据以及高效的应用程序状态管理。

Kafka Streams包含了ConsumerAPI 和ProducerAPI的功能,增强了对数据流的处理能力。使用 Kafka 作为流处理平台能够消除为每个目标 sink、数据存储或系统创建定制化(很可能是重复的)抽取、转换和加载组件的需求。来自数据源的数据经过抽取后可以作为结构化的事件放到平台中,然后可以通过流处理进行数据的转换。

05

网络数据集成

网络数据集成也叫网络数据采集,指通过网络爬虫或网站公开 API 等方式从网站上获取数据信息的过程。

网页爬虫,即一种按照一定的规则,自动地抓取互联网信息的程序或者脚本,一般分为通用网络爬虫和聚焦网络爬虫两种。网页爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。

聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。

网页爬虫支持文本文件、图片、音频、视频等非结构化数据、半结构化数据从网页中提取出来,存储在本地的存储系统中。

目前网络上有许多网页爬虫,Octoparse、WebCopy、HTTrack、Getleft、Scraper等,并且这些工具都是免费的哦!

当然,你是一个技术大大的话,也可以写自己的爬虫程序。

数据湖,比“数据中台”更需要重视的概念|腾研识者

Flink + Iceberg 全场景实时数仓的建设实践

如何理解《2020年大数据白皮书》的大数据技术最新发展趋势?  原创

基于 Flink SQL 构建流批一体的 ETL 数据集成

万字长文解读最新最全的大数据技术体系图谱!

如何更深刻的理解 “Gartner2020年数据与分析技术十大趋势”的内涵?

点击左下角“阅读原文”查看更多精彩文章,公众号推送规则变了,如果您想及时收到推送,麻烦右下角点个在看或者把本号置顶

????分享、点赞、在看,给个3连击吧!????

到底什么叫作数据集成?相关推荐

  1. 到底什么是数据湖?全面解读数据湖的缘起、特征、技术、案例和趋势

    正文开始 本文有1.5万字,预计阅读30分钟,可以先收藏 数据湖近几年迅速蹿红,今天笔者做一个综述,包括数据湖的缘起.数据湖的定义.数据湖的特征.数据湖的技术.数据湖的趋势和数据湖的案例六大部分,如果 ...

  2. 《数据虚拟化:商务智能系统的数据架构与管理》一 1.11 数据集成的其他方式...

    1.11 数据集成的其他方式 使用数据虚拟化可以集成数据,但是这并不是集成来自不同数据存储中数据的唯一方式.正如1.4节所讲,存在不同的技术方法来集成数据,包括ETL.ELT和复制.本节会简要解释这些 ...

  3. 「机器学习」到底需要多少数据?

    本文首发于微调的知乎专栏「数据说」. 机器学习中最值得问的一个问题是,到底需要多少数据才可以得到一个较好的模型?从理论角度,有Probably approximately correct (PAC) ...

  4. 数据集成是开放数据库还是接口?

    系统集成,集成方少不了要读取对方的数据.这种数据共享方式,到底是直接读对方的数据库,还是对方提供一个接口,供集成方调用来获得数据? 接口,而不是直接开放数据库.为啥呢? 1.权限控制 如果是开放数据库 ...

  5. Kafka ETL 之后,我们将如何定义新一代实时数据集成解决方案?

    上一个十年,以 Hadoop 为代表的大数据技术发展如火如荼,各种数据平台.数据湖.数据中台等产品和解决方案层出不穷,这些方案最常用的场景包括统一汇聚企业数据,并对这些离线数据进行分析洞察,来达到辅助 ...

  6. 【大数据】什么是数据集成?(SeaTunnel 集成工具介绍)

    文章目录 一.什么是数据集成? 二.ETL 又是什么? 三.SeaTunnel 介绍 1)概述 2)SeaTunnel 的作用 3)SeaTunnel 的特点 4)Seatunnel 优势与缺点 5) ...

  7. 数据治理专业认证CDMP学习笔记(思维导图与知识点)- 第八章数据集成和互操作篇...

    大家好,我是独孤风,一位曾经的港口煤炭工人,目前在某国企任大数据负责人,公众号大数据流动主理人.在最近的两年的时间里,因为公司的需求,还有大数据的发展趋势所在,我开始学习数据治理的相关知识. 数据治理 ...

  8. 第6章 数据集成、变换与规约2

    目录 6. 1 数据集成 6.1.1 数据集成概述 6.1.2 合并数据 6.1.2.1 pandas中用于合并数据的函数与方法 6.1.2.2 主键合并 6.1.2.2.1 pd.merger() ...

  9. 【活动预告】数据集成引擎BitSail遇上CDC

    BitSail是字节跳动开源数据集成引擎,于2022年10月26日宣布开源,可支持多种异构数据源间的数据同步,并提供离线.实时.全量.增量场景下全域数据集成解决方案.BitSail支撑了字节内部众多的 ...

最新文章

  1. 基于tiny4412的Linux内核移植 -- eMMC驱动移植(六)
  2. ARM的cache和写缓冲器(write buffer)
  3. 空间计量模型_Stata空间面板数据模型专题直播丨Stata空间计量3月远程直播
  4. UIAlertView的使用方法
  5. 文件包含和文件上传结合
  6. Eurek Ribbon Feign常见问题及解决
  7. 第19讲:Pyppeteer 爬取实战
  8. Teams Meeting App的 task 弹出框
  9. .NET Core使用微软AI认知服务识别文字语言
  10. 软件工程——快速掌握面向对象开发方法
  11. Zernike函数拟合曲面--MATLAB实现
  12. pytorch AUTOGRAD
  13. vue 百度统计_2021暑期实习面经百度篇
  14. 【visio】visio绘制流程图教程
  15. this指向详解,思维脑图与代码的结合,让你一篇搞懂this、call、apply。系列(一)
  16. 【PHP编程】WebCat,手机搭建PHP运行环境及项目运行
  17. 奇安信(2019笔试题)
  18. Java面试题目大汇总(附参考答案)
  19. 2021年人工智能领域十大技术
  20. 引用 《金枝欲孽》精彩台词

热门文章

  1. 小刘同学的第七十四篇博文
  2. 外包,你是外包不是正式员工,麻烦不要随便吃公司零食
  3. uniapp项目 mac连接安卓手机无法启动
  4. 2021 年最佳 3D 渲染 GPU
  5. 如何重装oracle数据库,oracle数据库的重装
  6. matlab归一程序,Matlab三种归一化方法
  7. ECharts官方教程(四)【个性化图表的样式】
  8. 基于springboot的智能美食点餐配送系统
  9. 哈工大计算机系统2022大作业:程序人生-Hello‘s P2P
  10. 螺旋无限延伸_无限螺旋篇 其之四