❶ 如何使用kettle进行数据导入.csv
在kettle中新建一个转换,再保存,再点击新建一个DB连接
2.Csv文件内容
3.按住shift连接两个图标,只能连接出错的红线。
4.点击连线上的红叉(不是太容易点,多试试),出现下面的窗口,将启用错误处理后的框去掉,点击ok
5. 再编辑表输出,浏览目标表并选择。勾选指定数据库字段,可以在右边的列映射中配置,或自己输入。表字段就是输出表的对应字段,同一行对应的流字段是输入的字段。
6.执行转换,转换完成
❷ kettle提取postgresql数据
kettle提取postgresql数据步骤如下
1 遍历区域和像素
其中xingzheng是行政区域数据表,thematic是专题像素分类表
2 影像分割
通过查询某个区域和影像的交,达到影像分割的目的,
查询区域gid=24,波段为1,像素值为4的像素个数的sql语句为:
其中函数ST_Intersects查询两个几何的交集,示例如下
3 栅格统计与数据提取
通过提取函数ST_ValueCount,查询分割后的栅格、指定波段和像素的像素总个数,并乘以单个像元值大小,实现数据面积提取。
其中28.15132773 * 28.15132773为单个像元值面积大小,具体使用albers投影(双标准纬线投影)计算得出,0.000001单位换算成平方公里。
区域gid和像素类型作为输入,实现影像分割和栅格面积统计,完整的sql如下:
4 kettle数据提取转换
kettle数据提取转换过程如下:
kettle遍历区域和像素,如kettle数据转换图所示“表输入2”,sql见步骤1;
kettle影像分割和栅格统计,如kettle数据转换图所示“表输入”,sql见步骤3;
将提取出的数据保存到文件中。
❸ 开源ETL工具比较,Kettle和Talend,都有什么优势和劣势
Pentaho Data Integration (Kettle)是Pentaho生态系统中默认的ETL工具。通过非常直观的图形化编辑器(Spoon),您可以定义以XML格式储存的流程。在Kettle运行过程中,这些流程会以不同的方法编译。用到的工具包括命令行工具(Pan),小型服务器(Carte),数据库存储库(repository)(Kitchen)或者直接使用IDE(Spoon)。
Talend Open Studio是 Talend 开发的ETL工具——Talend 是一家主营数据集成和数据管理解决方案的企业。Talend 采用用户友好型,综合性很强的IDE(类似于Pentaho Kettle 的 Spoon)来设计不同的流程。这些流程可以在IDE内部测试并编译成Java 代码。您可以随时查看并编辑生成的Java代码,同时实现强大的控制力和灵活性。
两者都非常优秀,都属于用户友好型的交叉平台(基于Java的)工具。它们的主要差异在于Kettle 将 ELT 流程编译为 XML 格式,然而Talend Open Studio 则生成 Java 代码。
易用性:
Talend:有 GUI 图形界面但是以 Eclipse 的插件方式提供。
Kettle:有非常容易使用的 GUI,出现问题可以到社区咨询。
技术支持:
Talend:主要在美国
Kettle:在美国,欧洲(比利时,德国,法国,英国),亚洲(中国,日本,韩国)都可以找到相关技术支持人员。
部署:
Talend:创建 java 或perl 文件,并通过操作系统调度工具来运行
Kettle:可以使用 job 作业方式或操作系统调度,来执行一个转换文件或作业文件,也可以通过集群的方式在多台机器上部署。
速度:
Talend:需要手工调整,对特定数据源有优化知识。
Kettle:比 Talend 快,不过也需要手工调整,对 Oracle 和 PostGre 等数据源做了优化,同时也取决于转换任务的设计。
数据质量:
Talend:在 GUI 里有数据质量特性,可以手工写 SQL 语句。
Kettle:在 GUI 里有数据质量特性,可以手工写 SQL 语句、java脚本、正则表达式来完成数据清洗。
监控:
Talend:有监控和日志工具
Kettle:有监控和日志工具
连接性:
Talend:各种常用数据库,文件,web service。
Kettle:非常广泛的数据库,文件,另外可以通过插件扩展
❹ 为什么kettle可以接入多种数据源
kettle可以接入多种数据源原因:由于kettle是纯java编辑,所以kettle连接mysql库的时候需要mysql的java连接包,网络下载一个mysql的java连接驱动。
kettle使用文件资源库不需要用户名和密码,如果没有资源库可以点击右上角的"+"新建资源库。为建立数据库的资源库,本例选择使用文件资源库,选择确定后会要求选择文件资源库的路径,并给文件资源库设置一个ID和名称。
kettle无代码拖拽式构建数据管道:
kettle可Pentaho采用拖拽组件、连线、配置的方式来构建数据管道,透过超过200个不同的组件,用户可以在不编写一句代码就能轻松完成对数据源读取。
对数据进行关联、过滤、格式转换、计算、统计、建模、挖掘、输出到不同的数据目标。极大程度地降低开发技术门槛和有效减低开发和维护成本。
❺ kettle抽取数据时提示转换被检测到,转换正在杀死其他步骤是什么错误
”转换被检测到,转换正在杀死其他步骤“ 这并不是一个错误,这只是一个提示信息。
意思是 你这个转换有几个并行执行的步骤 ,其中有个步骤报错了,结果整个转换失败 进而杀死其他正常执行的步骤。
你需要仔细找日志 找到发生错误的那个步骤及其 错误日志信息
如果你正在学习kettle 可以参考我写的:http://blog.csdn.net/xiaohai798/article/details/45367617
开头为kettle 入门 的博文
❻ kettle怎么实现重复抽取更新数据
插入/更新
1.你是否遇到了需要将mysql数据库中的所有表与数据迁移到Oracle。
2.你是否还在使用kettle重复的画着:表输入-表输出、创建表,而烦恼。下面为你实现了一套通用的数据库迁移流程。技术引导:实现之初,在kettle提供的例子中找到了一个类似的(samplesjobsprocessalltables)。通过相关改造,终于达到目标。实现过程解剖:整套流程分为:2个job,4个trans。使用到的Trans插件:表输入、字段选择、复制记录到结果、从结果获取记录、设置变量、自定义java脚本、表输出。1.大job。2.要迁移的源库表名称获取,并设置到结果集,为下面的job使用。
3.配置子job为前面的每一条记录(即每个表)执行一次该子job4.下面是子job。5.获取记录中的表名称,并设置为到变量。6.读取当前表的结果信息,并在目标库中创建表(这个是难点)。因为只需要获取抓取要抽取表的结构信息,故在sql后面加上where1=2。下面代码是创建目标库表。Java代码publicbooleanprocessRow(StepMetaInterfacesmi,StepDataInterfacesdi)throwsKettleException{//First,getarowfromthedefaultinputhop//Object[]r=getRow();org.pentaho.di.core.database.DatabaseMetadbmeta=null;java.util.Listlist=getTrans().getRepository().readDatabases();//3.x中获取资源库的所有数据库连接信息用getDatabases();if(list!=null&&!list.isEmpty()){for(inti=0;i
❼ kettle 处理来自两个数据流的数据
使用Merge Join,按照你说的“同时在两个filed里面的数据被筛选出来”,应该使用内连接【INNER】方式,然后再在后续步骤中将自己需要的字段输出。
❽ 怎么使用kettle进行增量数据的抽取
使用工具:
kettle
首先需要考虑的问题是不可能是全量进行数据的拷贝,数据量如此庞大!
那么就得考虑增量,何为增量去网络。。哈哈哈
至于如何增量抽取数据,有很多种办法,我这里示范的是通过时间去增量抽取(因为刚好别人的库中每条记录的时间记录的都相当详细,所以我认为这个比较好)。
首先创建好实例库:
SQL> desc timejob; Name Type Nullable Default Comments --------- ------------ -------- ------- -------- UUID VARCHAR2(36) Y BEGINTIME DATE Y
1
2
3
4
5
SQL> desc timejob_bak; Name Type Nullable Default Comments --------- ------------ -------- ------- -------- UUID VARCHAR2(36) Y BEGINTIME DATE Y
1
2
3
4
5
kettle中有自动生成UUID的功能,所以直接拿过来耍,为了简洁方便,字段使用比较少。
首先利用kettle自动生成测试数据:
主要生成UUID和当前系统时间到timejob表中(每隔2s执行一次),我们后续的操作都是对这张表中的数据进行一个备份。
下面第二步就是抽取该表中的数据到一个备份表中,timejob_bak。
这里由于是我第一次操作,比较简单,就直接上图了。。
获得上次操作时间和系统时间存到变量中:
这里的开始时间是通过表数据选项获得上一次操作的最终结束时间,以作为我此次增量抽取的开始时间。第二个变量是获得系统的当前时间。
根据时间抽取timejob表中的数据:
获取变量的写法:
此处获取的变量就是上一步存入的变量,下面的抽取增量数据就是一个sql,从timejob表中抽取数据,存数据就是一个表输出。
抽取数据sq
❾ 关于KETTLE抽取数据的问题,具体见补充描述
你可以直接用表输入控件,在里面把a,b,c三张表的关联关系写好,select那3个字段,这样是最简单的,否则就是通过控件实现关联关系
❿ kettle如何解析不规则的数据从而获取里面的数据
如果你用的是INNODB数据库,有一个最简单有效的调整,就是将INI文件里面的下面参数调整:
原始:
innodb_flush_log_at_trx_commit=1
调整为:
innodb_flush_log_at_trx_commit=2
具体什么意思就不解释了,试了效果好再去找度娘