我确实在文档中发现了一些示例,这些示例通过将参数传递给ENGINE部分来创建主键。
但是我没有找到关于ENGINE的任何参数的说明,它的含义以及如何创建主键。
提前致谢。将此信息添加到不存在的文档中将是很棒的。

最佳答案

MergeTree存储引擎家族支持主键。
https://clickhouse.tech/docs/en/engines/table_engines/mergetree_family/mergetree/

它被指定为存储引擎的参数。

MergeTree(EventDate, (CounterID, EventDate), 8192)
MergeTree(EventDate, intHash32(UserID), (CounterID, EventDate, intHash32(UserID)), 8192)
因此,在这些示例中,(CounterID, EventDate)(CounterID, EventDate, intHash32(UserID))是主键。
使用ReplicatedMergeTree时,还有两个附加参数,用于标识分片和副本。
https://clickhouse.tech/docs/en/engines/table_engines/mergetree_family/replication/#creating-replicated-tables
主键是在创建表时指定的,以后无法更改。
尽管有名称,主键也不是唯一的。它只是定义数据的排序顺序以最佳方式处理范围查询。您可以在表中插入许多具有相同主键值的行。

08-19 12:15