Skip to main content
这些设置可在 system.settings 中查看,并由 源文件 自动生成。

deduplicate_insert

启用或禁用 INSERT INTO 的块级去重 (用于 Replicated* 表) 。 此设置同时适用于同步和异步插入,并且会覆盖 insert_deduplicateasync_insert_deduplicate 设置。 该设置有三个可能值:
  • disable — 对 INSERT INTO 查询禁用去重。
  • enable — 对 INSERT INTO 查询启用去重。
  • backward_compatible_choice — 如果针对特定插入类型启用了 insert_deduplicateasync_insert_deduplicate,则启用去重。
对于 INSERT SELECT 查询,首先会检查 deduplicate_insert_select。去重还要求目标表保留去重日志,参见 replicated_deduplication_windownon_replicated_deduplication_window

deduplicate_insert_select

启用或禁用 INSERT SELECT 的块级去重 (适用于 Replicated* 表) 。 对于 INSERT SELECT 查询,会先检查此设置,再检查 deduplicate_insert。 当 SELECT 包含 ORDER BY ALL 且其管道以单个 stream 结束时,该 SELECT 是稳定的。非空的 insert_deduplication_token 可作为稳定性的等效替代。 该设置有四个可能值:
  • disable — 对 INSERT SELECT 查询禁用去重。
  • force_enable — 无论 deduplicate_insert 如何,对 INSERT SELECT 查询启用去重。如果 SELECT 结果不稳定且未提供标记,则会抛出异常。
  • enable_when_possible — 如果 deduplicate_insert 启用了去重且 SELECT 结果稳定,则启用去重;否则禁用。
  • enable_even_for_bad_queries - 如果 deduplicate_insert 启用了去重,则启用去重,无论 SELECT 结果是否稳定。如果 SELECT 结果不稳定,则会记录一条消息,但查询仍会在启用去重的情况下执行。此选项用于向后兼容。建议改用其他选项,因为它可能导致意外结果。
最后修改于 2026年8月26日