当前位置:首页 > 技术 > 正文内容

ETL工具Datax、sqoop、kettle 的区别

Lotus2022-10-06 18:30技术

一、Sqoop主要特点:

1.可以将关系型数据库中的数据导入到hdfs,hive,hbase等hadoop组件中,也可以将hadoop组件中的数据导入到关系型数据库中;

2.sqoop在导入导出数据时,充分采用了map-reduce计算框架(默认map数为4),根据输入条件生成一个map-reduce作业(只有map,没有reduce),在hadoop集群中运行。采用map-reduce框架同时在多个节点进行import或者export操作,熟读比单节点运行多个并行效率高,同时提供了良好的并发性和容错性;

3.支持insert,update模式,可以选择参数,若内容存在就更新,若不存在就插入;

4.对国外主流关系型数据库支持性更好。

 

二、Datax 主要特点:
1、异构数据库和文件系统之间的数据交换;
2、采用 Framework + plugin 架构构建,Framework 处理了缓冲,流控,并发,上下文加载等高速数据交换的大部分技术问题,提供了简单的接口与插件交互,插件仅需实现对数据处理系统的访问;
3、数据传输过程在单进程(单进程多线程)内完成,全内存操作,不读写磁盘,也没有 IPC(进程之间的通信);
4、开放式的框架,开发者可以在极短的时间开发一个新插件以快速支持新的数据库/文件系统。
 
三、Kettle 主要特点:
1、kettle (数据抽取、清洗、转换、装载)是由 java 编写,可以在 Window、Linux、Unix 上运行。支持多数据源, 多种中间件的专业 ETL 工具。
2、支持图形化 GUI 设计界面,组件多样性,支持 http 请求,上手简单支持拖拽,支持 sql , 可以编写js ,可以编写一些 java 代码,然后以工作流的形式流转。如果没有冲突可以并行执行,并行开发。在工具内可以查看 读 写 修改 输出 更新 拒绝 错误 等 一些参数,快速定位和纠错。
 
四、Sqoop 和 Datax 的区别:
1、sqoop 采用 map-reduce 计算框架进行导入导出,而 datax 仅仅在运行 datax 的单台机器上进行数据的
抽取和加载,速度比 sqoop 慢了许多;
2、sqoop 只可以在关系型数据库和 hadoop 组件之间进行数据迁移,而在 hadoop 相关组件之间,比如
hive 和 hbase 之间就无法使用 sqoop 互相导入导出数据,同时在关系型数据库之间,比如 mysql 和
oracle 之间也无法通过 sqoop 导入导出数据。与之相反,datax 能够分别实现关系型数据库 hadoop 组件
之间、关系型数据库之间、hadoop 组件之间的数据迁移;
3、sqoop 是专门为 hadoop 而生,对 hadoop 支持度好,而 datax 可能会出现不支持高版本 hadoop 的现象;
4、sqoop 只支持官方提供的指定几种关系型数据库和 hadoop 组件之间的数据交换,而在 datax 中,用户
只需根据自身需求修改文件,生成相应 rpm 包,自行安装之后就可以使用自己定制的插件;
 
五、Kettle 与 DataX 的区别:
1、Kettle 拥有自己的管理控制台,可以直接在客户端进行 etl 任务制定,不过是 CS 架构(服务器-客户机),而不支持 BS(浏览器-服务器)架构。DataX 并没有界面,界面完全需要自己开发,增加了很大工作量。
2、Kettle 可以与我们自己的工程进行集成,通过 JAVA 代码集成即可,可以在 java 中调用 kettle 的转换、执行、结束等动作,这个还是有意义的,而 DataX 是不支持的,DataX 是以执行脚本的方式运行任务的,当然完全吃透源码的情况下,应该也是可以调用的。
3、支持的数据库,都支持的比较齐全,kettle 支持的应该更多,DataX 是阿里开发,可以更好地支持阿里自身的数据库系列,如 ODPS、ADS 等
4、Kettle 已经加入 BI 组织 Pentaho,加入后 kettle 的开发粒度和被关注度更进一步提升
5、DataX 开源的支持粒度不高,关注度远没有 kettle 高,代码提交次数更是少的很。
 
六、Kettle 与 Sqoop 的区别
1、Kettle 中有两种脚本文件,transformation 和 job,transformation 完成针对数据的基础转换,job则完成整个工作流的控制;Sqoop 主要用于在 Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递
2、kettle 有图形化的操作界面,只需要描述你想做什么,而不是你想怎么做;sqoop 没有图形化界面,具体的数据流向需要手工配置。
3、kettle 底层使用多线程以提高效率;Sqoop 专为大数据批量传输设计,能够分割数据集并创建 Hadoop任务来处理每个区块。
4、kettle 可以利用 transformation 在数据传输过程中对数据的一些转换处理;Sqoop 只是一个用来将Hadoop 和关系型数据库中的数据相互转移的工具
5、kettle 数据的具体流向可以指定,可以是各种数据的存储工具;sqoop 只是完成 hdfs 到关系型数据库或者 关系型数据库到 hdfs 的数据传输,在传输的过程中保证传输数据的类型
 
 
 
 
 
 
 
 
 
 
 
 
 
 

扫描二维码推送至手机访问。

版权声明:本文来源于网络,仅供学习,如侵权请联系站长删除。

本文链接:https://news.layui.org.cn/post/123.html

分享给朋友:

“ETL工具Datax、sqoop、kettle 的区别” 的相关文章

Python 3.12 目标:还可以更快!

按照发布计划,Python 3.11.0 将于 2022 年 10 月 24 日发布。 据测试,3.11 相比于 3.10,将会有 10-60% 的性能提升,这个成果主要归功于“Faster CPython”项目,即“香农计划”。 关于“香农计划”的详情,可查看 Python 之父的主题分享,以及他的一则播客访谈。 3.11 版本为 Python 的提速开了一个激动人心的好头。接下来,3.12 还...

#打卡不停更#家庭健康管理平台

0. 项目简介 身体健康是一切生产生活的硬性基础。健康是福,一切安好,未来才可期。为什么经常跑步体重缺还在往上飘?突发紧急情况怎么处理?在数字时代,如何更好的为人们提供健康福祉、普及健康知识?如何进一步驱动个人健康管理是的值得研究的方向。为此,我们团队打造了一个健康管理平台——家庭健康管理平台。概览如下图所示: 家庭健康助理是集健康数据测量与管理、急救设备及使用指导、疫情防控实况、日常生活建议...

Python基础(十) | Numpy详细教程

第十一章 Numpy库 ⭐本专栏旨在对Python的基础语法进行详解,精炼地总结语法中的重点,详解难点,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握python编程,同时为后续的数据分析,机器学习及深度学习的代码能力打下坚实的基础。 ????本文已收录于Python基础系列专栏: Python基础系列教程 欢迎订阅,持续更新。 10.1 为什么要用Numpy 10.1.1  ...

将 N 叉树编码为二叉树

将 N 叉树编码为二叉树 作者:Grey 原文地址: 博客园:将 N 叉树编码为二叉树 CSDN:将 N 叉树编码为二叉树 题目描述 将一棵n叉树编码为一棵二叉树,并对二叉树进行解码,得到原始的n叉树。 n叉树是一棵有根树,其中每个节点的子树不超过n个。 类似地,二叉树是一棵有根树,其中每个节点的子树不超过2个。 编码/解码算法的工作方式不受限制。 您只需要确保一个n叉树可以被编码为一个二叉树,并...

前端三剑客快速入门(二)

前言 本文书接上回,继续css的知识,序号就重新开始了。上篇内容:前端三剑客快速入门(一) CSS 盒子模型 盒子模型属性: border外框 margin外边距 padding内边距 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <me...

十年技术进阶路,让我明白了三件要事(8000字长文)

前言   【本文于2022-5-10日首发于ITPUB微信公众号平台】   该篇文章是我第一次跟DTCC合作编写的,整篇文章大概8000字,可能花您15分钟阅读。我和DTCC的韩楠老师,共花7了天时间,每天把该文章打磨到晚上12点,在这非常感谢编辑老师的负责与付出。   这篇也是我分享里为数不多“进阶”与“成长经历”的文章之一。被别人送到嘴边的食物永远是最香的,但是咱们还是得学会主动去"如何找吃的...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。