clickhouse 分布式表

分布式表一般用来查询,实际数据写入还是在本地式表

在操作分布式表之前:

1 连接到tutorial数据库。
2 在MergeTree 引擎上创建hits_v1表,该表将位于所有集群主机上:(ON CLUSTER表示在集群的每台机器上都创建)

CREATE TABLE tutorial.hits_v1 ON CLUSTER '{cluster}' ( <table structure> )
ENGINE = MergeTree()
PARTITION BY toYYYYMM(EventDate)
ORDER BY (CounterID, EventDate, intHash32(UserID))
SAMPLE BY intHash32(UserID)
SETTINGS index_granularity = 8192 

在集群中创建分布式表hits_v1_distributed

1 连接到tutorial数据库。

2 在分布式引擎上创建一个表:

CREATE TABLE tutorial.hits_v1_distributed ON CLUSTER '{cluster}' AS tutorial.hits_v1
ENGINE = Distributed('{cluster}', tutorial, hits_v1, rand())

在这里,您可以使用AS tutorial.hits_v1表达式,而不是显式指定表结构,因为hits_v1_distributedhits_v1表位于集群中的相同主机上。

简而言之 就是创建分布式表不用显示的指示表结构,仿照本地表就可以了

创建分布式表时,指定集群ID 作为第一个参数或使用{cluster}宏,它会自动替换CREATE TABLE执行操作的集群ID 。

分布式表的4个参数

第一个 集群id
第二个 数据库名
第三个 本地表名
第四个 分片键 就是说写入数据时写入集群中的哪个本地表

一般不建议直接向分布式表写数据,最好是直接写入数据到对应的本地表,然后查询的时候使用分布式表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值