【51CTO.com快译】数据提取、转换与加载(ETL,Extract-Transform-Load)工具能够使组织内的不同数据更易于访问、更有意义、也更能被其他数据系统所使用。通常情况下,面对由此产生的自写代码、自建系统的相关成本和复杂性时,企业会直接去选择购置ETL工具。
- 第一种选择:您可以根据自身的情况,选择各种开源的ETL工具(请参考https://www.alooma.com/blog/open-source-etl-tools-comparison),来进行自行搭建。不过您往往会发现自己需要有更多的功能、灵活性与技术支持。
- 第二种选择:与现有供应商合作,选择一种能够很好地处理当前数据源和数据流的解决方案。此处所说的现有供应商,一般是一些大品牌的厂商。
- 第三种选择:最新的ETL平台。这些通常是基于云端的解决方案,能够为现有数据源到云端数据仓库的各种数据提供端到端的ETL支持。它们也是针对日益增长的、基于网络的大数据流量所构建的。
本文将深入分析各种现有ETL工具的优、缺点,并快速浏览各种最新的ETL平台。
现有ETL工具概述
现有的ETL工具通常由业界知名公司(微软,IBM等)所设计,因此其预装的客户群也比较庞大。
这些工具一般由一整套的工具所组成,并且能够针对具体的问题被予以定制。由于许多公司将其数据存储在传统的单一数据库和系统之中,因此这些工具的制造商能够提供用相应的数据迁移工具,并支持现有的批处理方法。
常见的ETL工具
下面虽不是一份完整的清单,但它涵盖了主要的工具产品。
1.IBM InfoSphere Information Server
作为一款ETL工具,IBM InfoSphere Information Server是IBM Information Platforms Solutions套件和IBM InfoSphere的一部分。它使用图形符号来构建数据的整合方案,并具备各种版本(包括服务器版,企业版和MVS版)。
Informatica PowerCenter是一款ETL产品套件的总称,它包括PowerCenter客户端工具、服务器和存储数据库。
该软件将数据存储在库中,以便客户端工具和服务器能够访问到。各种操作一般在服务器上被执行,其服务器分别连接到源与目标系统上以获取数据,然后通过各种转换,最终将数据加载到目标系统之中。
3.iWay软件
Information Builders的iWay集成套件具有将应用程序与数据相集成的功能。客户可以使用它们来管理结构化、与非结构化的信息。该套件包括有iWay数据迁移器、iWay服务管理器和iWay通用适配器框架。
4.Microsoft SQL Server Integration Services
Microsoft SQL Server集成服务(SSIS)是一个高性能的数据集成方案平台,它包含了用于数据仓库的各种ETL包。
5.OpenText
OpenText集成中心是一个具有整合能力的平台,各个企业能够通过它来提取、增强、改造、整合数据,并且可以将数据内容从一个或多个存储库迁移到任何新的目标之上。
6.Oracle GoldenGate
Oracle GoldenGate是一款比较全面的软件包,它能够实现在异构的IT环境中进行实时的数据集成与复制。
7.Pervasive软件
Pervasive的数据集成平台是一款企业级的数据集成软件方案,它能够帮助公司在任何类型的数据源和应用程序之间建立起连接。同时,它还能支持各种实时集成的场景。
8.Pitney Bowes软件
Pitney Bowes能够提供大量针对数据集成的工具和解决方案。其Sagent Data Flow是一款灵活的整合引擎,它能够采集不同来源的数据,并提供一套全面的数据转换工具,以增强其核心的业务价值。
9.SAP Business Objects Data Services
以前被称为Business Objects Data Integrator的SAP业务对象数据服务(BODS)是一款可被用于数据集成、质量控制、分析和处理的ETL工具。它能够帮助您将可信的数据整合并转换到各个数据仓库的系统之中, 以产生分析报告。
10.SAS Data Management
SAS数据管理建立在SAS平台之上,它是SAS投向ETL市场的一个工具。该平台由一个包含了(20多种)SAS工具和服务的大型套件所组成。
11.Sun Java Composite Application Platform Suite
Sun的ETL与数据集成工具是大型Java复合应用程序平台套件(CAPS)中的一部分。它是Oracle公司的一款标准化企业服务总体套件(Enterprise Service Bus software suite)。Java CAPS的组件能够整合现有应用程序,并能在面向服务的架构环境中提供新的业务服务。
12.SYBASE
Sybase ETL包括Sybase ETL Development和Sybase ETL Server。
Sybase ETL Development是一款用于创建和设计数据转换项目与作业的GUI工具。该工具提供了一个完整的模拟与调试环境,旨在加速ETL转换流程的开发。Sybase ETL Development包含有一台用于控制实际处理流程的ETL开发服务器,它能够连接到各个数据库,并执行相关过程。
Sybase ETL Server是一种可扩展的分布式网格引擎,它使用转换流(由Sybase ETL Development所设计)来连接到各个数据源,通过提取数据,然后将数据加载到目标之上。
13.Syncsort
SyncSort的云解决方案能够访问并整合来自各种来源的数据,从而于将数据迁移到各个云端的存储数据库之中。
现有ETL工具的局限性
现有工具最大的局限性在于:它们被设计为“批量进行工作”,即:采集数据、上传数据、采集更多的数据、再上传之。这种批量加载数据在某些情况下的确适用,但是在某些单独的方法上会存在一些问题。
数据批处理与转换工具很难实现跨平台的数据源采集,特别是在涉及到变更数据捕获(CDC,Change Data Capture)的情况时。当上传批量数据出现问题时,您需要跟踪问题、排除故障并尽快重新提交作业。而这种批量处理方式是非常致命的,因为如果在数据仓库中存在着超过24小时的、被API调用与分配的数据;或者需要同时备份传入的数据,那么这些CDC信息就可能因此而丢失或被覆盖,从而造成巨大的问题。
而面对越来越多的数据流和其他类型的数据源时,尤其是在需要尽快提供最新数据的需求下,这些批处理的工具集就更加不适合了。
最新ETL工具的概述
最新的ETL工具套件是以实时流量数据处理和云计算为基础所构建的。它们与先进的云端数据仓库有着很好的集成,并能够支持持续增长的数据源和数据流。
如今的趋势是:基于云的ETL服务。它们通常能够提供对实时数据、智能模式检测等方面的支持。
随着对实时数据访问需求的出现,诸如Kafka之类的最新模型,都能够实现基于数据流的处理和分布式的消息队列。以Alooma为代表的公司,通过新的技术提供了基于SaaS平台和本地的解决方案。面对数据流,最新的ETL平台能够在完成加载的数据仓库内部,进行不同级别的转换,并通过Python、Java等代码以实现完全控制。
而对于数据的完整性,最新的ETL平台通过强大的内置安全网络,能够实现各种错误的处理和报告。
常见的最新ETL平台和工具
下面列出了常见的最新ETL平台和工具:
1.Alooma
Alooma是一个为云服务构建的企业数据管道(data pipeline)平台。Alooma能够提供一种现代的、可扩展的、基于云端的ETL解决方案,它可以实时地将来自任何数据源的数据汇集到任何一个数据仓库之中。
- 错误处理:处理、监控/报告、整流(restreaming)
- 转换:支持Python转换的ETL
Confluent是一个基于Apache Kafka的全面数据流平台。它能够在数据流中发布、订阅、存储并处理数据。Confluent提供了其平台的开源版本。
- 错误处理:仅监控
- 转换:ETL,Kafka Streams API
3.Fivetran
Fivetran是一款SaaS类型的数据集成工具。它能够从不同的云服务、数据库和商业智能(BI)工具中提取数据,并将其加载到数据仓库之中。
- 错误处理:仅监控
- 转型:有限的ELT
4.FlyData
FlyData是一款SaaS类型的数据迁移工具。它可用于管理MySQL、PostgreSQL、MariaDB、Percona的数据加载过程,并以CSV/TSV/JSON的格式记录到Amazon的Redshift数据仓库之中。
- 错误处理:缓冲式处理
- 转型:有限的ELT
Matillion能够提供云端数据的集成。它是一款专为Amazon Redshift、Google BigQuery和Snowflake构建的ETL工具。
- 错误处理:仅通过代码支持,但并非内置
- 转换:图形化构建的ETL
SnapLogic提供了数据集成平台即服务(data integration platform-as-a-service)的工具,可用于连接各种云端数据源、SaaS应用和本地的商业软件应用。
- 错误处理:支持,但并非内置
- 转换:图形化构建的ETL
7.Stitch Data
Stitch是一款云端优先(cloud-first)的、开发者专用工具,可用于快速地移动数据。
- 错误处理:手动,记录在拒绝表(rejection table)中
- 转型:有限的准ETL
StreamSets是原生云(cloud-native)的产品集合,可用于控制数据漂移,以及与数据、数据源、数据基础架构、数据处理有关的变化问题。
- 错误处理:有错误记录处理
- 转换:代码类和GUI的ETL
9.Striim
Striim(发音为“stream”)是一个实时的流媒体分析和数据集成平台。
- 错误处理:仅监控
- 转换:内置和具有Java功能的ETL
原文标题:2018 ETL Tools Comparison ,作者:Garrett Alley
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】