Data Integration

Kopei article

数据集成简介

企业总是有从各个系统里集成数据的需求, 数据集成就是一门技术用来提供企业层面的统一和一致的数据视图. 数据集成的目的是维护数据源整体上的数据一致性, 解决企业数据孤岛问题, 提高信息共享和利用的效率. 数据集成的核心任务是将有关联的异构数据源集成到一起, 使用户能够透明地方式访问这些数据.

数据集成的分类

从集成方式的角度来分, 数据集成可分为:

  • 点对点集成
  • 总线式集成
  • 离线批量集成
  • 流式数据集成

点对点数据集成

点对点一般采用接口方式对接, 适合连接对象比较少的情况, 具有开发周期短, 技术难度低的优势. 问题是当连接对象变多, 连接路径将会指数级增长, 效率和维护成本会变大. 主要的维护成本在于不能集中管理和监控接口服务, 如果交换协议不一致将会遇到开发困难.
点对点的集成是紧耦合的,当一个连接变化时,所有与其相关的接口程序都需要重新开发或调试。

总线式数据集成

总线式数据集成是通过在中间件上定义和执行集成规则,其拓扑结构不再是点对点集成形成的无规则网状,而主要是中心辐射型的(Hub型)星型结构或总线结构.
总线结构通过与点对点集成架构相比,采用总线架构可以显著减少编写的专用集成代码量,提升了集成接口的可管理性。不同连接对象如果连接方式有差异,可以通过总线完全屏蔽掉,做到对连接对象透明,无需各个连接对象关心。通过总线结构,把原来复杂的网状结构变成简单的星形结构,极大提高了硬件的可靠性和可用性。

  • 第一代总线集成工具: EDI电子数据交换系统
    企业直接按照通用的消息格式发送信息,接收方也需要按统一规定的语法规则,对消息进行处理,并引起其他相关系统的EDI综合处理。一般EDI用于企业间交换交易凭证和发票等数据, 是无纸化办公的实现.

  • 第二代总线集成工具: ESB企业服务总线
    ESB的使用标志着企业的应用集成进入了SOA时代(SOA是一种面向服务的集成架构)。SOA架构的其主要特征是基于一系列Web标准或规范来开发接口程序,包括UDDI、SOAP、WSDL、XML、REST,并采用支持这些规范的中间件产品作为集成平台,从而实现了一种开放而富有弹性的应用集成方式。
    ESB是对web服务(WebService)的注册、编排和管理。
    WebService是一种跨编程语言、跨操作系统平台的远程调用技术,是web的一种标准。可以理解为:WebService是一个应用程序向外界暴露了一个能通过Web调用的API接口,我们把调用这个WebService的应用程序称作客户端,把提供这个WebService的应用程序称作服务端。客户端进行服务的远程调用前,需要知道服务的地址与服务有什么方法可以调用。
    因此,WebService服务端通过一个文件(WSDL)来说明自己家里有啥服务可以对外调用,服务是什么,服务中有哪些方法,方法输入的参数是什么,返回值是什么,服务的网络地址是什么,通过什么方式来调用等。
    WSDL是一个基于XML的语言,用于描述WebService及其函数、参数和返回值,它是WebService客户端和服务器端都能理解的标准格式。

离线批量数据集成

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

  • 第一种是借助ETL工具:例如:Informatic、IBM CDC、talend、kettle、Nifi等,借助工具可以快速的建立起ETL工程,屏蔽了复杂的编码任务,提高了速度,降低了难度,但是缺少灵活性。
  • 第二种是SQL编码实现:SQL的方法优点是灵活,提高ETL运行效率,但是编码复杂,对技术要求比较高。
  • 第三种是ETL工具和SQL组合实现:综合了前面二种的优点,会极大地提高ETL的开发速度和效率。

流程数据集成

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

网络数据集成

网络数据集成也叫网络数据采集,指通过网络爬虫或网站公开API等方式从网站上获取数据信息的过程。
网页爬虫,即一种按照一定的规则,自动地抓取互联网信息的程序或者脚本,一般分为通用网络爬虫和聚焦网络爬虫两种。网页爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。
聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。
网页爬虫支持文本文件、图片、音频、视频等非结构化数据、半结构化数据从网页中提取出来,存储在本地的存储系统中。
目前网络上有许多网页爬虫,Octoparse、WebCopy、HTTrack、Getleft、Scraper等.

表格总结

|—————–+————+—————–+—————-|

方式 优点 缺点 备注
点对点 1.开发周期短 2.技术难度低 1.维护成本高 2.紧耦合 3.接口协议局限 基本不选择
总线式 1.集中管理 2.多协议 3. 解耦和结构星型化 4.可声明 1.存在单点问题,需要高可用 2.开发成本比点对点高 适合API类型的数据集成
离线批量 1.吞吐量大 2.可自定义数据模型 3.可集成数仓 1.需要一定编码能力 2.数据有延迟 3.ETL一般只支持关系型数据 适合数仓系统
流式数据集成 1.实时 2.吞吐量达每秒百MB 3.支持NoSQL 1.架构较复杂 2.需要devops能力 一般使用Kafka
—————–+————+—————–+—————-
  • Post title:Data Integration
  • Post author:Kopei
  • Create time:2021-04-10 00:00:00
  • Post link:https://kopei.github.io/2021/04/09/bigdata-2021-04-10-data-integration-tools/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
 Comments