adaptive_write_buffer_initial_size
add_implicit_sign_column_constraint_for_collapsing_engine
sign de una tabla CollapsingMergeTree
o VersionedCollapsingMergeTree para permitir únicamente valores válidos (1 y -1).
alter_column_secondary_index_mode
ALTER que modifican columnas cubiertas por índices secundarios y qué acción debe realizarse si se permiten. De forma predeterminada, estos comandos ALTER están permitidos y los índices se reconstruyen.
Valores posibles:
rebuild(predeterminado): Reconstruye cualquier índice secundario afectado por la columna en el comandoALTER.throw: Impide cualquierALTERde columnas cubiertas por índices secundarios explícitos lanzando una excepción. Los índices implícitos quedan excluidos de esta restricción y se reconstruirán.drop: Elimina los índices secundarios dependientes. Las nuevas partes no tendrán los índices, por lo que será necesario ejecutarMATERIALIZE INDEXpara recrearlos.compatibility: Mantiene el comportamiento original:throwenALTER ... MODIFY COLUMNyrebuildenALTER ... UPDATE/DELETE.ignore: Pensado para uso experto. Dejará los índices en un estado incoherente, lo que puede dar lugar a resultados de consulta incorrectos.
apply_patches_on_merge
assign_part_uuids
auto_statistics_types
minmax está obsoleto: es un subconjunto de basic, que debe usarse en su lugar.
background_task_preferred_step_execution_time_ms
clean_deleted_rows
clone_replica_zookeeper_create_get_part_batch_size
compatibility_allow_sampling_expression_not_in_primary_key
compute_exact_num_defaults_for_sparse_columns
optimize_trivial_count_with_sparsity_filter,
que consume el contador persistido num_defaults (las columnas Nullable
además necesitan nullable_serialization_version = 'allow_sparse').
Dejarlo deshabilitado mantiene las inserciones/fusiones tan rápidas como antes; al habilitarlo
se añade una pasada O(rows) por cada columna apta para dispersión.
deduplicate_merge_projection_mode
ignore es solo para
compatibilidad y puede dar lugar a respuestas incorrectas. En caso contrario, si se permite,
define qué acción realizar al fusionar proyecciones: drop o rebuild. Por lo tanto, el
MergeTree clásico ignorará esta configuración. También controla OPTIMIZE DEDUPLICATE,
pero afecta a todos los miembros de la familia MergeTree. Al igual que la
opción lightweight_mutation_projection_mode, también es a nivel de parte.
Posibles valores:
ignorethrowdroprebuild
deduplication_hashes_cache_update_wait_ms
deduplication_hashes se actualice a una
versión más reciente antes de volver a comprobar si ya contiene bloques insertados. La caché replica el
directorio deduplication_hashes en ClickHouse Keeper para que las inserciones puedan detectar duplicados sin una
ida y vuelta a Keeper.
default_compression_codec
- Códec de compresión definido para la columna en la declaración de la tabla
- Códec de compresión definido en
default_compression_codec(esta configuración) - Códec de compresión predeterminado definido en la configuración
compressionValor predeterminado: una cadena vacía (no definido).
disco
dynamic_serialization_version
v1v2v3
enforce_index_structure_match_on_partition_manipulation
ATTACH/MOVE/REPLACE PARTITION), los índices y las proyecciones deben ser
idénticos entre las tablas de origen y destino. De lo contrario, la tabla de destino
puede tener un superconjunto de los índices y proyecciones de la tabla de origen.
execute_merges_on_single_replica_time_threshold
- Cualquier entero positivo.
finished_mutations_to_keep
force_read_through_cache_for_merges
initialization_retry_period
kill_threads
lightweight_mutation_projection_mode
DELETE no funciona en tablas con
proyecciones. Esto se debe a que una operación DELETE puede afectar a las filas de una
proyección. Por tanto, el valor predeterminado es throw. Sin embargo, esta
opción puede cambiar ese comportamiento. Con el valor drop o rebuild,
las eliminaciones funcionarán con proyecciones. drop eliminaría la proyección, por lo que
podría ser rápido para la consulta actual, ya que la proyección se elimina, pero lento en
consultas futuras, al no haber ninguna proyección disponible. rebuild reconstruiría la
proyección, lo que podría afectar al rendimiento de la consulta actual, pero
podría acelerar las consultas futuras. Lo bueno es que estas opciones
solo funcionarían a nivel de parte, lo que significa que las proyecciones de la parte que no
se vea afectada permanecerán intactas en lugar de desencadenar acciones como
drop o rebuild.
Valores posibles:
throwdroprebuild
load_existing_rows_count_for_old_parts
truefalse
- la configuración exclude_deleted_rows_for_part_size_in_merge
lock_acquire_timeout_for_background_operations
mutation_workload
workload para las
mutaciones en segundo plano de esta tabla. Si no se especifica (cadena vacía), se usa en su lugar la
configuración del servidor mutation_workload.
Véase también
non_replicated_deduplication_window
- Cualquier entero positivo.
0(desactiva la deduplicación).
notify_newest_block_number
nullable_serialization_version
Nullable(T).
Valores posibles:
-
basic — Usa la serialización estándar para
Nullable(T). -
allow_sparse — Permite que
Nullable(T)use codificación dispersa.
object_serialization_version
v1v2v3
v3 permite cambiar la versión de serialización de los datos compartidos.
old_parts_lifetime
- Cualquier entero positivo.
old_parts_lifetime segundos.
Las partes inactivas se eliminan si no están siendo utilizadas por las consultas actuales, es decir, si
el refcount de la parte es 1.
No se llama a fsync para las partes nuevas, por lo que durante cierto tiempo las partes nuevas existen solo
en la RAM del servidor (caché del SO). Si el servidor se reinicia inesperadamente, las partes nuevas
pueden perderse o dañarse. Para proteger los datos, las partes inactivas no se eliminan
de inmediato.
Durante el inicio, ClickHouse comprueba la integridad de las partes. Si la parte fusionada
está dañada, ClickHouse devuelve las partes inactivas a la lista de partes activas
y más tarde las vuelve a fusionar. Entonces, la parte dañada se renombra (se añade el prefijo broken_)
y se mueve a la carpeta detached. Si la parte fusionada no está
dañada, las partes inactivas originales se renombran (se añade el prefijo ignored_)
y se mueven a la carpeta detached.
El valor predeterminado de dirty_expire_centisecs (un ajuste del kernel de Linux) es de 30
segundos (el tiempo máximo durante el que los datos escritos se almacenan solo en RAM), pero con
cargas elevadas en el sistema de disco, los datos pueden escribirse mucho más tarde. Según pruebas realizadas,
se eligió un valor de 480 segundos para old_parts_lifetime, intervalo durante el cual se
garantiza que una parte nueva se escriba en disco.
optimize_row_order
DateTime64, se beneficien de esta configuración.
packed_skip_index_max_bytes
skp_idx.packed por parte, en lugar de escribirse como un archivo
independiente skp_idx_<name>.idx2 / .mrk2. Los subflujos más grandes permanecen en el
formato heredado por archivo. La decisión se toma de forma independiente para cada subflujo
en el momento de la escritura, por lo que una sola parte puede tener índices pequeños
(por ejemplo, minmax) empaquetados e índices grandes (por ejemplo, un bloom_filter
pesado) por archivo. Establézcalo en 0 para desactivar por completo el empaquetado (valor predeterminado).
Cada subflujo de índice de omisión consta en realidad de un archivo de datos y un archivo
de marcas; ambos se almacenan en búfer en memoria hasta el umbral antes de tomar la
decisión de volcado a disco. Por tanto, el pico de memoria durante la escritura escala con
2 * packed_skip_index_max_bytes * (number of substreams that stay below the threshold).
Los índices de texto completo no son compatibles con esta configuración y nunca se empaquetan.
El empaquetado reduce la presión sobre los inodos cuando hay muchos índices de omisión
definidos en una tabla (por ejemplo, con add_minmax_index_for_numeric_columns).
El formato en disco es autodescriptivo: los lectores detectan skp_idx.packed y atienden
de forma transparente los subflujos empaquetados desde su interior. Cambiar esta
configuración afecta solo a las partes nuevas que se escriban; las partes existentes conservan el
formato que tenían en el momento de la escritura.
part_minmax_index_columns
partition_key_only— solo se rastrean las columnas de la clave de partición.with_block_number_offset— columnas de la clave de partición, además de las columnas virtuales persistidas_block_numbery_block_offset. Habilita la poda a nivel de parte mediante estas columnas.
propagate_types_serialization_versions_to_nested_types
ratio_of_defaults_for_sparse_serialization
ratio_of_defaults_for_sparse_serialization
con un valor inferior a 1.0. Si el valor es mayor o igual que 1.0,
las columnas siempre se escribirán usando la serialización completa normal.
Valores posibles:
- Float entre
0y1para habilitar la serialización dispersa 1.0(o superior) si no desea usar la serialización dispersa
s de la siguiente tabla es una cadena vacía en el 95 % de
las filas. En my_regular_table no usamos serialización dispersa, y en
my_sparse_table establecemos ratio_of_defaults_for_sparse_serialization en
0.95:
s de my_sparse_table ocupa menos espacio de almacenamiento en disco:
serialization_kind de la tabla system.parts_columns:
s se almacenaron con la serialización dispersa:
reduce_blocking_parts_sleep_ms
replace_long_file_name_to_hash
replicated_can_become_leader
true, las réplicas de las tablas replicadas de este nodo intentarán asumir
el liderazgo.
Valores posibles:
truefalse
search_orphaned_parts_disks
- any - el alcance no está limitado.
- local - el alcance se limita a los discos locales.
- none - alcance vacío, no buscar
serialization_info_version
serialization.json.
Esta configuración es necesaria para garantizar la compatibilidad durante las actualizaciones del clúster.
Valores posibles:
basic- Formato básico.with_types- Formato con el campo adicionaltypes_serialization_versions, que permite versiones de serialización por tipo. Esto hace que configuraciones comostring_serialization_versiontengan efecto.
basic para que los servidores nuevos produzcan
partes de datos compatibles con los servidores antiguos. Cuando la actualización se complete,
cámbialo a WITH_TYPES para habilitar versiones de serialización por tipo.
Cuando está habilitado (valor predeterminado), las columnas Array con nombres con puntos que comparten un prefijo común (p. ej., n.a y n.b)
se tratan como parte de una estructura Nested: comparten un único archivo de desplazamiento en disco (p. ej., n.size0),
y se valida que sus tamaños de array sean iguales durante INSERT.
Cuando está deshabilitado, cada columna Array tiene su propio archivo de desplazamiento independiente, los nombres con puntos no tienen ninguna semántica
especial, y una columna escalar puede coexistir con columnas Array con puntos que comparten el mismo prefijo
(p. ej., n UInt32 junto con n.a Array(String)). Esta configuración es inmutable después de crear la tabla.
simultaneous_parts_removal_limit
simultaneous_parts_removal_limit partes en una sola iteración.
Si simultaneous_parts_removal_limit se establece en 0, significa que no hay límite.
storage_policy
string_serialization_version
String de nivel superior.
Esta configuración solo surte efecto cuando serialization_info_version está configurado como “with_types”.
Cuando se configura como with_size_stream, las columnas String de nivel superior se serializan con una
subcolumna .size independiente que almacena las longitudes de las cadenas, en lugar de incluirlas en línea. Esto permite subcolumnas
.size reales y puede mejorar la eficiencia de compresión.
Los tipos String anidados (por ejemplo, dentro de Nullable, LowCardinality, Array o Map)
no se ven afectados, excepto cuando aparecen en una Tuple.
Valores posibles:
single_stream— Usa el formato de serialización estándar con tamaños en línea.with_size_stream— Usa un flujo de tamaños independiente para las columnasStringde nivel superior.
temporary_directories_lifetime
try_fetch_recompressed_part_timeout
- Cualquier entero positivo.
ttl_only_drop_parts
TTL.
Cuando ttl_only_drop_parts está deshabilitado (de forma predeterminada), solo se eliminan las filas que han
caducado según su configuración de TTL.
Cuando ttl_only_drop_parts está habilitado, se elimina la parte completa si todas las
filas de esa parte han caducado según su configuración de TTL.
wait_for_unique_parts_send_before_shutdown_ms
zookeeper_session_expiration_check_period
- Cualquier entero positivo.