Estas configurações estão disponíveis em system.settings e são geradas automaticamente a partir do código-fonte.
insert_allow_materialized_columns
Se a configuração estiver habilitada, permite o uso de colunas materializadas em INSERT.
insert_deduplicate
Habilita ou desabilita a desduplicação de blocos de INSERT (para tabelas Replicated*).
Essa configuração só tem efeito quando deduplicate_insert está definido como backward_compatible_choice.
Valores possíveis:
- 0 — Desabilitado.
- 1 — Habilitado.
Por padrão, os blocos inseridos em tabelas replicadas pela instrução INSERT são desduplicados (consulte Replicação de dados).
Por padrão, em tabelas replicadas, apenas os 100 blocos mais recentes de cada partição são desduplicados (consulte replicated_deduplication_window, replicated_deduplication_window_seconds).
Para tabelas não replicadas, consulte non_replicated_deduplication_window.
insert_deduplication_token
Essa configuração permite que o usuário defina sua própria lógica de desduplicação no MergeTree/ReplicatedMergeTree. Por exemplo, ao fornecer um valor único para a configuração em cada instrução INSERT, o usuário pode evitar que os mesmos dados inseridos sejam desduplicados.
Valores possíveis:
- Qualquer string
insert_deduplication_token é usado para desduplicação apenas quando não está vazio.
Para tabelas replicadas, por padrão, apenas as 100 inserções mais recentes de cada partição são desduplicadas (consulte replicated_deduplication_window, replicated_deduplication_window_seconds). Para tabelas não replicadas, consulte non_replicated_deduplication_window.
Exemplo:
CREATE TABLE test_table
( A Int64 )
ENGINE = MergeTree
ORDER BY A
SETTINGS non_replicated_deduplication_window = 100;
INSERT INTO test_table SETTINGS insert_deduplication_token = 'test' VALUES (1);
-- the next insert won't be deduplicated because insert_deduplication_token is different
INSERT INTO test_table SETTINGS insert_deduplication_token = 'test1' VALUES (1);
-- the next insert will be deduplicated because insert_deduplication_token
-- is the same as one of the previous
INSERT INTO test_table SETTINGS insert_deduplication_token = 'test' VALUES (2);
SELECT * FROM test_table
┌insert_null_as_default
Habilita ou desabilita a inserção de valores padrão em vez de NULL em colunas com tipo de dado não Nullable.
Se o tipo da coluna não for Nullable e essa configuração estiver desabilitada, a inserção de NULL causará uma exceção. Se o tipo da coluna for Nullable, os valores NULL serão inseridos como estão, independentemente dessa configuração.
Essa configuração se aplica a consultas INSERT … SELECT. Observe que subconsultas SELECT podem ser concatenadas com a cláusula UNION ALL.
Valores possíveis:
- 0 — Inserir
NULLem uma coluna não Nullable causa uma exceção. - 1 — O valor padrão da coluna é inserido em vez de
NULL.
insert_shard_id
Se não for 0, especifica o shard da tabela Distributed no qual os dados serão inseridos sincronamente.
Se o valor de insert_shard_id estiver incorreto, o servidor lançará uma exceção.
Para obter o número de shards em requested_cluster, você pode verificar a configuração do servidor ou usar esta consulta:
SELECT uniq(shard_num) FROM system.clusters WHERE cluster = 'requested_cluster';Valores possíveis:
- 0 — Desabilitado.
- Qualquer número de
1atéshards_numda tabela Distributed correspondente.
Exemplo
Consulta:
CREATE TABLE x AS system.numbers ENGINE = MergeTree ORDER BY number;
CREATE TABLE x_dist AS x ENGINE = Distributed('test_cluster_two_shards_localhost', currentDatabase(), x);
INSERT INTO x_dist SELECT * FROM numbers(5) SETTINGS insert_shard_id = 1;
SELECT * FROM x_dist ORDER BY number ASC;Resultado:
┌─number─┐
│ 0 │
│ 0 │
│ 1 │
│ 1 │
│ 2 │
│ 2 │
│ 3 │
│ 3 │
│ 4 │
│ 4 │
└────────┘