二百七十二、Kettle——ClickHouse中增量导入数据重复性统计表数据(1天1次)

news/2024/11/2 9:55:41/

一、目的

在数据质量模块,需要对原始数据的重复性进行统计

Hive中原有SQL语句和ClickHouse现有SQL语句很大不同

二、Hive中原有代码

2.1 表结构

--41、八大类基础数据重复性统计表  事件+事件资源不需要重复
create  table  if not exists  hurys_db.dwd_data_duplicate(data_type      int        comment '1:转向比,2:统计,3:评价,4:区域,5:过车,6:静态排队,7:动态排队,8:轨迹,9:事件数据,10:事件资源',device_no      string     comment '设备编号',data_duplicate float      comment '数据重复率'
)
comment '数据重复性统计表'
partitioned by (day string)
stored as orc
;

2.2 SQL代码

insert  overwrite  table  hurys_db.dwd_data_duplicate partition(day)
select'6' data_type,device_no,round(sum(num)/count_num,2)  data_duplicate,day
from (selectdevice_no,create_time,lane_no,count(1) num,count_num,day
from (select device_no,create_time,lane_no,count(device_no) over (partition by device_no,day) count_num,dayfrom hurys_db.ods_queuewhere day = '2024-09-04') as t1
group by device_no, create_time, lane_no, count_num, day
having count(1) > 1
) as t3
group by device_no, count_num, day;

三、ClickHouse中现有代码

3.1 表结构

--41、八大类基础数据重复性统计表(长期存储)
create  table  if not exists  hurys_jw.dwd_data_duplicate(data_type      Int32            comment '1:转向比,2:统计,3:评价,4:区域,5:过车,6:静态排队,7:动态排队,8:轨迹,9:事件数据,10:事件资源',device_no      String           comment '设备编号',data_duplicate Decimal(10, 2)   comment '数据重复率',day            Date             comment '日期'
)
ENGINE = MergeTree
PARTITION BY day
PRIMARY KEY day
ORDER BY day
SETTINGS index_granularity = 8192;

3.2 SQL代码

select'6' data_type,device_no,round(sum(num)/count_num,2)  data_duplicate,day
from (selectdevice_no,create_time,lane_no,count(1) num,count_num,day
from (select device_no,create_time,lane_no, count(device_no) over (partition by device_no,DATE(create_time)) AS count_num,DATE(create_time) dayfrom hurys_jw.ods_queuewhere day = '2024-10-22' -- where day > ?) as t1
group by device_no, create_time, lane_no, count_num, day
having count(1) > 1
) as t3
group by device_no, count_num, day;

3.3 Kettle任务

3.3.1 newtime

3.3.2 替换NULL值

3.3.3 clickhouse输入1

select
       '6' data_type,
       device_no,
       round(sum(num)/count_num,2)  data_duplicate,
       cast(day as String) day
from (select
       device_no,
       create_time,
       lane_no,
       count(1) num,
       count_num,
       day
from (select device_no,
             create_time,
             lane_no,
             count(device_no) over (partition by device_no,DATE(create_time)) AS count_num,
             DATE(create_time) day
      from hurys_jw.ods_queue
     where day > ?
    ) as t1
group by device_no, create_time, lane_no, count_num, day
having count(1) > 1
) as t3
group by device_no, count_num, day
;

其他clickhouse输入控件代码类似

3.3.4 字段选择

3.3.5 clickhouse输出

3.3.6 执行任务

3.3.7 海豚调度(1天1次)

ClickHosue的SQL语句与Hive真的好多地方不一样,尤其是函数!


http://www.ppmy.cn/news/1543836.html

相关文章

Chrome与夸克谁更节省系统资源

在当今数字化时代,浏览器已经成为我们日常生活中不可或缺的一部分。无论是工作、学习还是娱乐,我们都依赖于浏览器来访问互联网。然而,不同的浏览器在性能和资源消耗方面存在差异。本文将探讨Chrome和夸克两款浏览器在系统资源消耗方面的表现…

来康生命科技有限公司心率监测解决方案在健身房与康养机构的应用探索

引言 随着科技的日新月异,智能健康服务正逐步成为现代健康管理不可或缺的一环。来康生命科技有限公司,凭借其在智能物联集成交互领域的自主创新能力,推出了一款集蓝牙物联网、蓝牙手环、数据云与管理终端于一体的心率监测解决方案。此方案专…

修改HarmonyOS鸿蒙图标和名字,打包后安装到真机,应用图标丢失变成透明,修改名字也不生效,还是默认的labeL解决方案教程

HarmonyOS鸿蒙打包hap 安装应用到桌面没有图标,用hdc安装到真机,打包后应用图标丢失变成透明,名字也还是默认的label的bug,以下是解决方案 以下是修改方案: 1、修改应用名字: 2、修改应用图标&#xff1a…

C++音视频04:音视频编码、生成图片

视频编码 #include <libavutil/log.h> #include <libavutil/opt.h> #include <libavcodec/avcodec.h>static int encode(AVCodecContext *ctx, AVFrame *frame, AVPacket *pkt, FILE *out) {int ret -1;ret avcodec_send_frame(ctx, frame);if (ret < …

[数组基础] 0498. 对角线遍历

文章目录 1. 题目链接2. 题目大意3. 示例4. 解题思路5. 参考代码 1. 题目链接 498. 对角线遍历 - 力扣&#xff08;LeetCode&#xff09; 2. 题目大意 描述&#xff1a;给定一个大小为 mn 的矩阵 mat 。 要求&#xff1a;以对角线遍历的顺序&#xff0c;用一个数组返回这个矩…

QT pro项目工程的条件编译

QT pro项目工程的条件编译 前言 项目场景&#xff1a;项目中用到同一型号两个相机&#xff0c;同时导入两个版本有冲突&#xff0c;编译不通过&#xff0c; 故从编译就区分相机导入调用&#xff0c;使用宏区分 一、定义宏 在pro文件中定义宏&#xff1a; DEFINES USE_Cam…

【代码随想录Day53】图论Part05

并查集理论基础 题目链接/文章讲解&#xff1a;并查集理论基础 | 代码随想录 寻找存在的路径 题目链接/文章讲解&#xff1a;代码随想录 import java.util.*;public class Main {public static void main(String[] args) {int numberOfElements, numberOfConnections;Scann…

一些MATLAB到Python的转换指南

1. 矩阵和数组操作 MATLAB使用方括号[]来创建矩阵和数组。Python使用列表[]或NumPy库中的数组。 MATLAB: A [1 2 3; 4 5 6; 7 8 9];Python: import numpy as npA np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])2. 数学运算 MATLAB中很多内置函数可以直接用于矩阵。Python…