deduplicate_insert
INSERT INTO のブロックの重複排除を有効または無効にします (Replicated* テーブルの場合) 。
この設定は同期および非同期の両方の insert に適用され、insert_deduplicate および async_insert_deduplicate の設定より優先されます。
この設定には 3 つの設定可能な値があります:
- disable —
INSERT INTOクエリの重複排除を無効にします。 - enable —
INSERT INTOクエリの重複排除を有効にします。 - backward_compatible_choice — 対象の insert タイプで
insert_deduplicateまたはasync_insert_deduplicateが有効な場合、重複排除を有効にします。
INSERT SELECT クエリでは、まず deduplicate_insert_select が参照されます。重複排除には、宛先テーブルが重複排除ログを保持していることも必要です。replicated_deduplication_window および non_replicated_deduplication_window を参照してください。
deduplicate_insert_select
INSERT SELECT のブロックの重複排除 (Replicated* テーブル向け) を有効または無効にします。
INSERT SELECT クエリでは、この設定は deduplicate_insert より先に参照されます。
SELECT は、ORDER BY ALL を含み、そのパイプラインが単一ストリームで終わる場合に安定しています。空でない insert_deduplication_token は、安定性と同等の代替手段です。
この設定には 4 つの設定可能な値があります。
- 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 の結果が安定していない場合はメッセージがログに記録されますが、クエリは重複排除を有効にしたまま実行されます。このオプションは後方互換性のためのものです。予期しない結果につながる可能性があるため、代わりに他のオプションを使用することを検討してください。