共计 3244 个字符,预计需要花费 9 分钟才能阅读完成。
数据集成是把不同起源、格局、特点性质的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享。
数据集成的外围工作是要将相互关联的异构数据源集成到一起,使用户可能以通明的形式拜访这些数据资源。
数据集成的目标是指保护数据源整体上的数据一致性,解决企业“信息孤岛”的问题,进步信息共享和利用的效率。
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 等,并且这些工具都是收费的哦!
当然,你是一个技术大大的话,也能够写本人的爬虫程序。