通过XShell连上了CK所在的服务器后的部分操作:
1.查看ck的集群名称
cd /etc/clickhouse-server/
ls
vi metrika.xml
2.如何进入CK的SQL输入页面(也就是登录后端)
clickhouse-client --port=19000 -h 127.0.0.1 -m
3.进入CK后台后如何查看数据库名、表名、指定使用哪个数据库
查看数据库名 show databases;
查看表名 show tablenames;
指定使用哪个数据库 use databasename;
4.在CK里清除本地表和分区表的数据(在一个机器上执行该命令,因为加了on cluster,所以是对整个集群上的本地表进行了清除操作,集群表也会被清除)
truncate table databasename.tablename_local on cluster ck_cluster;
5.退出CK后端
按Ctrl+Z
6.xshell执行CK的sql脚本文件
clickhouse-client --port=19000 -h 127.0.0.1 -m < /filepath/filename.sql
# < 后的是SQL脚本在CK所在服务器上的存储路径和文件名,有些SQL脚本在服务器上显示是不带后缀 .sql的
7.通过XShell导出CK中表的数据到CSV文件中
clickhouse-client --port=19000 -h 127.0.0.1 -m --query="select * from databasename.tablename" > /filepath/filename.csv
# > 后的是新建的空的CSV文件在CK所在服务器上的存储路径和文件名,tablename是指需要导出数据的表的名字(指分布式表),分布式表相当于一个视图,是所有本地表的汇总。
8.通过XShell导入CSV格式的数据文件到CK中
clickhouse-client --port=19000 -h 127.0.0.1 --database="databasename" --query="insert into databasename.tablename FORMAT CSV" < /filepath/filename.csv
# < 后的是CSV文件在CK所在服务器上的存储路径和文件名,tablename是指需要导入数据的表的名字(指分布式表)
9.通过XShell查看CK的帮助页面
clickhouse-client -help
10.增加列
alter table databasename.tablename_local on cluster ck_cluster add column etltime Int64;
alter table databasename.tablename on cluster ck_cluster add column etltime Int64;
11.删除列
alter table databasename.tablename_local on cluster ck_cluster drop column etltime;
alter table databasename.tablename on cluster ck_cluster drop column etltime;
12.修改注释
alter table databasename.tablename_local on cluster ck_cluster comment column columnname '原注释' '新注释';
alter table databasename.tablename on cluster ck_cluster comment column columnname '原注释' '新注释';
13.修改数据类型
alter table databasename.tablename_local on cluster ck_cluster MODIFY column columnname 数据类型;
alter table databasename.tablename on cluster ck_cluster MODIFY column columnname 数据类型;
在CK中不可修改列名称,因为不支持;hive中的日期为string的到CK中不可转为Date,会报错,必须为string。
14.CK建表语句模板
create table if not exists databasename.tablename_local on cluster ck_cluster(
hzzjlx string,
hzzjlxmc Nullable(string),
gszjlx string,
gszjlxmc Nullable(string)
) ENGINE = MergeTree() ORDER BY (hzzjlx,gszjlx) SETTINGS index_granularity = 8192;
create table if not exists databasename.tablename on cluster ck_cluster as databasename.tablename_local ENGINE=Distributed(ck_cluster,databasename,tablename_local,rand());
# Nullable是允许该字段有空值存在,但是建立索引的列(sort列)不允许有空值存在,如果是分区表则再order by 前面加一个partition by(分区字段)
15.CK删表操作
drop table databasename.tablename_local on cluster ck_cluster;
drop table databasename.tablename on cluster ck_cluster;
版权声明:本文为Ysuzuran原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。