二百二十三、Kettle——从Hive增量导入到ClickHouse(根据day字段判断)

这篇具有很好参考价值的文章主要介绍了二百二十三、Kettle——从Hive增量导入到ClickHouse(根据day字段判断)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、目的

需要用Kettle从Hive的DWS层库表数据增量同步到ClickHouse的ADS层库表中,不过这次的增量判断字段是day字段,不像之前的create_time字段

因为day字段需要转换类型,而 create_time字段字段不需要转换类型,因此两者的Kettle任务配置有所不同,也踩了一些坑,因此再写一篇博客整理一下,根据day字段判断的情况下kettle如何配置才能从Hive增量导入到ClickHouse中

下面博客链接是之前根据create_time字段判断进行从Hive到ClickHouse的增量导入

一百二十八、Kettle——从Hive增量导入到ClickHouse(根据create_time字段判断)

二、Hive的DWS层建表语句和ClickHouse的ADS建表语句

(一)Hive的DWS层建表语句

create  table  if not exists  dws_statistics_volume_1day(
    device_no        string         comment '设备编号',
    scene_name       string         comment '场景名称',
    lane_no          int            comment '车道编号',
    lane_direction   string         comment '车道流向',
    section_no       int            comment '断面编号',
    device_direction string         comment '雷达朝向',
    sum_volume_day   int            comment '每天总流量',
    week_day         string         comment '周几',
    month            string         comment '月份'
)
comment '统计数据流量表——动态分区——1天周期'
partitioned by (day string)
stored as orc
;

(二)ClickHouse的ADS建表语句

create  table  if not exists  hurys_dc_ads.ads_statistics_volume_1day(
    device_no        String         comment '设备编号',
    scene_name       String         comment '场景名称',
    lane_no          int            comment '车道编号',
    lane_direction   String         comment '车道流向',
    section_no       int            comment '断面编号',
    device_direction String         comment '雷达朝向',
    sum_volume_day   int            comment '每天总流量',
    week_day         String         comment '周几',
    month            String         comment '月份',
    day              Date           comment '日期'
)ENGINE = MergeTree
PARTITION BY (day)
PRIMARY KEY day
order by day
TTL day + toIntervalMonth(12)
SETTINGS index_granularity = 8192;

三、实施步骤

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

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

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

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

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

二百二十三、Kettle——从Hive增量导入到ClickHouse(根据day字段判断),Kettle,hive,clickhouse,kettle

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

1、目标

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

2、实施步骤

二百二十三、Kettle——从Hive增量导入到ClickHouse(根据day字段判断),Kettle,hive,clickhouse,kettle

select(
select
cast(day as varchar(50))
from  hurys_dc_ads.ads_statistics_volume_1day
order by day desc limit 1) as  day

注意:SQL语句中的day字段需要转换类型cast(day as varchar(50)),因为ClickHouse中day字段是Date字段类型

(三)配置替换NULL值控件

1、目标

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

2、实施步骤

二百二十三、Kettle——从Hive增量导入到ClickHouse(根据day字段判断),Kettle,hive,clickhouse,kettle

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

1、目标

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

2、实施步骤

二百二十三、Kettle——从Hive增量导入到ClickHouse(根据day字段判断),Kettle,hive,clickhouse,kettle

select
       cast(device_no as varchar(50)),
       cast(scene_name as varchar(50)),
       lane_no,
       cast(lane_direction as varchar(50)),
       section_no,
       cast(device_direction as varchar(50)),
       sum_volume_day,
       cast(week_day as varchar(50)),
       cast(month as varchar(50)),
       cast(day as varchar(50))
from hurys_dc_dws.dws_statistics_volume_1day
where  day >  ?

注意:String类型的字段需要转换类型,类似 cast(day as varchar(50))

经测试:

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

(五)配置字段选择控件

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

二百二十三、Kettle——从Hive增量导入到ClickHouse(根据day字段判断),Kettle,hive,clickhouse,kettle

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

二百二十三、Kettle——从Hive增量导入到ClickHouse(根据day字段判断),Kettle,hive,clickhouse,kettle

注意:这里的day字段千万不要选择Date字段类型

(六)配置表输出控件

1.在主选项页面

二百二十三、Kettle——从Hive增量导入到ClickHouse(根据day字段判断),Kettle,hive,clickhouse,kettle

 2.在数据库字段页面

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

二百二十三、Kettle——从Hive增量导入到ClickHouse(根据day字段判断),Kettle,hive,clickhouse,kettle

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

二百二十三、Kettle——从Hive增量导入到ClickHouse(根据day字段判断),Kettle,hive,clickhouse,kettle

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

之前已运行过任务,Hive表中数据并没增加,因此再次运行增量导入任务的话,就会显示数据为0

二百二十三、Kettle——从Hive增量导入到ClickHouse(根据day字段判断),Kettle,hive,clickhouse,kettle

这样,根据day字段判断并从Hive增量导入到ClickHouse的Kettle任务就配置成功了!文章来源地址https://www.toymoban.com/news/detail-828979.html

到了这里,关于二百二十三、Kettle——从Hive增量导入到ClickHouse(根据day字段判断)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • ClickHouse(二十三):Java &Spark读写ClickHouse API

      进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:含各种IT体系技术,IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 📌订阅:拥抱独家专题,你的订阅将点燃我的创作热情! 👍点赞:赞同优秀创作

    2024年02月12日
    浏览(11)
  • 【Spark数仓项目】需求八:MySQL的DataX全量导入和增量导入Hive

    【Spark数仓项目】需求八:MySQL的DataX全量导入和增量导入Hive 本需求将模拟从MySQL中向Hive数仓中导入数据,数据以时间分区。测试两种导入场景,一种是将数据全量导入,即包含所有时间分区;另一种是每天运行调度,仅导入当天时间分区中的用户数据。 mysql表建表语句:

    2024年02月03日
    浏览(10)
  • 一百一十三、DBeaver——从hive同步数据到clickhouse

    一百一十三、DBeaver——从hive同步数据到clickhouse

    目标:把hive的DM层结果数据导出到clickhouse数据库,试了kettle、sqoop等多种方法都报错,尤其是kettle,搞了大半天发现还是不行。结果目前就只能用DBeaver同步数据。 准备工作:hive和clickhouse中都建好表 第一步,右击clickhouse中的表,选择导入数据 第二步,在源类型和格式中,由

    2024年02月13日
    浏览(14)
  • 【大数据之Hive】二十三、HQL语法优化之数据倾斜

    【大数据之Hive】二十三、HQL语法优化之数据倾斜

      数据倾斜指参与计算的数据分布不均,即某个key或者某些key的数据量远超其他key,导致在shuffle阶段,大量相同key的数据被发往同一个Reduce,导致该Reduce所需的时间远超其他Reduce,成为整个任务的瓶颈。   Hive中的数据倾斜常出现在分组聚合和join操作的场景中 。   

    2024年02月16日
    浏览(12)
  • Apache Doris (二十三) :Doris 数据导入(一)Insert Into

    目录 1. 语法及参数 2. 案例 ​​​​3. 注意事项 3.1. 关于插入数据量

    2024年02月13日
    浏览(13)
  • 一百八十七、大数据离线数仓完整流程——步骤六、在ClickHouse的ADS层建表并用Kettle同步Hive中DWS层的结果数据

    一百八十七、大数据离线数仓完整流程——步骤六、在ClickHouse的ADS层建表并用Kettle同步Hive中DWS层的结果数据

    经过6个月的奋斗,项目的离线数仓部分终于可以上线了,因此整理一下离线数仓的整个流程,既是大家提供一个案例经验,也是对自己近半年的工作进行一个总结。 1、ClickHouse的ADS层建库建表语句 --如果不存在则创建hurys_dc_ads数据库 create database if not exists hurys_dc_ads; --使用

    2024年02月07日
    浏览(13)
  • 第二百八十三回

    我们在上一章回中介绍了\\\"如何混合选择多个图片和视频文件\\\"相关的内容,本章回中将介绍如何通过相机获取视频文件.闲话休提,让我们一起Talk Flutter吧。 我们在前面章回中介绍的选择图片或者视频文件的方式都是通过文件窗口进行的,本章回中将介绍如何通过相机获取视频

    2024年01月24日
    浏览(12)
  • 第一百二十七回 空安全

    我们在上一章回中介绍了级联操作符相关的内容,本章回中将介绍 空安全 .闲话休提,让我们一起Talk Flutter吧。 在编译语言中都有空指针或者空对象(null),它们会引起程序的异常。在移动开发中如果使用Java和OC开发程序,发生这类异常后会使应用程序被系统强制关闭,业内通

    2024年02月11日
    浏览(11)
  • JAVA面试题分享三百二十:ES超详细讲解

    JAVA面试题分享三百二十:ES超详细讲解

    目录 生活中的数据 先说说 Lucene 核心概念 集群(Cluster) 发现机制 节点的角色 脑裂现象 分片(Shards) 副本(Replicas) 映射(Mapping) 基本使用 安装使用 集群健康状态 机制原理 写索引原理 存储原理 分段存储 延迟写策略 段合并 性能优化 存储设备 内部索引优化 调整配置参

    2024年01月24日
    浏览(7)
  • Emacs之实现鼠标/键盘选中即拷贝外界内容(一百二十)

    Emacs之实现鼠标/键盘选中即拷贝外界内容(一百二十)

    简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏: Audio工程师进阶系列 【 原创干货持续更新中…… 】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:An

    2024年02月15日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包