一百八十九、ClickHouse——在海豚调度器中执行ClickHouse建库建表语句

一、目的

由于Hive处理好的结果数据要同步到ClickHouse中,因此需要在在海豚调度器中执行ClickHouse的ADS层的建库建表语句

二、执行步骤

(一)情形一:ClickHouse和海豚在同一服务器上

1、直接在海豚中创建执行SQL文件脚本的工作流

(1)第一步,在资源中心上传ADS层的建库建表SQL文件

一百八十九、ClickHouse——在海豚调度器中执行ClickHouse建库建表语句_第1张图片

(2)第二步,在项目里建工作流,添加运行SQL文件的脚本

一百八十九、ClickHouse——在海豚调度器中执行ClickHouse建库建表语句_第2张图片

#! /bin/bash
source /etc/profile

clickhouse-client --user default --password hurys@123 -d default --multiquery

(3)第三步,保存并执行工作流

(二)情形二:ClickHouse和海豚不在同一服务器上

1、在ClickHouse数据源里执行建库建表SQL语句(一个任务一条SQL

(1)第一步,在海豚中创建ClickHouse的数据源

一百八十九、ClickHouse——在海豚调度器中执行ClickHouse建库建表语句_第3张图片

(2)第二步,创建海豚工作流,执行建库建表SQL

注意:建库和建表分开,然后一个任务一条建表SQL

一百八十九、ClickHouse——在海豚调度器中执行ClickHouse建库建表语句_第4张图片

A、建库案例

一百八十九、ClickHouse——在海豚调度器中执行ClickHouse建库建表语句_第5张图片

create database if not exists hurys_dc_ads;

B、建表案例

一百八十九、ClickHouse——在海豚调度器中执行ClickHouse建库建表语句_第6张图片

--1.2 统计数据流量表——动态分区——1小时周期
create  table  if not exists  hurys_dc_ads.ads_statistics_volume_1hour(
    device_no       String                   comment '设备编号',
    name            Nullable(String)         comment '场景',
    lane_no         Nullable(int)            comment '车道编号',
    lane_direction  Nullable(String)         comment '车道流向',
    section_no      Nullable(Float32)        comment '断面编号',
    coil_no         Nullable(Float32)        comment '线圈编号',
    direction       Nullable(String)         comment '雷达朝向',
    sum_volume_hour Nullable(int)            comment '每小时总流量',
    start_time      DateTime                 comment '开始时间',
    end_time        DateTime                 comment '结束时间',
    day             Date                     comment '日期'
)ENGINE = MergeTree
PARTITION BY (day)
PRIMARY KEY day
order by day
TTL day + toIntervalMonth(12)
SETTINGS index_granularity = 8192;

(3)第三步,保存并执行工作流

一百八十九、ClickHouse——在海豚调度器中执行ClickHouse建库建表语句_第7张图片

对于海豚调度器和ClickHouse在不在同一服务器上,ADS层建库建表语句会有不同的工作流配置方式。

注意,由于海豚调度器中的ClickHouse数据源,一个任务只能一条SQL语句,即一个;  因此不能把多个建表SQL放在一个任务中,否则会运行报错,因此海豚中的ClickHouse没有区分分段执行

你可能感兴趣的:(ClickHouse,大数据调度工具,clickhouse)