insert_allow_materialized_columns
insert_deduplicate
INSERT 的块去重 (适用于复制表) 。
仅当 deduplicate_insert 设置为 backward_compatible_choice 时,此设置才会生效。
可能的值:
- 0 — 禁用。
- 1 — 启用。
INSERT 语句插入到复制表中的块会进行去重 (请参见 Data Replication) 。
对于复制表,默认情况下每个分区仅对最近的 100 个块进行去重 (请参见 replicated_deduplication_window、replicated_deduplication_window_seconds) 。
对于非复制表,请参见 non_replicated_deduplication_window。
insert_deduplication_token
- 任意字符串
insert_deduplication_token 非空时,才会将其用于去重。
对于复制表,默认每个分区仅会对最近 100 次插入进行去重 (参见 replicated_deduplication_window、replicated_deduplication_window_seconds) 。
对于非复制表,请参见 non_replicated_deduplication_window。
insert_deduplication_token 是按分区跟踪的,因此一次 insert 写入的多个分区可以携带相同的 token。若未提供 token,系统默认会基于整个插入块计算内容校验和,因此只有当某次 insert 的全部数据都与之前某次 insert (即重试) 完全一致时,才会被去重;如果只是某个分区中的行恰好与另一条不同的 insert 一致,则不会被去重。insert_null_as_default
NULL 会导致异常。如果列类型是 Nullable,则无论此设置如何,NULL 值都会按原样插入。
此设置适用于 INSERT … SELECT 查询。请注意,SELECT 子查询可以使用 UNION ALL 子句进行拼接。
可能的值:
- 0 — 向非 Nullable 列插入
NULL会导致异常。 - 1 — 插入列的默认值而不是
NULL。
insert_shard_id
0,则指定将数据同步插入到 Distributed 表中的哪个分片。
如果 insert_shard_id 的值不正确,服务器将抛出异常。
要获取 requested_cluster 中的分片数量,可以检查服务器配置,或使用以下查询:
- 0 — 已禁用。
- 对应的 Distributed 表中,从
1到shards_num之间的任意数字。