Estos ajustes están disponibles en system.settings y se generan automáticamente a partir del código fuente.
insert_allow_materialized_columns
Si esta configuración está habilitada, permite usar columnas materializadas en INSERT.
insert_deduplicate
Activa o desactiva la deduplicación de bloques de INSERT (para tablas Replicated*).
Esta configuración solo surte efecto cuando deduplicate_insert se establece en backward_compatible_choice.
Valores posibles:
- 0 — Desactivado.
- 1 — Activado.
De forma predeterminada, los bloques insertados en tablas replicadas mediante la instrucción INSERT se deduplican (consulte Replicación de datos).
En las tablas replicadas, de forma predeterminada solo se deduplican los 100 bloques más recientes de cada partición (consulte replicated_deduplication_window, replicated_deduplication_window_seconds).
Para las tablas no replicadas, consulte non_replicated_deduplication_window.
insert_deduplication_token
Esta configuración permite al usuario definir su propia semántica de deduplicación en MergeTree/ReplicatedMergeTree. Por ejemplo, al proporcionar un valor único para esta configuración en cada instrucción INSERT, el usuario puede evitar que se deduplicen los mismos datos insertados.
Valores posibles:
- Cualquier cadena
insert_deduplication_token se usa para la deduplicación solo cuando no está vacío.
En las tablas replicadas, de forma predeterminada, solo se deduplican las 100 inserciones más recientes de cada partición (consulte replicated_deduplication_window, replicated_deduplication_window_seconds). Para las tablas no replicadas, consulte non_replicated_deduplication_window.
Ejemplo:
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 o deshabilita la inserción de valores predeterminados en lugar de NULL en columnas con un tipo de dato no Nullable.
Si el tipo de la columna no es Nullable y esta configuración está deshabilitada, insertar NULL provoca una excepción. Si el tipo de la columna es Nullable, los valores NULL se insertan sin cambios, independientemente de esta configuración.
Esta configuración se aplica a las consultas INSERT … SELECT. Ten en cuenta que las subconsultas SELECT pueden concatenarse con la cláusula UNION ALL.
Valores posibles:
- 0 — Insertar
NULLen una columna no Nullable provoca una excepción. - 1 — Se inserta el valor predeterminado de la columna en lugar de
NULL.
insert_shard_id
Si no es 0, especifica el segmento de la tabla Distributed en el que se insertarán los datos de forma síncrona.
Si el valor de insert_shard_id es incorrecto, el servidor generará una excepción.
Para obtener el número de segmentos en requested_cluster, puedes consultar la configuración del servidor o usar esta consulta:
SELECT uniq(shard_num) FROM system.clusters WHERE cluster = 'requested_cluster';Valores posibles:
- 0 — Desactivado.
- Cualquier número entre
1yshards_numde la tabla Distributed correspondiente.
Ejemplo
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 │
└────────┘