ETL和EAI比较

简介:
什么是EAI?
什么是ETL?
ETL和EAI之间的关系
ETL和EAI之间的区别
 

什么是 EAI? 
企业的业务流程会同时涉及到多个应用系统,因此要求这些系统能够协同,但接口、架构的不统一往往使得这些本应紧密集成的应用系统成为了一个个“信息孤岛”。于是,企业应用集成( Enterprise Application Integration, EAI)技术应运而生,它可以通过中间件作为粘合剂来连接企业内外各种业务相关的异构系统、应用以及数据源,从而满足 E-Commerce、 ERP、 CRM、 SCM、 OA、数据库、数据仓库等重要系统之间无缝共享和交换数据的需要。 EAI 涉及技术广泛,实施复杂。
基本特征
EAI 的核心是使用中间件连接企业应用。有多种不同类型的中间件可以提供 EAI 的功能。在选择 EAI 中间件时需注意以下的基本特征:

* 通过中间件将不同的应用连接起来,保证应用的独立性,在不需要修改应用自身的业务逻辑的同时,又解决了数据共享问题。
* 对核心共享业务数据模型的处理与支持。
* 实现业务流程自动化。确保各个部门在采用不同的系统的同时可以协同完成同一个工作。
* 支持应用架构的不断变更。可以方便地重新配制以增加或去除系统而不会影响其它系统。
* 能够提供实时接口和批处理接口,能够提供同步和异步接口。
* 必须保证数据的安全,只有目的应用可以读取。
* 良好的性能和数据吞吐量,并且具有灵活的可扩展性以适应企业的发展。
* 必须具备恢复机制,当数据传输过程中发生连接中断等异常时可以确保数据的恢复。
* 对流程管理提供预定义的通用模型与行业模型。
* 既能够提供实时接口和批处理接口,又能够提供同步和异步接口。
* 能够提供实时接口和批处理接口,能够提供同步和异步接口。

五大层面
一个完整的 EAI 解决方案应当包含以下五个层面:

* 用户交互:实现应用用户界面统一的接入与安全机制,利用门户技术进行构建。
* 应用连接:通过 HUB 或总线架构,实现应用与应用之间的连接,完成相关的数据路由与数据格式转换。
* 业务流程整合:实现业务流程管理,包括工作流管理和自动化流程两个方面。
* 构建整合:这个层面包含两个部分,一部分是构建与现有应用兼容的新应用,另一部分是对现有资源进行重用以适应新环境的需要。
* 信息集成:实现数据集成,在异构的数据源之间实现数据层的直接整合。

相关技术
EAI 解决方案通常涉及到 JCA、 JMS、 Web 服务以及 XML 等多种企业级技术。这些技术都已经成为业界的标准,从而可以最大化地保护客户投资。这些技术既可以被包含在相关产品中供用户透明地使用,也可以由用户自己在应用程序中加以调用。此外, SOA(面向服务的架构)随着各大厂商的追捧而变得炙手可热。虽然 SOA 本身不是一个全新的概念, 但由于 Web 服务以及网格计算等技术的成熟, SOA 具备了更好的发展条件。对于 EAI 来说,基于 SOA 的企业应用系统可以随着企业业务的变化而逐渐变化,能够实现“柔性化”的软件系统,从而降低实施 EAI 的成本和风险,因此我们可以说 SOA 的兴起给了 EAI 厂商一个新的机会。
什么是 ETL?
ETL即数据抽取( Extract)、转换( Transform)、装载( Load)的过程。它是构建数据仓库的重要环节。数据仓库是面向主题的、集成的、稳定的且随时间不断变化的数据集合,用以支持经营管理中的决策制定过程。数据仓库系统中有可能存在着大量的噪声数据 ,引起的主要原因有:滥用缩写词、惯用语、数据输入错误、重复记录、丢失值、拼写变化等。即便是一个设计和规划良好的数据库系统,如果其中存在着大量的噪声数据,那么这个系统也是没有任何意义的,因为“垃圾进,垃圾出”( garbage in, garbage out),系统根本就不可能为决策分析系统提供任何支持。为了清除噪声数据,必须在数据库系统中进行数据清洗。目前有不少数据清洗研究和 ETL研究,但是如何在 ETL过程中进行有效的数据清洗并使这个过程可视化,此方面研究不多。本文主要从两个方面阐述 ETL和数据清洗的实现过程: ETL的处理方式和数据清洗的实现方法。
( 1) ETL的处理方式
本文所采用的 ETL方法是数据库段区域中的 ETL处理方式,它不使用外部引擎而是使用数据库作为唯一的控制点。由于源系统 SQLserver2000是关系数据库,它的段表也是典型的关系型表。成功地将外部未修改数据载入数据库后,再在数据库内部进行转换。数据库段区域中的 ETL处理方式执行的步骤是提取、装载、转换,即通常所说的 ELT。这种方式的优点是为抽取出的数据首先提供一个缓冲以便于进行复杂的转换,减轻了 ETL进程的复杂度。
( 2) ETL过程中实现数据清洗的实现方法
首先,在理解源数据的基础上实现数据表属性一致化。为解决源数据的同义异名和同名异义的问题,可通过元数据管理子系统,在理解源数据的同时,对不同表的属性名根据其含义重新定义其在数据挖掘库中的名字,并以转换规则的形式存放在元数据库中,在数据集成的时候,系统自动根据这些转换规则将源数据中的字段名转换成新定义的字段名,从而实现数据挖掘库中的同名同义。
其次,通过数据缩减,大幅度缩小数据量。由于源数据量很大,处理起来非常耗时,所以可以优先进行数据缩减,以提高后续数据处理分析效率。
最后,通过预先设定数据处理的可视化功能节点,达到可视化的进行数据清洗和数据转换的目的。针对缩减并集成后的数据,通过组合预处理子系统提供各种数据处理功能节点,能够以可视化的方式快速有效完成数据清洗和数据转换过程。
ETL 与 EAI 之间的关系 
随着这种集成的增多,企业信息系统之间需处理的数据量也将越来越大,数据的传输将变得越来越复杂。 越来越适合用于这种数据处理的工作,并逐渐挑战传统 EAI (enterprise application integration)在系统集成中的地位了。 ETL(extraction, transformation and loading)
最初 ETL 的设计是为了方便建立数据市场和数据仓库,并将它们升级为批处理方式。而下一代的 ETL 工具则在许多功能上做了扩展,使其能够适用于企业的应用集成,并且其中的一些工具将能够起到 EAI 某些工具的作用。
但是 ETL 还不能取代 EAI,下一代 ETL在应用集成领域中还只是 EAI的补充。但是随着 ETL技术的发展,企业在建立基于批处理数据仓库的系统集成工具时,将越来越关注对 ETL的选择,同时 EAI和 ETL之间的界限也将变得越来越模糊。

ETL 与 EAI 之间的区别
ETL 工具适合数据集成, EAI 工具则适用于流程操作。
下一代 ETL 工具更加适用于解决两个系统间数据的批量或者实时同步工作,特别是当大量巨大的数据在两个系统间提取、转换和存储时, ETL 的优势更加明显。 EAI 则适用于工作流和商业流程管理的需求,特别是擅长处理大量小事务。
对于交互式流程,如果它没有扩展工作流的需求,没有复杂数据的转换的需求,或者需要批量实时数据的合并处理,则 工具将是比较好的选择。 ETL
ETL 工具比较适合于数据集成的工作,如应用系统之间的数据同步和点对点的单步交互工作;需要实时数据处理的工作中包含了大量的数据处理、复杂的数据传输和数据运算,它同样适合采用 ETL 工具。
上面这些工作,即便是有些具体的处理需要通过 EAI 工具编程实现,我们还是可以用 ETL 中的工具来处理。因为 ETL工具主要是通过关系型数据库来实现大量数据操作的,所以使用这类工具来传输大块的数据将取得更好的效果。
EAI 工具无疑是最适合流程集成的工具,如果流程中包含了大量的传输,那么它就必然包含了对业务流程的管理和实时交互的流程。
 






本文转自baoqiangwang51CTO博客,原文链接:http://blog.51cto.com/baoqiangwang/309766 ,如需转载请自行联系原作者
相关文章
|
数据采集 SQL 分布式计算
常用的数据集成ETL工具有哪些?
六种常用的数据集成ETL工具
常用的数据集成ETL工具有哪些?
|
1月前
|
存储 监控 物联网
Doris实时数仓
Doris实时数仓
53 11
|
8月前
|
消息中间件 分布式计算 BI
ETL和ELT到底有啥区别???
ETL和ELT到底有啥区别???
|
存储 SQL 数据采集
ETL 为什么经常变成 ELT 甚至 LET?
ETL是将数据从来源端经过清洗(extract)、转换(transform)、加载(load)至目的端的过程。正常的 ETL 过程应当是 E、T、L 这三个步骤逐步进行,也就是先清洗转换之后再加载进目标端(通常是数据库),最后在数据库中的只是合理的结果数据。这个过程本来很合理,但实际过程中经常被执行成ELT甚至LET,即源端数据先装载进目标库再进行清洗和转换。
140 0
ETL 为什么经常变成 ELT 甚至 LET?
|
存储 分布式计算 大数据
你真的了解ELT和ETL吗?
你真的了解ELT和ETL吗?
469 0
|
存储 流计算
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现2
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现2
219 0
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现2
|
存储 运维 OLAP
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现1
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现1
434 0
【实时数仓篇】(02)基于 Flink 的典型 ETL 场景实现1
|
数据采集 OLTP 数据库
|
数据库连接 数据库 关系型数据库
ETL工具 kettle
Kettle简介:Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。Kettl
8911 0
|
SQL 消息中间件 算法
Flink CDC 如何简化实时数据入湖入仓
本文整理自云邪、雪尽在 Flink Forward Asia 2021 的分享,该分享以 5 个章节详细介绍如何使用 Flink CDC 来简化实时数据的入湖入仓, 文章的主要内容如下: 1. Flink CDC 介绍 2. Flink CDC 的核心特性 3. Flink CDC 的开源生态 4. Flink CDC 在阿里巴巴的实践与改进 5. Flink CDC 的未来规划
10074 2
Flink CDC 如何简化实时数据入湖入仓