kettle实战

2019/12/23 21:47
阅读数 248

1.mysql->mysql(完全同字段数据同步)

  当然,实际此种情况当然可以选择navicat

  1)打开spoon,连接资源库(推荐)

  2)新建转换,之后在主对象树新建数据库连接并右键共享(统一数据源管理)

  3)拖入一个表输入,配置连接信息,获取SQL语句,完成表输入配置(无变量情况)

  

 

 

     4)拖一个表输出(需要在目的库中先建表),选择目标表,获取字段,输入字段映射

    

 

 

 

    5)运行转换,查看日志

2.mysql->mysql(目的库增加来源、系统时间两个字段)

  如果按照常规的使用自定义常量数据,将会报错如下:

  

 

 

   根据网友提示,使用核心对象->转换->增加常量:

  

 3.简单数据增量同步

  基本参考:https://blog.csdn.net/aganliang/article/details/84995294

  此方式的弊端,参考上述链接。此方式有个缺陷是每个表都需要一个表来记录加载时间,可以优化为一个总表汇总

  通过增加设置常量等组件,不过SQL语句等就需要写死一些表名了,也不利于拓展

  1)首先新建一个表用于记录同步时间(此处采用和资源库相同的库保存此表)

CREATE TABLE `etl_time_actor` (
`last_load_time`  datetime NULL DEFAULT '1970-01-01 00:00:00' COMMENT '上次同步时间' ,
`curent_load_time`  datetime NULL COMMENT '当前时间' 
)
COMMENT='etl同步时间'
;

 2)第一个转换用于将当前时间内存入current_load_time字段中:

 

   

 

     

  // 通过current_load_time这个表字段来进行判断

 

   3).第二个转换用于抽取增量数据

    首先第一个转换设置的时间:

    

 

 

     然后通过参数提取增量数据(时间从前一步读取)

    

    注意要勾选替换变量!

 

     最后插入增量数据(选择裁剪表则会对数据进行清空,再插入)

    

 

 

 

 

   4)第三个转换,将上次加载时间设置为本次时间,方便下次做增量

     

   5)这样我们将几个转换串起来,增量提取简易版就算完成了

    

4.简单同步到hive

   参考之前随笔建立hive连接:https://www.cnblogs.com/jiangbei/p/9372275.html

  注意使用后台nohub启动:

    nohup  hive --service hiveserver2 &

  请注意需要关闭namanode和datanode的防火墙!

  简单的拉个输入输出:

    

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部