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

一、目标

用kettle把hive数据同步到clickhouse,简单运行、直接全量导入数据

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

二、前提

(一)kettle连上hive

(二)kettle连上clickhouse

三、实施步骤

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

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

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

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

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

 (二)配置表输入控件,尤其注意SQL里的字段类型转换

可以修改步骤名称为hive输入,选择hive数据库连接,然后写查询SQL语句

注意:hive里的string类型字段,需要转换为类似varchar(50)的具体大小的varchar字段

经测试:

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

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

 (三)配置字段选择控件

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

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

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

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

(四)配置表输出控件

1.在主选项页面

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

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

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

(4)勾选使用批量插入

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

 2.在数据库字段页面

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

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

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

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

运行成功!

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

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

 这样,用kettle从hive导入click house就成功了。

注意点有两个,一是kettle的版本问题,二是从hive导入click house一定要注意字段的类型转换。

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

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