主流ETL工具调研

一、ETL工具概述

        ETL,全称 Extract-Transform-Load,它是将大量的原始数据经过提取(extract)、转换(transform)、加载(load)到目标存储数据仓库的过程。

理解ETL

        ETL 是企业数据应用过程中的一个数据流(pipeline)的控制技术,把原始的数据经过一定的处理,放入数据仓库里。

        提取是将关系型数据库和非关系型数据库,以及文件图档数据,第三方接口数据,应用的webhook数据等多种多样的原格式数据抽象出来,形成统一的数据格式先放入缓存区,等待下一步转换操作。

        转换是根据我们的商业需要,用一些规则、方法进行数据处理。一般常见的转换操作有:

  • 筛选:筛选部分数据,或者部分字段,提取一部分有用的数据
  • 清理:缺失值填充、默认值设定、枚举映射等,如将一些编码转为可识别的符号,比如省份代码 sh 转为「上海」
  • 合并:将多个属性合并在一起
  • 格式转换:,如原数据是一下个时间戳(timestamp),我们为了方便后续分析转换为时间格式,指定时区
  • 拆分:将单个属性值拆分为多个属性值,如原为一个邮编,拆分解析成省份、城市等多个字段
  • 排序:按期望的数据顺序进行排列
  • 计算:如原数据为年龄,用当前年份减去年龄同,取得出生年份

        数据加载是按照预先定义好的数据仓库模型,将数据加载到数据仓库中去,是构建数据仓库最重要的一步。常用的数据加载方式有:

  • 全量加载:全表删除后再进行数据加载的方式。
  • 增量加载:目标表仅更新源表变化的数据。

二、主流ETL工具

当前业界主流的工具有datax、airbyte、kettle等。其中kettle的图形化依赖GNOME桌面等。因此主要从datax、airbyte、kettle三个主流工具从功能特点进行介绍。

1、DataX

DataX是阿里开源的一个异构数据源离线同步工具。作为一个服务于大数据的ETL工具(其实可以算作是ELT工具),除了提供数据快照搬迁功能之外,还提供了丰富数据转换的功能,能提供稳定高效的数据同步功能。

dataX的简单流程

1)、编写数据同步操作的json文件

2)、命令行模式执行调用json进行数据同步

优点:

(1)支持多个数据源和数据目标,且接入方便。

(2)支持高速数据传输,适用于大规模数据处理场景。

(3)定制化程度高,支持用户自定义开发。

缺点:

DataX但DataX是以脚本的方式执行任务的,需要完全吃透源码才可以调用,学习成本高。

缺少用户友好的界面,需要编写脚本进行配置 ,可视化监控和数据追踪能力不够完善。运维成本相对高。

2、airbyte

airbyte是一款最新开源的数据集成软件,它将应用程序、API和数据库中的数据同步到数据仓库、数据湖和其他目的地,支持200个Source类型连接器,100 个Destination类型的连接器。Airbyte 最主要的产品还是 Extract 数据抽取和 Load 数据加载产品。

Airbyte的简单流程:

1)从Airbyte支持的“Sources”中选择想要连接的数据源,并配置相应信息

2)从Airbyte支持的“Destinations”中选择数据写入的目标,并配置相应信息

3)有了数据源和目标的信息,我们就可以建立一条连接(connection),并设置一个同步周期来同步数据了

Airbyte 分为免费版、云版本和企业版。

开源版本可用作自助服务、免费解决方案。它可以访问无限连接器、复制、监控和通过社区为用户提供支持。云版本除了提供开源的所有功能之外,还提供其平台的云托管服务,并按积分收费。其信用消耗与基础设施计算时间相关。它带有云数据托管、数据管理、多个工作区等。

云版本提供 14 天的免费试用期,之后按每个积分 2.50 美元的价格按月收费。

企业版是针对处理大数据量需求的用户,依据客户用例收费。Airbyte 不对失败的客户用例收费。Airbyte 希望通过开源模式和付费贡献者计划,解决行业对长尾连接器的需求。从这方面来看,闭源产品大多是无法满足的。此外,他们还希望通过开源加快业界使用他们的连接器,从而提高产品可靠性。

3、Kettle

Kettle是一款开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。

Kettle的两种任务类型:

Kettle的特点:

以下为kettle的命令行方式数据转换操作截图:

kettle优点:

(1)提供了直观的图形化用户界面,用户可以通过拖放和连接转换步骤来构建数据集成流程,这种可视化的开发方式使得非技术人员也能够轻松上手,并加快了开发效率。

(2)Kettle提供了丰富的转换步骤和功能,使用户能够对数据进行清洗、过滤、转换和合并等操作,它支持各种数据处理技术,包括字符串操作、日期处理、聚合计算、条件判断等,以满足复杂的数据转换需求。

缺点:

(1)学习上手存在一定难度,对于新手来说,Kettle可能需要一些时间来理解其概念和操作方式。尤其是在处理复杂的数据转换逻辑时,需要具备一定的数据处理和编程知识。

(2)文档支持有限,相比其他一些国产的ETL工具,Kettle在国内的用户数量虽然很多,但是中文文档和技术支持相对有限。这可能导致在遇到问题时需要更多的自学和研究。

(3)不支持CDC实时数据采集功能,只能依赖加快任务的调度频率如1分钟来实现实时数据传输,如果数据量比较庞大的话,对于生产系统的话会造成很大的压力。

三、ETL竞品分析

Airbyte和DataX都是用于数据同步和ETL(Extract, Transform, Load)的工具,但在一些方面存在一些差异。

1、可视化界面:Airbyte提供了一个基于Web的用户界面,可以通过可视化方式配置和管理数据同步任务,无需编写复杂的代码。而DataX主要是通过配置文件进行任务配置,然后通过python脚本调用,需要一定的技术能力和经验。

2、社区和生态系统:DataX是由阿里巴巴集团开发和维护的项目,有较为活跃的开发者社区和丰富的插件生态系统,可以满足不同的数据同步需求。Airbyte是一个较新的开源项目,虽然社区和生态系统在不断发展壮大,但可能相对DataX来说生态还要有限一些,且网上可供参考的资料偏少。

3、扩展性和定制化:DataX具有较高的扩展性,可以通过编写插件来支持更多的数据源和数据目标。同时,DataX还提供了丰富的Transformer插件,用于数据转换和清洗操作。Airbyte也提供了类似的扩展性和定制化能力,可以通过开发自定义连接器和转换器来满足特定的需求。

四、结论建议

Airbyte是一个较新的开源项目,虽然社区和生态系统在不断发展壮大,网络上资料比较少,建议测试环境可以使用,dataX和kettle网络上资料比较多。侧重于大数据量的抽取同步场景使用dataX, 侧重于数据转换的场景使用kettle。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

易道合之逍遥峰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值