IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 通过Shell 脚本向CK集群群分发SQL指令 -> 正文阅读

[大数据]通过Shell 脚本向CK集群群分发SQL指令

参考链接:ClickHouse官方文档

存在节点目录:CK集群某个节点下的 ? 比如:/user/test_user/ ?目录

使用方式说明:sycn_ck.sh是一个可执行脚本文件,只执行此脚本且在脚本后面添加上SQL即可;

特色功能说明:

  1. 支持同样的SQL在CK所有节点同步执行;无法单独在指定的节点上执行;
  2. 支持节点执行分行显示;采用颜色高亮分割;
  3. 支持在CK集群显示执行完成进度,以1/6方式显示;

脚本示例:

#节点调用脚本,即每个节点都执行同样的指令
#!/bin/bash
pcount=$#
if((pcount==0));then
        tput setaf 1
        tput bold
        echo no args;
        tput setaf 7
        exit;
fi

params=$@

curr_job=1
total_jobs=6
for ip in host_ip1 host_ip2 host_ip3 host_ip4 host_ip5 host_ip6
do
    echo $(tput setaf 3)"--------[ 在此节点 $ip 开始执行 ]--------"$(tput sgr0)
    clickhouse client -m -n -h $ip --port 9000  -u user_name --password pass_word --query "$params"


    echo $(tput setaf 2; tput bold)"--------[ 在此节点 $ip 完成执行, 完成进度 $curr_job/$total_jobs ]--------"$(tput sgr0)
    curr_job=$[$curr_job+1]
done

2、分发工具运行示例

提示:如果想要查询效果好一点,建议在SQL尾部添加上 format Pretty

-- 查询库
./sycn_ck.sh "show databases;"

-- 查询有哪些表
./sycn_ck.sh "use musicad_superset; show tables;"

-- 查询表
./sycn_ck.sh "use music_ad_income; select fdate, s_date, sum(total_income) as total_income from dws_datatalk_splash_ad_res_site_all where fdate = 20211208 and s_date = 20211208 group by fdate, s_date limit 1"

-- 创建local表
./sycn_ck.sh "use musicad_superset; CREATE TABLE city_local (fdate Int64,city_code Int32,city_name String,total_cnt Int64) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/city_local', '{replica}')
PARTITION BY fdate ORDER BY (fdate, city_code, city_name) SETTINGS index_granularity = 8192, storage_policy = 'ssd_to_hdd'"

-- 创建all表
./sycn_ck.sh "use musicad_superset; CREATE TABLE IF NOT EXISTS city_all AS city_local ENGINE = Distributed(musicad_ck_cluster, musicad_superset, city_local, rand());"

-- 查询all表数据
./sycn_ck.sh "use musicad_superset; select * from city_all;"

-- 向all表插入数据
./sycn_ck.sh "use musicad_superset; insert into city_all (fdate, city_code, city_name, total_cnt) values (20211208, 100, 'guangzhou', 1000);"

-- 查询all表数据
./sycn_ck.sh "use musicad_superset; select * from city_all;"

-- 删除表
./sycn_ck.sh "use musicad_superset; drop table city_all;"
./sycn_ck.sh "use musicad_superset; drop table city_local;"

tput 命令行使用说明

什么是 tput?

tput 命令将通过 terminfo 数据库对您的终端会话进行初始化和操作。通过使用 tput,您可以更改几项终端功能,如移动或更改光标、更改文本属性,以及清除终端屏幕的特定区域。

什么是 terminfo 数据库?

UNIX 系统上的 terminfo 数据库用于定义终端和打印机的属性及功能,包括各设备(例如,终端和打印机)的行数和列数以及要发送至该设备的文本的属性。UNIX 中的几个常用程序都依赖 terminfo 数据库提供这些属性以及许多其他内容,其中包括 vi 和 emacs 编辑器以及 curses 和 man 程序。

命令行使用说明:

1.文本属性

tput Color Capabilities:

tput setab [0-7] – Set a background color using ANSI escape

tput setb [0-7] – Set a background color

tput setaf [0-7] – Set a foreground color using ANSI escape

tput setf [0-7] – Set a foreground color
Color Code for tput:

0 – Black
1 – Red
2 – Green
3 – Yellow
4 – Blue
5 – Magenta
6 – Cyan
7 – White


tput Text Mode Capabilities:

tput bold – Set bold mode
tput dim – turn on half-bright mode
tput smul – begin underline mode
tput rmul – exit underline mode
tput rev – Turn on reverse mode
tput smso – Enter standout mode (bold on rxvt)
tput rmso – Exit standout mode
tput sgr0 – Turn off all attributes

例子:使输出的字符串有颜色,底色,加粗

#!/bin/bash

printf $(tput setaf 2; tput bold)'color show\n\n'$(tput sgr0)

for((i=0; i<=7; i++)); do
    echo $(tput setaf $i)"show me the money"$(tput sgr0)
done

printf '\n'$(tput setaf 2; tput setab 0; tput bold)'background color show'$(tput sgr0)'\n\n'

for((i=0,j=7; i<=7; i++,j--)); do
    echo $(tput setaf $i; tput setab $j; tput bold)"show me the money"$(tput sgr0)
done

exit 0

运行效果截图:?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-11 15:47:32  更:2021-12-11 15:47:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:30:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码