马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- # 查看操作系统版本
- cat /etc/os-release
- # clickhouse版本
- clickhouse -V
- # 登录clickhouse客户端
- clickhouse-client -u xxx --password xxx -m
- # -m 或 --multiline:进入客户端后,运行输入多行sql语句
复制代码 建表
- # 创建数据库
- CREATE DATABASE IF NOT EXISTS test; --使用默认库引擎创建库
复制代码- # 创建本地表
- create table IF NOT EXISTS test.user_table (
- uid String comment '用户ID',
- sex String comment '性别',
- age UInt16 comment '年龄',
- phone String comment '联系电话'
- )
- engine = MergeTree()
- order by uid;
复制代码
- 数据类型必要大写开头:String、UInt16
- 表引擎类型也必须大写MergeTree
- 如果没有指定主键,默认使用 order by 指定的字段
- # 创建分布式表
- -- 在集群中创建实际存放数据的本地表
- create table test.user_event on cluster data_cluster(
- uid String comment '用户id',
- event String comment '事件名称',
- c_time DateTime comment '点击时间',
- dt Date comment '日期'
- )
- engine = MergeTree()
- partition by dt
- order by uid;
- --创建分布式表
- create table test.user_event_distributed (
- uid String comment '用户id',
- eventString comment '事件名称',
- c_time DateTime comment '点击时间',
- dt Date comment '日期'
- )
- engine = Distributed('data_cluster', 'test', 'user_event', rand());
复制代码
- 分布式表必要选择Distributed 表引擎:
- 第1个参数:集群名称
- 第2个参数:数据库名
- 第3个参数:数据表名
- 第4个参数:分片key,数据被到不同服务器依据的字段,相同的值会被分配到同一台服务器
如果在创建分布式表test.user_event_distributed 时没有指定on cluster data_cluster,那么创建是本地表,后续的查询只能在建表的那个节点服务器查询数据
表变更
- # 删除特定分区
- alter table test.user_event
- on cluster data_cluster
- drop partition '2024-11-30';
- alter table test.user_event
- on cluster data_cluster
- delete where dt > '2024-11-15';
- alter table test.user_event
- on cluster data_cluster
- delete where dt='2024-11-30';
- # 删除满足特定条件数据
- alter table test.user_event
- on cluster data_cluster
- delete where user_id='u00001';
复制代码 自界说函数
- /**
- * 创建自定义函数 x_split
- * 分割字符串并把类型转换为整数
- */
- CREATE FUNCTION x_split (x String)
- RETURNS Array(UInt32)
- AS
- (
- arrayMap(
- (y) -> toUInt32(y),
- splitByString(',', x)
- )
- );
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |