**基本思路:
网上查了半天没有一个能实现的
根据部分网友文章得到的思路
先构造一个分页列表页,在按行执行这个分页计算数据
全图预览**
kettle中流里面字段null和空字符的解决方案:可以直接在c盘搜一下
在C:\Users\用户名.kettle\kettle.properties
添加下面配置
KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL=Y
在测试中出现了内存溢出:Spoon.bat将内存配置调大 不要过大 根据本机适度调整
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 开始 测试执行一次
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 设置变量(提取到的变量,表名和pagesize 有修改 直接启动是改一下就可以了)
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 第一个转换:计算分页数量(其他项默认 只添加这2个变量)
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 新建一个转换 命名自定义 前面已经定义了pagesize 这步主要获取pagenum
通过oracle 表输入 获取总数 total ÷ pagesize 向上取整 = pagenum
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 这里第一次用需要进行数据库配置
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 **设置变量 **
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 将得到的pagenum复制到结果里 以供后续使用
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 第一个转换完成 开始第二个转换
将参数向下传递
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 第二个转换主要功能是 构造peage页的数据 并将结果复制
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 获得page
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 新建个作业,注意:执行每一行
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 在作业中新建转换
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 获取上步骤的结果
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 设置变量,添加表输入
**oracle分页
SELECT * FROM (SELECT ROWNUM AS rowno, t.* FROM T A B L E N A M E t W H E R E R O W N U M < = ( {TABLENAME} t WHERE ROWNUM <= ( TABLENAMEtWHEREROWNUM<=({NEWPAGE}) P A G E S I Z E ) t a b l e a l i a s W H E R E t a b l e a l i a s . r o w n o > = ( ( {PAGESIZE}) table_alias WHERE table_alias.rowno >= (( PAGESIZE)tablealiasWHEREtablealias.rowno>=(({NEWPAGE}-1)${PAGESIZE}+1)**
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 注意:简易转换会将值编码 不可读了
从步骤插入数据,不用勾,不然会有问题,列不可用
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 可加日志 或写出到文件 查看内容
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 es插入 需要id 有的不需要
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 先测试链接 7.x的kettle 可以换链接es插件 支持6.x版本es
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 下一步需要配置es服务的地址及端口9300
如果上一步的查询 不能获取字段 这一步需要手动获取下 把没用的去掉
最后在配置下es 名称 看配置文件
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 问题: 我是了插入es数据应该是正常的
如果要输出文件 可能存在问题
我遇到的是 循环是 第一次执行的不是第一页 说不好第几页 导致部分数据重复 而最后一页遍历不到
可以把分页数据+1 就都可以遍历到 但是还会有重复数据
后查看别人例子 将这一个转换 拆成2个就好了 这里可能和执行顺序有关 或者并行执行有关 不太清楚
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 转换-设置变量
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 转换-导出数据
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 启动时 可以配置表名及每页数量 选择日志级别 开始吧
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环 设置为错误日志输出效果为 可根据需要自行配置
kettle 循环 oracle数据批量入Elasticsearch oracle循环导出数据文件 job循环