一百二十八、Kettle——从Hive增量导入到ClickHouse

 一、目标

用Kettle把Hive的DWS层数据增量导入到ClickHouse中

工具版本:Kettle:8.2     Hive:3.1.2     ClickHouse21.9.5.16

全量导入请访问拙作链接

http://t.csdn.cn/Rqvuvicon-default.png?t=N658http://t.csdn.cn/Rqvuv

二、前提准备

(一)kettle已连上Hive

一百二十八、Kettle——从Hive增量导入到ClickHouse_第1张图片

(二)kettle已连上ClickHouse 

一百二十八、Kettle——从Hive增量导入到ClickHouse_第2张图片

 

三、实施步骤

(一)打开kettle,新建转换任务。拖拽2个表输入、替换NULL值、字段选择、表输出控件

1.表输入控件:在输入控件模块

2.替换NULL值控件:在应用模块

3.字段选择控件:在转换控件模块

4.表输出控件:在输出控件模块

一百二十八、Kettle——从Hive增量导入到ClickHouse_第3张图片

(二)配置第一个表输入控件 

1、目标

通过SQL语句获取clickhouse表的最新时间

2.实施步骤

一百二十八、Kettle——从Hive增量导入到ClickHouse_第4张图片

第一步,双击表输入控件,打开操作界面

第二步,选择目标表所在的数据库

第三步,输入SQL语句获得目标表数据的最新时间

select(
select
create_time
from  hurys_dc_ads.ads_area_traffic_status_1hour
order by create_time desc limit 1) as  create_time

第四步,预览数据

一百二十八、Kettle——从Hive增量导入到ClickHouse_第5张图片

(三)配置替换NULL值控件

1、目标

防止由于目标表没有数据而导致异常,因此给第一个表输入控件的时间字段赋值

2.实施步骤

一百二十八、Kettle——从Hive增量导入到ClickHouse_第6张图片

 第一步,双击替换NULL值控件,打开操作界面

第二步,点击获取字段

第三步,将字段值替换为1000-01-01 00:00:01  并且设置转换掩码yyyy-MM-dd HH:mm:ss

(四)配置第二个表输入控件 

1、目标

通过SQL语句查询Hive中的增量数据

2.实施步骤

一百二十八、Kettle——从Hive增量导入到ClickHouse_第7张图片

 第一步,双击表输入控件,打开操作界面

第二步,选择数据源表所在的数据库

第三步,输入SQL语句以查询Hive中的增量数据

第一个坑:注意string字段类型的类型转换

经测试:

--int字段、float、timestamp字段都可以直接用
--string字段   cast(device_no as varchar(50))

select
       cast(device_no as varchar(50)),
       create_time,
       start_time,
       cast(name as varchar(50)),
       lane_no,
       lane_length,
       target_count,
       occupancy,
       speed_avg,
       cast(day as varchar(50))
from hurys_dc_dws.dws_area_traffic_status_1hour
where  create_time >  ?

第四步,勾选替换SQL语句里的变量

第五步,从步骤插入数据里选择替换NULL值

第六步,设置记录数量限制

(五)配置字段选择控件

1.在选择和修改页面,点击获取选择的字段

一百二十八、Kettle——从Hive增量导入到ClickHouse_第8张图片

2.在元数据模块,点击获取改变的字段。修改相应的字段,比如字段名、字段类型、字段格式等等 

一百二十八、Kettle——从Hive增量导入到ClickHouse_第9张图片

 第二个坑:这里的day字段千万不要选择Date字段类型

(六)配置表输出控件

1.在主选项页面

(1)可以修改步骤名称为clickhouse输出

(2)选择连接对应的clickhouse数据库、目标模式就是数据库名、目标表为表名

(3)勾选指定数据库字段

(4)勾选使用批量插入

一百二十八、Kettle——从Hive增量导入到ClickHouse_第10张图片

 2.在数据库字段页面

点击获取字段,检查相同字段名是否映射

一百二十八、Kettle——从Hive增量导入到ClickHouse_第11张图片

 (七)Ctrl+S保存,给kettle任务命名,然后点击运行

一百二十八、Kettle——从Hive增量导入到ClickHouse_第12张图片

 (八)再次点击运行一下kettle任务,验证是否增量导入

一百二十八、Kettle——从Hive增量导入到ClickHouse_第13张图片

 (九)在clickhouse表里检查数据,验证一下

一百二十八、Kettle——从Hive增量导入到ClickHouse_第14张图片

 这样,用kettle从hive到clickhouse的增量导入就成功了!

乐于奉献共享,帮助你我他!!!

你可能感兴趣的:(Kettle,ClickHouse,Hive,hive,clickhouse,etl)