adaptive_write_buffer_initial_size
add_implicit_sign_column_constraint_for_collapsing_engine
sign de uma tabela CollapsingMergeTree
ou VersionedCollapsingMergeTree para permitir somente valores válidos (1 e -1).
alter_column_secondary_index_mode
ALTER que modificam colunas cobertas por índices secundários devem ser permitidos e qual ação deve ser tomada caso
sejam permitidos. Por padrão, esses comandos ALTER são permitidos e os índices são reconstruídos.
Valores possíveis:
rebuild(padrão): Reconstrói todos os índices secundários afetados pela coluna no comandoALTER.throw: Impede qualquerALTERde colunas cobertas por índices secundários explícitos, lançando uma exceção. Índices implícitos não estão sujeitos a essa restrição e serão reconstruídos.drop: Remove os índices secundários dependentes. As novas partes não terão esses índices, sendo necessário usarMATERIALIZE INDEXpara recriá-los.compatibility: Corresponde ao comportamento original:throwemALTER ... MODIFY COLUMNerebuildemALTER ... UPDATE/DELETE.ignore: Destinado a uso especializado. Deixa os índices em um estado inconsistente, o que pode permitir resultados de consulta incorretos.
apply_patches_on_merge
assign_part_uuids
auto_statistics_types
minmax está obsoleto: ele é um subconjunto de basic, que deve ser usado em seu 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 consome o contador num_defaults persistido (colunas Nullable
também precisam de nullable_serialization_version = 'allow_sparse').
Deixá-la desabilitada mantém inserções/mesclagens tão rápidas quanto antes; habilitá-la
adiciona uma passagem O(rows) por coluna apta à serialização esparsa.
deduplicate_merge_projection_mode
OPTIMIZE DEDUPLICATE,
mas tem efeito sobre todos os membros da família MergeTree. Semelhante à
opção lightweight_mutation_projection_mode, ela também é em nível de parte.
Possíveis valores:
ignorethrowdroprebuild
deduplication_hashes_cache_update_wait_ms
deduplication_hashes para uma
versão mais recente antes de verificá-lo novamente em busca de blocos já inseridos. O cache espelha o
diretório deduplication_hashes no ClickHouse Keeper para que os inserts possam detectar duplicatas sem precisar de uma
ida e volta ao Keeper.
default_compression_codec
- Codec de compressão definido para a coluna na declaração da tabela
- Codec de compressão definido em
default_compression_codec(esta configuração) - Codec de compressão padrão definido nas configurações de
compressionValor padrão: uma string vazia (não definido).
disco
dynamic_serialization_version
v1v2v3
enforce_index_structure_match_on_partition_manipulation
ATTACH/MOVE/REPLACE PARTITION), os índices e as projeções deverão ser
idênticos entre as tabelas de origem e de destino. Caso contrário, a tabela de destino
poderá ter um superconjunto dos índices e das projeções da tabela de origem.
execute_merges_on_single_replica_time_threshold
- Qualquer número inteiro positivo.
finished_mutations_to_keep
force_read_through_cache_for_merges
initialization_retry_period
kill_threads
lightweight_mutation_projection_mode
DELETE não funciona para tabelas com
projeções. Isso ocorre porque linhas em uma projeção podem ser afetadas por uma
operação DELETE. Por isso, o valor padrão é throw. No entanto, esta
opção pode alterar esse comportamento. Com o valor drop ou rebuild,
as exclusões funcionarão com projeções. drop excluirá a projeção, então isso
pode ser rápido na consulta atual, já que a projeção é excluída, mas lento em
consultas futuras, pois não haverá projeção anexada. rebuild reconstruirá a
projeção, o que pode afetar o desempenho da consulta atual, mas
pode acelerar consultas futuras. O ponto positivo é que essas opções
funcionarão apenas no nível da parte, o que significa que projeções na parte que não
forem afetadas permanecerão intactas, em vez de acionar qualquer ação como
drop ou rebuild.
Valores possíveis:
throwdroprebuild
load_existing_rows_count_for_old_parts
truefalse
- configuração exclude_deleted_rows_for_part_size_in_merge
lock_acquire_timeout_for_background_operations
mutation_workload
workload para
as mutações em segundo plano desta tabela. Se não for especificado (string vazia), a
configuração do servidor mutation_workload será usada.
Veja também
non_replicated_deduplication_window
- Qualquer inteiro positivo.
0(desabilita a desduplicação).
notify_newest_block_number
nullable_serialization_version
Nullable(T).
Valores possíveis:
-
basic — Usa a serialização padrão para
Nullable(T). -
allow_sparse — Permite que
Nullable(T)use codificação esparsa.
object_serialization_version
v1v2v3
v3 oferece suporte à alteração da versão de serialização dos dados compartilhados.
old_parts_lifetime
- Qualquer inteiro positivo.
old_parts_lifetime segundos.
As partes inativas são removidas se não estiverem sendo usadas por queries em execução, ou seja, se
o refcount da parte for 1.
fsync não é chamado para novas partes, portanto, por algum tempo, elas existem apenas
na RAM do servidor (cache do SO). Se o servidor reiniciar inesperadamente, essas novas
partes podem ser perdidas ou corrompidas. Para proteger os dados, as partes inativas não são excluídas
imediatamente.
Durante a inicialização, o ClickHouse verifica a integridade das partes. Se a parte
mesclada estiver corrompida, o ClickHouse devolve as partes inativas à lista de partes ativas
e depois as mescla novamente. Em seguida, a parte corrompida é renomeada (o prefixo broken_
é adicionado) e movida para a pasta detached. Se a parte mesclada não estiver
corrompida, então as partes inativas originais são renomeadas (o prefixo ignored_
é adicionado) e movidas para a pasta detached.
O valor padrão de dirty_expire_centisecs (uma configuração do kernel Linux) é de 30
segundos (o tempo máximo em que os dados gravados ficam armazenados apenas na RAM), mas, sob
carga intensa no sistema de disco, os dados podem ser gravados bem mais tarde. Experimentalmente,
foi escolhido um valor de 480 segundos para old_parts_lifetime, período durante o qual se garante
que uma nova parte seja gravada em disco.
optimize_row_order
DateTime64, se beneficiem dessa configuração.
packed_skip_index_max_bytes
skp_idx.packed
por parte, em vez de ser gravado como um arquivo separado skp_idx_<name>.idx2 / .mrk2.
Subfluxos maiores que isso permanecem no layout legado por arquivo. A decisão é
tomada independentemente para cada subfluxo no momento da gravação, portanto uma única parte pode ter índices pequenos
(por exemplo, minmax) empacotados e grandes (por exemplo, um bloom_filter pesado) em arquivos separados. Defina 0
para desabilitar totalmente o empacotamento (padrão).
Cada subfluxo de índice de salto consiste, na prática, em um arquivo de dados e um arquivo de marcas; ambos ficam em buffer
na memória até o limite antes que a decisão de spill seja tomada. Portanto, o pico de memória durante
a gravação escala com 2 * packed_skip_index_max_bytes * (number of substreams that stay below the threshold).
Índices de texto completo não são compatíveis com esta configuração e nunca são empacotados.
O empacotamento reduz a pressão sobre os inodes quando muitos índices de salto são definidos em uma tabela (por exemplo,
com add_minmax_index_for_numeric_columns).
O formato em disco é autodescritivo: os leitores detectam skp_idx.packed e atendem os
subfluxos empacotados dentro dele de forma transparente. Alterar esta configuração afeta apenas as partes
gravadas a partir daí; as partes existentes mantêm o layout que tinham no momento da gravação.
part_minmax_index_columns
partition_key_only— somente as colunas da chave de partição são rastreadas.with_block_number_offset— colunas da chave de partição, além das colunas virtuais persistidas_block_numbere_block_offset. Permite a poda em nível de parte com base nessas colunas.
propagate_types_serialization_versions_to_nested_types
ratio_of_defaults_for_sparse_serialization
ratio_of_defaults_for_sparse_serialization
com um valor menor que 1.0. Se o valor for maior ou igual a 1.0,
as colunas sempre serão gravadas usando a serialização Full normal.
Valores possíveis:
- Float entre
0e1para habilitar a serialização esparsa 1.0(ou maior) se você não quiser usar serialização esparsa
s na tabela a seguir é uma string vazia em 95% das
linhas. Em my_regular_table, não usamos serialização esparsa, e em
my_sparse_table, definimos ratio_of_defaults_for_sparse_serialization como
0.95:
s em my_sparse_table ocupa menos espaço em disco:
serialization_kind da tabela system.parts_columns:
s foram armazenadas com a serialização esparsa:
reduce_blocking_parts_sleep_ms
replace_long_file_name_to_hash
replicated_can_become_leader
true, as réplicas de tabelas replicadas neste nó tentarão assumir
a liderança.
Valores possíveis:
truefalse
search_orphaned_parts_disks
- any - o escopo não é limitado.
- local - o escopo é limitado aos disks locais.
- none - escopo vazio, não pesquisar
serialization_info_version
serialization.json.
Essa configuração é necessária para garantir compatibilidade durante upgrades do cluster.
Valores possíveis:
basic- Formato básico.with_types- Formato com o campo adicionaltypes_serialization_versions, permitindo versões de serialização por tipo. Isso faz com que configurações comostring_serialization_versionpassem a ter efeito.
basic para que os novos servidores produzam
partes de dados compatíveis com os servidores antigos. Após a conclusão do upgrade,
mude para WITH_TYPES para habilitar versões de serialização por tipo.
Quando habilitada (padrão), colunas Array com nomes pontilhados que compartilham um prefixo em comum (por exemplo, n.a e n.b)
são tratadas como parte de uma estrutura Nested: compartilham um único arquivo de offsets em disco (por exemplo, n.size0),
e é verificado durante o INSERT se seus tamanhos de array são iguais.
Quando desabilitada, cada coluna Array recebe seu próprio arquivo de offset independente, nomes pontilhados não têm semântica
especial, e uma coluna escalar pode coexistir com colunas Array pontilhadas que compartilham o mesmo prefixo
(por exemplo, n UInt32 ao lado de n.a Array(String)). Essa configuração é imutável após a criação da tabela.
simultaneous_parts_removal_limit
simultaneous_parts_removal_limit partes em uma única iteração.
simultaneous_parts_removal_limit definido como 0 significa sem limite.
storage_policy
string_serialization_version
String de nível superior.
Esta configuração só tem efeito quando serialization_info_version está definido como “with_types”.
Quando definido como with_size_stream, as colunas String de nível superior são serializadas com uma
subcoluna .size separada para armazenar os comprimentos das strings, em vez de embuti-los inline. Isso permite subcolunas
.size reais e pode melhorar a eficiência da compressão.
Tipos String aninhados (por exemplo, dentro de Nullable, LowCardinality, Array ou Map)
não são afetados, exceto quando aparecem em uma Tuple.
Possíveis valores:
single_stream— Use o formato de serialização padrão com tamanhos inline.with_size_stream— Use um fluxo separado de tamanhos para colunasStringde nível superior.
temporary_directories_lifetime
try_fetch_recompressed_part_timeout
- Qualquer inteiro positivo.
ttl_only_drop_parts
TTL.
Quando ttl_only_drop_parts está desabilitado (por padrão), somente as linhas que
expiraram com base em suas configurações de TTL são removidas.
Quando ttl_only_drop_parts está habilitado, a parte inteira é removida se todas as
linhas dessa parte tiverem expirado de acordo com suas configurações de TTL.
wait_for_unique_parts_send_before_shutdown_ms
zookeeper_session_expiration_check_period
- Qualquer número inteiro positivo.