❶ kettle从文本文件输入时怎么拆分字段
打开kettle,定义数据源
1
kettle中定义两个数据源,其中“DS_ERP”是来源数据库,“DS_ODS”是用于同步的数据库
END
新建转换,用于同步某一张表
1
新建一个转换(执行SQL脚本--->>表输入--->>表输出)
执行SQL脚本:删除DS_ODS库中已经存在的数据
表输入:查询DS_ERP库中的数据
表输出:将“表输入”中的结果输出到DS_ODS库中
2
执行SQL脚本:删除DS_ODS库中已经存在的数据
${qy_table_name}:这个是参数,指同步的表名
3
表输入:查询DS_ERP库中的数据缺卜袜
${qy_table_name}:这个是参数,指同步的表名
4
表输出:将“表输入”中的结果输出到DS_ODS库中
${qy_table_name}:这个是参数,指同步的表名
END
新建转换,用于获取需要同步的表弊虚名
1
新建一个转换(文本文件输入--->>复制结果到记录)
文本文件输入:通过读取指定txt文件,获取所有要同步的表。(这里也可以通过其他方式获取,例如通过sql查询数据库系统表)
2
指定txt文件路径
3
定义txt文件中的字段名,同上一步中定义的参数名
4
txt中定义需要同步的表,每行一张表名
END
新建任务,实现批量同步
新建任务,调用前面的转换
其中,同步表的转换需要设置循环执行,并将获取到的表名传递伏激到转换内部
❷ kettle中做查询时,遇到大数据时怎么处理
在kettle常常有处理从一个源数据中做转换.做转换的时候, 需要去查另一个数据库.
这种问题遇到数据小时候还好办. 但是数据魇 时候就麻烦来了.
下面针对三种情况做具体情况的选择办法
1. 当需要转换的数据特别大的时候, 例如: 10W条以上.或者100W条以上时.
上图中,hadoop数据导入氏碰,导入的数据如果够多,例如100W条以上,其中一个字段需要查询数据库中查询,而这个字段的类型并不多,例如只有10个类
型或者数据库中就只有这10个类型.那么,可以走线路2, 并且线路2中的 "使用缓存"
可以打勾,也可以不打.当然你这个源里的数据太多,打上当然最好了.因为省得再去你的数据库里再查.
但是当源里的数据类型还是只有10个类型,但是你的数据库里面存了有10000条记录时,怎么办?
有两种解决办法:
1).线路2:并且查询铅核猛节点中的 "使用缓存" 不能打勾.
2).线路1,并在"带条件的结果查询供流查询使用" 这个结点中,用一个SQL,过滤一下数据,然后尽可能地把那里包括的这些记录查出来.这样在流里的比对时.也很快很多.必竟是在内存里做运算了
2. 查另一个数据库的数据量大时,而你的源数据不大.
最好的选择是
线路1,并在"带条件的结果查询供流查询使用" 这个结点中,用一个SQL,过滤一下数据,然后尽可能地把那里包括的这些记录查出来.这样在流里的比对时.也很快很多.必竟是在内存里做运算了
3. 当两个数据源都非常大时(最不想遇到的)
这种情况是最不想遇到的办法
一种选择:
1).线路2中的 "使用槐桥缓存" 打勾.
❸ kettle怎样建立增量抽取数据
如果你用的是INNODB数据库,有渣陪一个最简单有如搭蠢效的调整,枝配就是将INI文件里面的下面参数调整:
原始:
innodb_flush_log_at_trx_commit=1
调整为:
innodb_flush_log_at_trx_commit=2
具体什么意思就不解释了,试了效果好再去找度娘
❹ kettle按一列分组并把另一列合并为一条记录怎么做
首先:使用Sort rows控件,根据胡液州需要分组的字段AA排序下;
其次:使用Group by控件,分组裤蔽字段为:AA,Aggredates部分Name为新字埋链段名,Subjest为BB,Type选择Concatenate strings separated by ,
❺ kettle之行转列,删除多余连接符
最近在看行转列的内容,这边记录一下。
数据集如下:
最终的效果如下:
2、在进行行转列之前需要先按分组字段进行排序,这个在关闭控件时软件也会提示
可以发现空值字段也被连接,最后的效果还不是很理迅悄想,接下去要把多余的逗号去掉
5、字符串替换,删除头部和启轿中间多余的逗号,这边用到了正则表达式
效果如下
步骤3:利用剪切字符串,删除末尾的逗号【剪切字符串这个控件这边有点奇怪,起始位置设为-1,结束位置要设的很小(绝对值不小于该字段值的长亩旁渣度最大值)才能取到除最后一个字符的数据,设0和-1,会得到最后一个字符。。。】
效果如下
最后效果如下
❻ kettle如何将多行数据合并为一列
kettle的转换中有控件“行转列”以及“列转行”
❼ 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;
将提取激蠢出的数据保存到文件中。
❽ 怎么使用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抽取了1200000条数据,现在要求分批上传到druid,一次5000条,怎么搞
可以采取临时文件的方式圆判陵
kettle在文本输出的时候可以设置5000行生成一个文件
然后再橘戚冲茄分文件导入你的druid