clickhouse DBA入门常用SQL

1. 查询正在运行的SQL

select * from system.processes;

也可以 show processlist 但不太方便过滤

  • user - 执行查询的用户。对于分布式处理,查询会在default用户下发送到远程服务器。该字段是执行特定查询的用户名,而不是初始发起此查询的用户名。
  • address - 发出请求的IP地址。
  • elapsed - 请求执行时间,单位为秒。
  • read_rows - 从表中读取的行数。对于分布式处理,在请求服务器上,这是所有远程服务器的总和。
  • read_bytes - 从表中读取的未压缩字节数。对于分布式处理,在请求服务器上,这是所有远程服务器的总和。
  • total_rows_approx - 应读取的总行数的近似值。对于分布式处理,在请求服务器上,这是所有远程服务器的总和。
  • memory_usage - 请求使用的内存量。它可能不包括某些类型的专用内存,参见max_memory_usage设置。
  • query - 查询文本。对于INSERT操作,它不包括要插入的数据。
  • query_id - 查询ID。
  • is_cancelled - 查询是否已取消。
  • is_all_data_sent - 是否已将所有数据发送到客户端(查询在服务器上已完成)。

2. kill指定会话

其中query_id就来自上面的查询

kill query where query_id='xxxx';

3. 数据导出

  • 导出为csv格式
clickhouse-client -h 127.0.0.1 --database="db" --format_csv_delimiter="," --query="select * from db.test_table FORMAT CSV" > test.csv (不带表头)
clickhouse-client -h 127.0.0.1 --database="db"  --format_csv_delimiter="," --query="select * form db.test_table" --format CSVWithNames> test.csv(带表头)


4. 数据导入

  •  导入csv格式数据
clickhouse-client -h 127.0.0.1 --database="db" --format_csv_delimiter="," --query="insert into db.test_table FORMAT CSV" < test.csv (不带表头)
clickhouse-client -h 127.0.0.1 --database="db" --format_csv_delimiter="," --query="insert into db.test_table" --format CSVWithNames < test.csv(带表头)

5. 批量创建DB及用户

#!/bin/sh

# 作用:生成创建DB及同名用户并授权语句

# 执行生产的创建语句脚本
# clickhouse-client --password --multiquery < clickhouse_add_db_and_user.sql

# 查看生成的用户密码
# cat clickhouse_add_db_and_user.sql |grep identified|awk '{print $3 $6}' | more

# 待创建创建库及用户(此处库与用户同名)
user_list=(a_rw b_rw c_rw d_rw e_rw f_rw g_rw h_rw i_rw)
logfile=clickhouse_add_db_and_user.sql
 
for user in ${user_list[@]}
do

# 以纳秒格式显示时间,长度为9位,作为随机密码的一部分
DATE=`date +'%N'`

echo -e "create database ${user} on cluster test_cluster;" >> $logfile
echo -e "create user ${user}@'%' identified by 'D9TUr3qJe!!!!LDVz8atn${DATE}' on cluster test_cluster;" >> $logfile
echo -e "grant all on ${user}.* to ${user} on cluster test_cluster;" >> $logfile
echo -e "grant select on ${user} to ${user} with grant option on cluster test_cluster;" >> $logfile

#role_db_metadata是自己建的角色,如果没有可以注释此句
echo -e "grant role_db_metadata to ${user} on cluster test_cluster;" >> $logfile

echo -e "\n\n" >> $logfile
done

参考

processes | ClickHouse Docs

https://www.cnblogs.com/sxgsxg/p/13597582.html

https://www.cnblogs.com/yeyuzhuanjia/p/16519772.html

如何从 ClickHouse 导出数据到一个文件? | ClickHouse Docs

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hehuyi_In

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值