Kettle-基本使用

kettle基本使用

一些解释

1.kettle脚本以项目的形式进行组织,再将项目目录托管给git,就可以实现版本控制。

2.kettle两个控件转换(transformation)和工作(job)的区别:

​ 转换是数据流,工作是步骤流,作业的每个步骤必须等前面的步骤都跑完了,后面的步骤才会执行,而转换可以有表输入,表输出等详细步骤,会一次性把所有控件启动(一个控件对应一个线程)然后数据流会从第一个控件开始,一条记录一条记录地流向后面的控件。

3.建议以kettle作为参照物来讨论数据的输入/输出

4.建议一开始就把数据库连接保存到DB连接中,方便后续引用

5.执行逻辑和写代码逻辑相同,要清楚第一步做什么,第二步做什么。执行方式是顺序、选择还是循环?

 eg:导出公司数据:
    -设置参数
	-表输入(sql查询出结果)
	-复制记录到结果(把查到的记录存起来)
        -循环建表插入数据
	-设置变量
		-从结果集获取记录(把存起来的记录查出来)
		-设置变量(设置成可以引用的变量)
	-执行建表sql语句
	-插入数据
		-表输入(sql查询出结果)
		-表输出(将查到的数据插入到新表)

6.为了方便区分任务,kettle文件目录都以输出的表名、全量/增量来组织目录结构。

7.需求为输出为CSV文件,使用UTF-8编码会造成中文乱码。改为GBK解决中文乱码

8.字段获取的时候,要点一下最小宽度。不点的情况下,默认识别数据的宽度不确定(如果数据不够宽度以空格填充)这样会造成文件太大。浪费空间。

9.kettle表切换

​ 要把语句配置成变量,用来适用集群环境。

RENAME TABLE
	${database}.a TO ${database}.a_other,
	${database}.a_temp TO ${database}.a,
	${database}.a_other TO ${database}.a_temp ${is_cluster}
${database}:测试 db_test 正式 db
${is_cluster}: 测试 正式 on cluster cluster_a

10.如果是循环的job,要勾选执行每一个输入行

11.clickhouse读取时间的时候,读出来的就是异常的值。至今无法解决,只能修改原始表字段类型为String按照字符串处理

12.kettle同步任务 mysql到clickhouse 可以insert+select sqlserver到mysql不可以(只有mysql可以远程连接)

怎么做

1.连接资源库 【CTRL+R】,刷新资源库【CTRL+E】
2.文件-新建-作业/转换
3.如果sql中使用变量,替换变量选项一定要勾。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值