一、目的
由于Hive处理好的结果数据要同步到ClickHouse中,因此需要在在海豚调度器中执行ClickHouse的ADS层的建库建表语句
二、执行步骤
(一)情形一:ClickHouse和海豚在同一服务器上
1、直接在海豚中创建执行SQL文件脚本的工作流
(1)第一步,在资源中心上传ADS层的建库建表SQL文件

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

#! /bin/bash
 source /etc/profile
clickhouse-client --user default --password hurys@123 -d default --multiquery <basic_ads.sql
(3)第三步,保存并执行工作流

(二)情形二:ClickHouse和海豚不在同一服务器上
1、在ClickHouse数据源里执行建库建表SQL语句(一个任务一条SQL)
(1)第一步,在海豚中创建ClickHouse的数据源

(2)第二步,创建海豚工作流,执行建库建表SQL
注意:建库和建表分开,然后一个任务一条建表SQL

A、建库案例

create database if not exists hurys_dc_ads;
B、建表案例

--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在不在同一服务器上,ADS层建库建表语句会有不同的工作流配置方式。
注意,由于海豚调度器中的ClickHouse数据源,一个任务只能一条SQL语句,即一个; 因此不能把多个建表SQL放在一个任务中,否则会运行报错,因此海豚中的ClickHouse没有区分分段执行