Introdução ao mecanismo ClickHouse

1. Introdução básica

  ClickHouse fornece um mecanismo avançado como o MySQL; diferentes mecanismos representam diferentes tipos, como quais recursos ele possui, como os dados são armazenados e como são carregados.

Em segundo lugar, o mecanismo de banco de dados

2.1 Ordinário

  O mecanismo padrão, este banco de dados pode usar qualquer mecanismo de tabela.

2.2 Dicionário

  Motor de dicionário, este banco de dados criará tabelas de dados para todos os dicionários de dados.

2.3 Memória

  Mecanismo na memória, as tabelas neste banco de dados são armazenadas apenas na memória e serão perdidas após a reinicialização.

2.4 Preguiçoso

  Motor de log, este banco de dados só pode usar o motor de tabela da série Log.

2.5 MySQL

  Motor MySQL, este banco de dados pode extrair automaticamente dados MySQL remotos ( semelhante ao dblink da Oracle, que pode ler e escrever tabelas remotas )

Três, motor de tabela de dados

3.1 Série MergreTree

  O mecanismo é o mecanismo de armazenamento oficial que tem as funções de índice de chave primária, partição de dados, cópia de dados, amostragem de dados, exclusão e modificação. ReplacingMergeTree tem função de desduplicação, SummingMergeTree tem função de resumo e soma, AggregatingMergeTree tem função de agregação e CollapsingMergeTree tem Função de dobrar e deletar, VersionedCollapsingMergeTree tem função de dobrar versão, GraphiteMergeTree tem função de resumo de compressão. Com base neles, Replicado e Distribuído também podem ser sobrepostos.

3.1.1 ReplacingMergeTree

1. Use a ordem por chave de classificação como a única chave para julgar dados duplicados;
2. A lógica para excluir dados duplicados só será acionada quando as partições forem mescladas;
3. Exclua dados em unidades de partições de dados. Quando as partições são mescladas, os dados duplicados na mesma partição serão excluídos e os dados duplicados entre as diferentes partições não serão excluídos;
4. Ao realizar a desduplicação de dados, porque os dados na partição foram classificados com base na ordem de, então Pode encontrar os dados duplicados adjacentes.
Existem duas estratégias de desduplicação de dados:

  • Se o número da versão não for definido, a última linha no mesmo conjunto de dados repetidos será retida.
  • Se o número da versão estiver definido, mantenha a linha com o maior valor do campo ver no mesmo conjunto de dados repetidos

3.1.2 SummingMergeTree

1. Use a ordem por chave de classificação como a chave de condição para os dados agregados
2. A lógica do cálculo de agregação só será acionada quando as partições forem mescladas
3. Os dados são agregados em unidades de partições de dados. Quando as partições são mescladas, os dados com a mesma chave de agregação na mesma partição de dados serão mesclados e resumidos, enquanto os dados entre as diferentes partições não serão resumidos.
4. Se colunas (campos de tipo numérico de chave não primária) forem especificadas quando o mecanismo for definido, a soma resumirá esses campos de coluna; se não for especificado, agregará todos os campos numéricos de chave não primária.
5. Quando os dados são resumidos, como os dados na partição foram classificados com base na ordem de, é possível encontrar dados adjacentes com a mesma chave de agregação.
6. Ao resumir os dados, várias linhas de dados com a mesma chave de agregação na mesma partição serão mescladas em uma linha. O campo de resumo será calculado pela soma; para os campos não resumidos, será usado o valor da primeira linha de dados.
7. Suporta estrutura aninhada, mas o nome do campo deve terminar com o sufixo do mapa. No tipo aninhado, o primeiro campo é a chave de agregação por padrão. Exceto para o primeiro campo, qualquer campo cujo nome termine com um sufixo de chave, id ou tipo será combinado com o primeiro campo para formar uma chave composta.

3.1.3 AggregatingMergeTree

1. Use a ordem por chave de classificação como a chave de condição dos dados agregados
2. Use o tipo de campo AggregateFunction para definir o tipo de função de agregação e o campo de agregação.
3. A lógica do cálculo de agregação é acionada apenas
quando as partições são mescladas 4. Os dados são agregados em unidades de partições de dados. Quando as partições são mescladas, os dados com a mesma chave de agregação na mesma partição são mesclados e calculados. Os dados não serão calculados.
5. Ao realizar o cálculo de dados, como os dados na partição foram classificados com base na ordem de, é possível encontrar dados adjacentes com a mesma chave de agregação.
6. Ao agregar dados, várias linhas de dados com a mesma chave de agregação na mesma partição serão mescladas em uma linha. Para campos de chave não primária e não AggregateFunction, o valor da primeira linha de dados será usado.
7. O campo AggregateFunction usa armazenamento binário. Ao gravar dados, você precisa chamar a função State; ao consultar dados, você precisa chamar a função Merge correspondente . Entre eles, * indica a função de agregação usada na definição
8. AggregateMergeTree é geralmente usado como o mecanismo de tabela da visão materializada e usado com MergeTree comum.

3.1.4 CollapsingMergeTree (VersionedCollapsingMergeTree)

  CollapsingMergeTree (VersionedCollapsingMergeTree) exclui (recolhe) de forma assíncrona essas linhas emparelhadas que têm os mesmos valores de todos os campos, exceto que a coluna específica Sign tem valores de 1 e -1. Nenhuma guilda emparelhada será mantida. O mecanismo pode reduzir significativamente o armazenamento e melhorar a eficiência das consultas SELECT.

3.1.5 GraphiteMergeTree

  Este mecanismo é usado para reduzir e resumir os dados do Graphite.

3.2 Log série

1. Os dados são gravados no disco anexando sequencialmente
2. Excluir e atualizar
não são suportados 3. Índice
não é suportado 4. Gravação atômica não é suportada
5. Inserir consulta de bloqueio

3.2.1 TinyLog

  Não suporta leitura simultânea, baixo desempenho, formato simples, adequado para armazenar dados intermediários

3.2.2 Log

  Suporta leitura simultânea, cada coluna é armazenada em um arquivo separado, com melhor desempenho

3.2.3 StripeLog

  Suporta leitura simultânea, todas as colunas são armazenadas em um arquivo, o desempenho é melhor

3.3 Série de integração

  Esta série é usada para integrar fontes de dados externas.

3.3.1 HDFS

3.3.2 MySQL

3.3.3 Kafka

3.3.4 RabbitMQ

3.3.5 JDBC

3.3.6 ODBC

3.4 Série especial

  

3.4.1 Memória

  Os dados são armazenados na memória, os dados são perdidos após a reinicialização, a leitura e a gravação não são bloqueadas e os índices não são suportados.

3.4.2 Unir

  Combine várias tabelas físicas com a mesma estrutura em uma tabela lógica no mesmo servidor.

3.4.3 Distribuído

  Combine várias tabelas físicas com a mesma estrutura em uma tabela lógica em servidores diferentes.

3.4.4 Dicionário 、 Arquivo 、 Nulo 、 Definir 、 Juntar 、 URL 、 Exibir 、 MaterializedView 、 Buffer 、 Dados externos 、 GenerateRando

Acho que você gosta

Origin blog.csdn.net/qq_42979842/article/details/108939841
Recomendado
Clasificación