Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

deduplicate_insert_* 会话设置

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

deduplicate_insert

类型
DeduplicateInsertMode
默认值
enable
版本历史
版本默认值注释
26.2enable默认对所有同步和异步插入启用去重。

启用或禁用 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

类型
DeduplicateInsertSelectMode
默认值
enable_when_possible
版本历史
版本默认值注释
26.1enable_when_possible将 deduplicate_insert_select 的默认行为改为 ENABLE_WHEN_POSSIBLE
25.12enable_even_for_bad_queries新设置,替换 insert_select_deduplicate

启用或禁用 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 结果不稳定,则会记录一条消息,但查询仍会在启用去重的情况下执行。此选项用于向后兼容。建议改用其他选项,因为它可能导致意外结果。
Navigation