Kettle是什么
Kettle是一款国外开源的ETL工具,纯Java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。
Kettle 中文名称叫水壶,该项目的主程序员MATT希望把各种数据放到一个壶里,然后以一种指定的格式流出。
Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。
Kettle中有两种脚本文件,Transformation和Job,transformation完成针对数据的基础转换,Job则完成整个工作流的控制。
Kettle,现在已经更名为PDI(Pentaho Data Integration-Pentaho,即数据集成)。
Kettle的特点
- 无代码拖拽式构建数据管道
Kettle采用拖拽组件、连线、配置的方式来构建数据管道,透过超过200个不同的组件,用户可以在不编写一句代码就能轻松完成对数据源读取,对数据进行关联、过滤、格式转换、计算、统计、建模、挖掘、输出到不同的数据目标。极大程度地降低开发技术门槛和有效减低开发和维护成本。
- 多数据源对接
- 关系型数据库支持类型包括:AS/400,DB2,Google BigQuery,Greenplum,Hive,Impala,MS SQL Server,MySQL,Oracle,PostgreSQL,SAP,Snowflake,SparkSQL,Sybase,Teradata, Vertica等。
- 大数据源支持包括:Avro,Cassanddra,HBase,HDFS,MongoDB,ORC, Parquet, Splunk等。
- 文件格式支持包括:CSV, TXT, JSON, Excel, XML等。
- 流数据支持包括:AMPQ,JMS,Kafka,Kinesis,MQTT。
- 其他数据源对接包括:HL7,S3,SAS,Salesforce,HCP,REST等。
- 数据管道可视化
Kettle支持用户在数据管道任何一个步骤对当前数据进行查看(Examine),并可以在线以表格和图表(例如:柱状图、饼图等)输出步骤的数据,甚至可以支持不落地直接把任何一个步骤的数据以JDBC的方式提供给第三方应用访问。
- 模板化开发数据管道
Kettle提供了一个叫MDI的功能,MDI全称是Metadata Injection元数据注入,用户可以透过MDI把数据转换模板化,然后把像数据表名、文件路径、分隔符、字符集等等这些变量放在一个表或者文件里,然后利用MDI把这些变量注入数据转换模板,Kettle就能够自动生成所需要的数据转换了。这个功能为很多客户节省了大量的开发时间。
- 可视化计划任务
- Kettle提供可视化方式配置任务计划(Schedule),用户可透过Spoon或网页端的Pentaho User Console来配置和维护任务具体的执行时间、间隔、所使用的参数值、以及具体运行的服务器节点。
- 用户亦可以透过Spoon或Pentaho User Console查看任务计划列表;当然,用户也可以透过Spoon或Pentaho User Console对任务执行情况进行实时监控。
- 深度Hadoop支持
- Kettle针对Hadoop主流厂家预置专用的对接插件,支持的Hadoop版本包括Cloudera,Hortonworks,AWS EMR,Google Dataproc等,用户除了可以透过插件轻松对接Hadoop集群的数据源(HDFS,Hive,HBase,Impala等)以外,Pentaho还提供与Kerberos、Sentry和Ranger等Hadoop企业级安全机制对接,以满足企业安全要求。
- 另外,Pentaho Data Integration的Pentaho MapReduce提供用户以无编码方式定义MapReduce任务;同时,用户亦可以在作业中执行Sqoop、Pig、MapReduce、Oozie和Spark任务。
- 数据任务下压Spark集群
Kettle提供了把数据转换任务下压到Spark来执行的AEL(Adaptive Execution Layer)功能,搭建好的数据管道会被AEL转成Spark任务来执行,这样数据就不需要离开集群,而是在集群里透过Spark强大的分布式处理能力来进行处理。
- 数据挖掘与机器学习支持
- 最新版的Pentaho9.1预置了超过20种数据挖掘算法类的转换步骤,用户可以轻松把把机器学习集成到数据管道里,用来做数据模型训练和进行预测分析。
- 预置算法包括:决策树、深度学习、线性回归、逻辑回归、Naive贝尔斯、随机森林等等,用户也可以利用Pentaho Data Integration作数据预备,然后把数据以dataframe的方式输入到Python或R中进行模型训练或预测。
Kettle核心组件
Spoon是构建ETL Jobs和Transformations的工具。Spoon以拖拽的方式图形化设计,能够通过spoon调用专用的数据集成引擎或者集群。
Pan是一个后台执行的程序,没有图形界面,类似于时间调度器。
任务通过允许每个转换,任务,脚本等等,更有利于自动化更新数据仓库的复杂工作。
批量使用由Chef设计的任务。