常用ETL工具对比

合集下载

超详细的六款主流ETL工具介绍及功能对比

超详细的六款主流ETL工具介绍及功能对比

超详细的六款主流ETL⼯具介绍及功能对⽐概述ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或⾏业应⽤来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握⼀种etl⼯具的使⽤,必不可少。

最近⽤kettle做数据处理⽐较多,所以也就介绍下这⽅⾯内容,这⾥先对⽐下⼏款主流的ETL⼯具。

1、DataPipelineData Pipeline是⼀家为企业⽤户提供数据基础架构服务的科技公司,DataPipeline数据质量平台整合了数据质量分析、质量校验、质量监控等多⽅⾯特性,以保证数据质量的完整性、⼀致性、准确性及唯⼀性,彻底解决数据孤岛和数据定义进化的问题。

2、KettleKettle是⼀款国外开源的ETL⼯具,纯java编写,可以在Windows、Linux、Unix上运⾏,数据抽取⾼效稳定。

Kettle 中⽂名称叫⽔壶,该项⽬的主程序员MATT 希望把各种数据放到⼀个壶⾥,然后以⼀种指定的格式流出。

Kettle家族⽬前包括4个产品:Spoon、Pan、CHEF、Kitchen。

SPOON 允许你通过图形界⾯来设计ETL转换过程(Transformation)。

PAN 允许你批量运⾏由Spoon设计的ETL转换 (例如使⽤⼀个时间调度器)。

Pan是⼀个后台执⾏的程序,没有图形界⾯。

CHEF 允许你创建任务(Job)。

任务通过允许每个转换,任务,脚本等等,更有利于⾃动化更新数据仓库的复杂⼯作。

任务通过允许每个转换,任务,脚本等等。

任务将会被检查,看看是否正确地运⾏了。

KITCHEN 允许你批量使⽤由Chef设计的任务 (例如使⽤⼀个时间调度器)。

KITCHEN也是⼀个后台运⾏的程序。

3、TalendTalend,是⼀家专业的开源集成软件公司,为企业提供开源的中间件解决⽅案,从⽽让企业能够在他们的应⽤,系统以及数据库中赢取更⼤的价值。

在传统软件公司提供封闭、私有的解决⽅案的领域Talend系列软件以开源的形式进⾏开发。

国际三大主流ETL工具分析

国际三大主流ETL工具分析

国际三大主流ETL工具分析ETL(Extract, Transform, Load)是指将数据从源系统中抽取出来,进行转化(加工、清洗、整合等),然后加载到目标系统中。

在ETL工具的选择上,有许多可供选择的工具。

本文将对国际三大主流ETL工具(Informatica PowerCenter、IBM InfoSphere DataStage和Microsoft SQL Server Integration Services)进行分析。

1. Informatica PowerCenterInformatica PowerCenter是一种广泛应用的ETL工具,它提供了强大的数据集成和数据转换功能。

它具有以下特点:- 强大的数据集成能力:Informatica PowerCenter支持从各种数据源中提取数据,包括关系数据库、文件、Web服务等。

它提供了丰富的连接器和转换函数,可以方便地构建复杂的数据集成过程。

- 易于使用的用户界面:Informatica PowerCenter具有直观的用户界面,使用户可以轻松地构建、调试和管理ETL工作流程。

- 可扩展性和可靠性:Informatica PowerCenter是一个可扩展的平台,可以处理大规模数据集成任务。

它具有高度可靠的作业调度和容错机制,保证数据的准确性和一致性。

- 强大的数据转换能力:Informatica PowerCenter提供了丰富的转换操作和函数,可以进行数据清洗、规范化、分割、合并等操作。

它还支持复杂的业务逻辑和数据处理规则。

2. IBM InfoSphere DataStageIBM InfoSphere DataStage是IBM公司开发的一种ETL工具,它具有以下特点:- 广泛的数据集成能力:InfoSphere DataStage支持从多种数据源中提取数据,包括关系数据库、文件、Web服务等。

它提供了丰富的数据连接器和数据传输功能,可以轻松地完成数据集成任务。

三大主流ETL工具选型

三大主流ETL工具选型

三大主流ETL工具选型ETL(extract, transform and load) 产品乍看起来似乎并不起眼,单就此项技术本身而言,几乎也没什么特别深奥之处,但是在实际项目中,却常常在这个环节耗费太多的人力,而在后续的维护工作中,更是往往让人伤透脑筋。

之所以出现这种状况,恰恰与项目初期没有正确估计ETL工作、没有认真考虑其工具支撑有很大关系。

做ETL产品的选型,仍然需要从以前说的四点(即成本、人员经验、案例和技术支持) 来考量。

在此,主要列举三种主流ETL产品:Ascential公司的Datastage、Informatica公司的Powercenter、NCR Teradata公司的ETL Automation。

其中,ETL Automation相对其他两种有些特别之处,放在后面评述。

旗鼓相当:Datastage与Powercenter就Datastage和Powercenter而言,这两者目前占据了国内市场绝大部分的份额,在成本上看水平相当,虽然市面上还有诸如Business Objects公司的Data Integrator、Cognos公司的DecisionStream,但尚属星星之火,未成燎原之势。

谈Datastage和Powercenter,如果有人说这个就是比那个好,那听者就要小心一点了。

在这种情况下有两种可能:他或者是其中一个厂商的员工,或者就是在某个产品上有很多经验而在另一产品上经验缺乏的开发者。

为什么得出这一结论?一个很简单的事实是,从网络上大家对它们的讨论和争执来看,基本上是各有千秋,都有着相当数量的成功案例和实施高手。

确实,工具是死的,人才是活的。

在两大ETL工具技术的比对上,可以从对ETL流程的支持、对元数据的支持、对数据质量的支持、维护的方便性、定制开发功能的支持等方面考虑。

一个项目中,从数据源到最终目标表,多则上百个ETL过程,少则也有十几个。

这些过程之间的依赖关系、出错控制以及恢复的流程处理,都是工具需要重点考虑。

几款开源的ETL工具介绍

几款开源的ETL工具介绍

⼏款开源的ETL⼯具介绍ETL,是英⽂ Extract-Transform-Load 的缩写,⽤来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)⾄⽬的端的过程。

ETL 是构建数据仓库的重要⼀环,⽤户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。

我们在下⽅列出了 7 款开源的 ETL ⼯具,并讨论了从 ETL 转向“⽆ ETL”的过程,因为 ELT 正迅速成为现代数据和云环境的终极过程。

注:原⽂包含 11 项 ETL ⼯具,本⽂提取了其中开源的 7 项,另增加了⼀款使⽤普遍的 Kettle,如需对另外 4 项进⾏了解,可点击⽂末链接进⾏查看。

优秀的 ETL ⼯具1、Apache CamelApache Camel 是⼀个⾮常强⼤的基于规则的路由以及媒介引擎,该引擎提供了⼀个基于 POJO 的企业应⽤模式(Enterprise Integration Patterns)的实现,你可以采⽤其异常强⼤且⼗分易⽤的 API (可以说是⼀种 Java 的领域定义语⾔ Domain Specific Language)来配置其路由或者中介的规则。

通过这种领域定义语⾔,你可以在你的 IDE 中⽤简单的 Java Code 就可以写出⼀个类型安全并具有⼀定智能的规则描述⽂件。

2、Apache KafkaApache Kafka 是⼀个开源的消息系统,⽤ Scala 和 Java 写成。

该项⽬为处理实时数据提供了⼀个统⼀、⾼通量、低延时的平台。

有如下特性:通过 O(1) 的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。

⾼吞吐量:即使是⾮常普通的硬件 kafka 也可以⽀持每秒数⼗万的消息。

⽀持通过 kafka 服务器和消费机集群来分区消息。

⽀持 Hadoop 并⾏数据加载。

ETL工具——DataX,FlinkX

ETL工具——DataX,FlinkX

ETL⼯具——DataX,FlinkX⼀、DataXDataX 是阿⾥巴巴集团内被⼴泛使⽤的离线数据同步⼯具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间⾼效的数据同步功能。

DataX本⾝作为数据同步框架,将不同数据源的同步抽象为从源头数据源读取数据的Reader插件,以及向⽬标端写⼊数据的Writer插件,理论上DataX框架可以⽀持任意数据源类型的数据同步⼯作。

同时DataX插件体系作为⼀套⽣态系统, 每接⼊⼀套新数据源该新加⼊的数据源即可实现和现有的数据源互通。

1、DataX的安装DataX不需要依赖其他服务,直接上传、解压、安装、配置环境变量即可也可以直接在windows上解压上传解压到soft⽬录下配置环境变量2、DataX使⽤1、git仓库导⼊GitHub仓库,没有外⽹建议使⽤这种⽅式查看模板有外⽹直接访问GitHub仓库2、streamTostream到datax/job⽬录下编写json⽂件然后执⾏{"job": {"content": [{"reader": {"name": "streamreader","parameter": {"sliceRecordCount": 10,"column": [{"type": "long","value": "10"},{"type": "string","value": "hello,你好,世界-DataX"}]}},"writer": {"name": "streamwriter","parameter": {"encoding": "UTF-8","print": true}}}],"setting": {"speed": {"channel": 5}}}}执⾏同步任务datax.py stream2stream.json3、mysqltomysql需要新建student2数据库,并创建student表json⽂件{"job": {"content": [{"reader": {"name": "mysqlreader","parameter": {"username": "root","password": "123456","column": ["id","name","age","gender","clazz","last_mod"],"splitPk": "age","connection": [{"table": ["student"],"jdbcUrl": ["jdbc:mysql://master:3306/student"]}]}},"writer": {"name": "mysqlwriter","parameter": {"writeMode": "insert","username": "root","password": "123456","column": ["id","name","age","gender","clazz","last_mod"],"preSql": ["truncate student2"],"connection": [{"jdbcUrl": "jdbc:mysql://master:3306/student2?useUnicode=true&characterEncoding=utf8", "table": ["student2"]}]}}}],"setting": {"speed": {"channel": 6}}}}新建表use student2;CREATE TABLE `student2` (`id` int(10) NOT NULL AUTO_INCREMENT,`name` char(5) DEFAULT NULL,`age` int(11) DEFAULT NULL,`gender` char(2) DEFAULT NULL,`clazz` char(4) DEFAULT NULL,`last_mod` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=1500101002 DEFAULT CHARSET=utf8执⾏json⽂件datax.py mysqltomysql.json4、mysqltohive写hive跟hdfs时⼀样的编写配置json⽂件{"job": {"content": [{"reader": {"name": "mysqlreader","parameter": {"username": "root","password": "123456","column": ["id","name","age","gender","clazz","last_mod"],"splitPk": "age","connection": [{"table": ["student"],"jdbcUrl": ["jdbc:mysql://master:3306/student"]}]}},"writer": {"name": "hdfswriter","parameter": {"defaultFS": "hdfs://master:9000","fileType": "text","path": "/user/hive/warehouse/datax.db/students","fileName": "student","column": [{"name": "id","type": "bigint"},{"name": "name","type": "string"},{"name": "age","type": "INT"},{"name": "gender","type": "string"},{"name": "clazz","type": "string"},{"name": "last_mod","type": "string"}],"writeMode": "append","fieldDelimiter": ","}}}],"speed": {"channel": 6}}}}hive建库建表create table students(id bigint,name string,age int,gender string,clazz string,last_mod string)ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';执⾏datax.py mysqltohdfs.json5、mysqltohbasemysql中的score表需将cource_id改为course_id,并将student_id、course_id设为主键,并将所有字段的类型改为int hbase需先创建score表:create 'score','cf1'{"job": {"content": [{"reader": {"name": "mysqlreader","parameter": {"username": "root","password": "123456","column": ["student_id","course_id","score"],"splitPk": "course_id","connection": [{"table": ["score"],"jdbcUrl": ["jdbc:mysql://master:3306/student"]}]}},"writer": {"name": "hbase11xwriter","parameter": {"hbaseConfig": {"hbase.zookeeper.quorum": "master:2181"},"table": "score","mode": "normal","rowkeyColumn": [{"index":0,"type":"string"},{"index":-1,"type":"string","value":"_"},{"index":1,"type":"string"}],"column": ["index":2,"name": "cf1:score","type": "int"}],"encoding": "utf-8"}}}],"setting": {"speed": {"channel": 6}}}}datax.py mysqltohbase.json6、hdfstohbase将students.txt数据上传⾄HDFS的/data/student1/⽬录在HBase中创建datax表:create 'datax','cf1'{"job": {"setting": {"speed": {"channel": 3},"errorLimit": {"record": 0,"percentage": 0.02}},"content": [{"reader": {"name": "hdfsreader","parameter": {"path": "/data/student1/","defaultFS": "hdfs://master:9000","column": [{"index": 0,"type": "string"},{"index": 1,"type": "string"},{"index": 2,"type": "string"},{"index": 3,"type": "string"},{"index": 4,"type": "string"},{"index": 5,"type": "string"}],"fileType": "text","encoding": "UTF-8","fieldDelimiter": ","}},"writer": {"name": "hbase11xwriter","parameter": {"hbaseConfig": {"hbase.zookeeper.quorum": "master,node1,node2" },"table": "datax","mode": "normal","rowkeyColumn": [{"index": 0,"type": "string"},{"index": -1,"type": "string","value": "_"},{"index": 1,"type": "string"}],"column": [{"index": 2,"name": "cf1:age","type": "string"},{"index": 3,"name": "cf1:gender","type": "string"},{"index": 4,"name": "cf1:clazz","type": "string"},{"index": 5,"name": "cf1:ts","type": "string"}],"versionColumn": {"index": 5},"encoding": "utf-8"}}}]}}7、mysqltophoenix在Phoenix中创建STUDENT表CREATE TABLE IF NOT EXISTS STUDENT ( ID VARCHAR NOT NULL PRIMARY KEY,NAME VARCHAR,AGE BIGINT,GENDER VARCHAR ,CLAZZ VARCHAR);编写配置⽂件MySQLToPhoenix.json {"job": {"setting": {"speed": {"channel": 3},"errorLimit": {"record": 0,"percentage": 0.02}},"content": [{"reader": {"name": "mysqlreader","parameter": {"username": "root","password": "123456","column": ["id","name","age","clazz"],"splitPk": "id","connection": [{"table": ["student"],"jdbcUrl": ["jdbc:mysql://master:3306/student?useSSL=false"]}]}},"writer": {"name": "hbase11xsqlwriter","parameter": {"batchSize": "256","column": ["ID","NAME","AGE","GENDER","CLAZZ"],"hbaseConfig": {"hbase.zookeeper.quorum": "master,node1,node2","zookeeper.znode.parent": "/hbase"},"nullMode": "skip","table": "STUDENT"}}}]}}执⾏datax.py xxxxx3、datax⾃定义参数Linux给⽂件替换字符串/替换内容/替换某⾏ (shell,sed)在⽂件⾥⾯替换命令修改sed 's/$$$/007/g' test.jsonjson⽂件(加⼊where筛选并加上参数){"job": {"content": [{"reader": {"name": "mysqlreader","parameter": {"username": "root","password": "123456","column": ["id","name","age","gender","clazz","last_mod"],"splitPk": "age","where":"last_mod>'$param$'""connection": [{"table": ["student"],"jdbc:mysql://master:3306/student"]}]}},"writer": {"name": "streamwriter","parameter": {"encoding": "UTF-8","print": true}}}],"setting": {"speed": {"channel": 5}}}}写定义参数脚本#!/bin/bashsed 's/\$param\$/20211207/g' test.json执⾏脚本获取每天时间,实现增量#!/bin/bashparam1=$(date "+%Y-%m-%d")sed -i "s/'\$param\$'/$param1/g" /usr/local/soft/datax/job/test.jsondatax.py /usr/local/soft/datax/job/test.jsonsed -i "s/$param1/'\$param\$'/g" /usr/local/soft/datax/job/test.json⼆、FlinkX1、安装1、上传解压直接Windows桌⾯拖进Linux系统上传,如果不⾏可以下载依赖包yum -y install lrzsz安装unzip:yum install unzip,并解压压缩包unzip flinkx-1.10.zip -d /usr/local/soft/2、配置环境变量,修改配置⽂件web服务端⼝,不指定的话会随机⽣成⼀个vim flinkconf/flink-conf.yamlrest.bind-port: 8888给bin/flinkx这个⽂件加上执⾏权限chmod a+x flinkx配置环境变量2、flinkx简单使⽤访问GitHub搜素flinkx有快速⼊门1、MySQLToHDFSjson⽂件{"job": {"content": [{"reader": {"parameter": {"username": "root","password": "123456","connection": [{"jdbcUrl": ["jdbc:mysql://master:3306/student?characterEncoding=utf8" ],"table": ["student"]}],"column": ["*"],"customSql": "","where": "clazz = '理科⼆班'","splitPk": "","queryTimeOut": 1000,"requestAccumulatorInterval": 2},"name": "mysqlreader"},"writer": {"name": "hdfswriter","parameter": {"path": "hdfs://master:9000/data/flinkx/student","defaultFS": "hdfs://master:9000","column": [{"name": "col1","index": 0,"type": "string"},{"name": "col2","index": 1,"type": "string"},{"name": "col3","index": 2,"type": "string"},{"name": "col4","index": 3,"type": "string"},{"name": "col5","index": 4,"type": "string"},{"name": "col6","index": 5,"type": "string"}],"fieldDelimiter": ",","fileType": "text","writeMode": "overwrite"}}}],"setting": {"restore": {"isRestore": false,"isStream": false},"errorLimit": {},"speed": {"channel": 1}}}}启动任务flinkx -mode local -job /usr/local/soft/flinkx-1.10/job/mysqlToHDFS.json -pluginRoot /usr/local/soft/flinkx-1.10/syncplugins/ -flinkconf /usr/local/soft/flinkx-1.10/flinkconf/监听⽇志flinkx 任务启动后,会在执⾏命令的⽬录下⽣成⼀个nohup.out⽂件tail -f nohup.out//实时查看tail -n 200 nohup.out //看后200⾏通过客户端查看,任务启动客户端可查看http://master:88882、MySQLToHivejson⽂件{"job": {"content": [{"reader": {"parameter": {"username": "root","password": "123456","connection": [{"jdbcUrl": ["jdbc:mysql://master:3306/student?characterEncoding=utf8"],"table": ["student"]}],"column": ["*"],"customSql": "","where": "clazz = '⽂科⼆班'","splitPk": "id","queryTimeOut": 1000,"requestAccumulatorInterval": 2},"name": "mysqlreader"},"writer": {"name": "hivewriter","parameter": {"jdbcUrl": "jdbc:hive2://master:10000/testflinkx","username": "","password": "","fileType": "text","fieldDelimiter": ",","writeMode": "overwrite","compress": "","charsetName": "UTF-8","maxFileSize": 1073741824,"tablesColumn": "{\"student\":[{\"key\":\"id\",\"type\":\"string\"},{\"key\":\"name\",\"type\":\"string\"},{\"key\":\"age\",\"type\":\"string\"}]}","defaultFS": "hdfs://master:9000"}}}],"setting": {"restore": {"isRestore": false,"isStream": false},"errorLimit": {},"speed": {"channel": 3}}}}在hive中创建testflinkx数据库,并创建student分区表create database testflinkx;use testflinkx;CREATE TABLE `student`(`id` string,`name` string,`age` string)PARTITIONED BY (`pt` string)ROW FORMAT DELIMITEDFIELDS TERMINATED BY ','启动hiveserver2# 第⼀种⽅式:hiveserver2# 第⼆种⽅式:hive --service hiveserver2启动任务flinkx -mode local -job /usr/local/soft/flinkx-1.10/jsonConf/mysqlToHive.json -pluginRoot /usr/local/soft/flinkx-1.10/syncplugins/ -flinkconf /usr/local/soft/flinkx-1.10/flinkconf/ 3、MySQLToHBasejson⽂件{"job": {"content": [{"reader": {"parameter": {"username": "root","password": "123456","connection": [{"jdbcUrl": ["jdbc:mysql://master:3306/student?characterEncoding=utf8"],"table": ["score"]}],"column": ["*"],"customSql": "","splitPk": "student_id","queryTimeOut": 1000,"requestAccumulatorInterval": 2},"name": "mysqlreader"},"writer": {"name": "hbasewriter","parameter": {"hbaseConfig": {"hbase.zookeeper.property.clientPort": "2181","hbase.rootdir": "hdfs://master:9000/hbase","hbase.cluster.distributed": "true","hbase.zookeeper.quorum": "master,node1,node2","zookeeper.znode.parent": "/hbase"},"table": "testFlinkx","rowkeyColumn": "$(cf1:student_id)_$(cf1:course_id)","column": [{"name": "cf1:student_id","type": "string"},{"name": "cf1:course_id","type": "string"},{"name": "cf1:score","type": "string"}]}}}],"setting": {"restore": {"isRestore": false,"isStream": false},"errorLimit": {},"speed": {"channel": 3}}}}启动hbase 并创建testflinkx表create 'testFlinkx','cf1'启动任务flinkx -mode local -job /usr/local/soft/flinkx-1.10/jsonConf/mysqlToHBase.json -pluginRoot /usr/local/soft/flinkx-1.10/syncplugins/ -flinkconf /usr/local/soft/flinkx-1.10/flinkconf/。

《大数据导论》课程标准(1)

《大数据导论》课程标准(1)

课程代码:《大数据导论》课程标准Curriculum Standards(2017 年修订)XXX 编印课程名称:大数据导论课程代码:适用专业:学制学历及教育类别: 3 年制高职教育课程学分: 4 学分计划用教学时间:64 学时修订人:审定人:修订时间:1.课程设置概述1.1 课程在相关专业中的性质与定位《大数据导论》是一门综合性和实践性很强的课程,根据培养应用型人才的需要,本课程的目的与任务是使学生通过本课程的学习,了解大数据基本涵盖内容,掌握大数据分析的传统方法和最新方法,为更深入地学习和今后从事大数据相关工作打下良好的基础。

1.2 本课程的基本教学理念本课程的教学理念是: 应用为目标、实践为主线、能力为中心。

(一)突出学生主体,强调能力培养本课程坚持以能力为中心、以学生为主体的原则来设计课堂教学,在学生就业岗位需求分析的基础上来确立能力目标,将能力培养贯穿于课程教学之中,实现由传统的以教师为主体的知识传授型教学模式向以学生为主体的能力培养型教学模式的转变,实现线上线下教学相结合的模式。

(二)基于工作过程,真实案例教学本课程在教学过程中,以典型工作任务为载体,将对各种资源的管理分解为多个独立又具有一定联系的任务,让学生将知识的学习,技能的加强和经验的积累在一系列任务中获取并高度融合。

(三)整合课程资源,理论实践一体化本课程在教学过程中,根据高职培养应用型人才的特点,以典型工作任务为主线、以各种资源管理为核心,以培养能力和提高兴趣为目标,变应试为应用,重视在新形势下的新方法、新规则和新思想的传授。

着重培养学生能灵活应用这些思想和方法的能力。

课程教学中要遵循理论来自于实践的原则,融“教、学、练”于一体,体现“在做中学,在学中做,学以致用”,以增强知识点的实践性,激发学生的学习兴趣。

在实践教学环节中则融入相关理论知识,突出理论来自于实践和指导实践的作用,使学生的知识应用根据学习的内容提升一个新的高度。

ETL及kettle介绍

ETL及kettle介绍

目录1. ETL知识 (3)1.1. ETL定义 (3)1.1.1. 定义 (3)1.1.2. 前提 (3)1.1.3. 原则 (3)1.2. 模式及比较 (4)1.3. ETL过程 (7)1.3.1. 总流程 (7)1.3.2. 数据抽取流程 (8)1.3.3. 数据清洗流程 (8)1.3.4. 数据转换流程 (10)1.3.5. 数据加载流程 (11)1.4. 问题分析 (12)1.4.1. 字符集问题 (12)1.4.2. 缓慢变化维处理 (14)1.4.3. 增量、实时同步的处理 (14)1.4.4. 断点续传 (15)1.5. ETL工具 (15)2. Kettle简介及使用 (16)2.1. 什么Kettle? (16)2.2. 下载及安装Kettle (17)2.3. Kettle简单例子 (19)2.3.1. 启动Kettle (19)2.3.2. 创建transformation过程 (20)2.3.3. 创建job过程 (41)2.3.4. 命令行运行ktr和kjb (45)1.ETL知识1.1.ETL定义1.1.1.定义●定义:数据的抽取(Extract)、转换(Transform)、装载(Load)的过程。

●目标:数据优化。

以最小代价(包括对日常操作的影响和对技能的要求) 将针对日常业务操作的数据转化为针对数据仓库而存储的决策支持型数据。

1.1.2.前提●确定ETL范围通过对目标表信息的收集,确定ETL的范围●选择ETL工具考虑资金运行的平台、对源和目标的支持程度、可编程的灵活性、对源数据变化的监测、数据处理时间的控制、管理和调度功能、对异常情况的处理●确定解决方案抽取分析、变化数据的捕获、目标表的刷新策略、数据的转换及数据验证1.1.3.原则●应尽量利用数据中转区对运营数据进行预处理。

保证数据的安全性、集成与加载的高效性。

●ETL的过程应是主动“拉取”,而不是从内部“推送”,其可控性将大为增强。

ETL工具对比参考文档

ETL工具对比参考文档

E T L工具对比参考文档(总13页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除参考1:参考2:数据整合部分:PowerCenter,是业界公认领导者数据质量管理:Data Quality,成熟稳定技术,在中国有大规模应用的成功案例。

数据整合部分:Datastage,属于业界一类产品数据质量管理:QualityStage,收购的技术,不是主要其主要产实时数据捕获:PowerExchange,业界领先实时采集技术,支持广泛数据源的CDC和Realtime,与PowerCenter无缝集成。

元数据管理:Metadata Manager,是业界领先的企业级元数据管理平台,可做到字段级的元数据各项分析,有广泛的元数据采集接口,图形化无需编程,并可自动维护变更。

品组成实时数据捕获:MQ和DataMirror 的技术,技术复杂,与DataStage 是不同风格产品,产品的耦合度极差。

元数据管理:MetaStage,几乎免费的产品,应用性极差,并不能管理企业级的元数据。

而新推出的产品与旧有产品线耦合度差,并未经过市场的考验。

Informatica 是全图形化的开发模式,不需要编码,工具易使用,界面友好、直观。

专业的三天培训,可使开发人员快速入门,进行开发设计。

开发人员只要懂得数据库知识,即可。

Informatica 产品是以元数据为核心的,其开发过程中,所有的元数据,包括规则和过程,均是可复用,共享的。

经过简单配置即可支持大数据量的处理。

Informatica是完全基于引擎级别的,所有功能模块化,扩展性强,维护成本低。

虽然也是图形化的界面,但复杂的转换过程,里面嵌入了很多类Basic脚本的成份。

要求开发人员,有编程语言基础。

在处理大数据量,必须使用Datastage企业版。

但如果客户原先使用的Datastage 标准版,其作业的版本移植问题很大。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

常用ETL工具对比
目前市场上主流的ETL工具有,IBM公司的DataStage、Informatica公司的Powercenter、免费ETL工具Kettle等等。

1、Datastage
DataStage 是一套专门对多种操作数据源的数据抽取、转换和维护过程进行简化和自动化,并将其输入数据集市或数据仓库目标数据库的集成工具。

他的优点如下:具有多种数据源的连接能力,包括目前市场上的大部分主流数据库,并且具有优秀的文本文件和XML文件读取和处理能力。

2、Informatica
Informatica PowerCenter用于访问和集成几乎任何业务系统、任何格式的数据,它可以按任意速度在企业内交付数据,具有高性能、高可扩展性、高可用性的特点。

Informatica PowerCenter包括4个不同版本,即:标准版,实时版,高级版,云计算版。

同时,它还提供了多个可选的组件,以扩展Informatica PowerCenter的核心数据集成功能,这些组件包括:数据清洗和匹配、数据屏蔽、数据验证、Teradata双负载、企业网格、元数据交换、下推优化(Pushdown Optimization)、团队开发和非结构化数据等。

3、Kettle
Kettle是一款国外开源的etl工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定,提供丰富的sdk,并开放源代码,便于二次开发包装。

相关文档
最新文档