clickhouse 分布式表创建、增加、更新、删除、查询

创建分布式表

sql 复制代码
--先创建本地表 设置自动过期时间3天
CREATE TABLE IF NOT EXISTS ck_database.ck_databaseon  cluster  default(cluster name)
(
    `table_id` String COMMENT 'id',
    `item_id` String COMMENT '业务id',
    `desc` Int64 COMMENT '描述',
    `time` DateTime DEFAULT now() COMMENT '数据写入时间,TTL 用'
)
ENGINE = MergeTree
ORDER BY (table_id, item_id)
TTL time + toIntervalDay(3)
SETTINGS index_granularity = 8192

--再创建分布式表
CREATE TABLE IF NOT EXISTS ck_database.ck_table_all on  cluster default(cluster name)
(
    `table_id` String COMMENT 'id',
    `item_id` String COMMENT '业务id',
    `desc` Int64 COMMENT '描述',
    `time` DateTime DEFAULT now() COMMENT '数据写入时间,TTL 用'
)
ENGINE = Distributed('default', 'ck_database', 'ck_database', sipHash64(assumeNotNull(table_id)))

删除分布式表

删除ck表,先删除分布式表,再删除本地表

sql 复制代码
DROP TABLE ck_dadasource.ck_table_all ON CLUSTER default(ck_cluster_name); 
DROP TABLE ck_dadasource.ck_table_local ON CLUSTER default(ck_cluster_name);

修改分布式表

通过local表来更新 同时指定上集群名称;如果通过all来更新则不支持会报错

sql 复制代码
alter table ck_table_local on cluster default(ck_cluster_name)
update is_deleted = 2
where redis_key in (123,456,789)

分布式表添加字段

sql 复制代码
alter table city_local ON CLUSTER ck_cluster_name add column history Int32;

同时支持指定在某个字段后面添加字段:

sql 复制代码
alter table city_local ON CLUSTER ck_cluster_name add column history Int32 after city_code;
sql 复制代码
-- 删除字段【可行】
alter table test_db.city_local ON CLUSTER ck_cluster_name drop column history;
相关推荐
txinyu的博客4 分钟前
HTTP服务实现用户级窗口限流
开发语言·c++·分布式·网络协议·http
独自破碎E14 分钟前
RabbitMQ中的Prefetch参数
分布式·rabbitmq
深蓝电商API1 小时前
Scrapy+Rredis实现分布式爬虫入门与优化
分布式·爬虫·scrapy
回家路上绕了弯2 小时前
定期归档历史数据实战指南:从方案设计到落地优化
分布式·后端
rchmin3 小时前
Distro与Raft协议对比分析
分布式·cap
小辉笔记3 小时前
kafka原理总结
分布式·kafka
实战项目4 小时前
分布式协作入侵检测系统的报警信息管理
分布式
无心水6 小时前
【分布式利器:腾讯TSF】10、TSF故障排查与架构评审实战:Java架构师从救火到防火的生产哲学
java·人工智能·分布式·架构·限流·分布式利器·腾讯tsf
小北方城市网17 小时前
分布式锁实战指南:从选型到落地,避开 90% 的坑
java·数据库·redis·分布式·python·缓存
范桂飓19 小时前
大模型分布式训练框架 Megatron-LM
人工智能·分布式