> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Documentação para Motores de Tabela

# Motores de Tabela

O motor de tabela (tipo de tabela) determina:

* Como e onde os dados são armazenados, para onde gravá-los e de onde lê-los.
* Quais consultas são suportadas e como.
* O acesso concorrente aos dados.
* O uso de índices, se houver.
* Se a execução multithread de requisições é possível.
* Os parâmetros de replicação de dados.

<div id="engine-families">
  ## Famílias de motores
</div>

<div id="mergetree">
  ### MergeTree
</div>

Os motores de tabela mais universais e funcionais para tarefas de alta carga. A característica comum desses motores é a inserção rápida de dados, seguida pelo processamento de dados em segundo plano. Os motores da família `MergeTree` oferecem suporte à replicação de dados (com versões [Replicated\*](/docs/pt-BR/reference/engines/table-engines/mergetree-family/replication) dos motores), particionamento, índices secundários de data-skipping e outros recursos não disponíveis em outros motores.

Motores da família:

| Motores da família MergeTree                                                                                              |
| ------------------------------------------------------------------------------------------------------------------------- |
| [Visão geral da família MergeTree](/docs/pt-BR/reference/engines/table-engines/mergetree-family/index)                         |
| [MergeTree](/docs/pt-BR/reference/engines/table-engines/mergetree-family/mergetree)                                            |
| [ReplacingMergeTree](/docs/pt-BR/reference/engines/table-engines/mergetree-family/replacingmergetree)                          |
| [SummingMergeTree](/docs/pt-BR/reference/engines/table-engines/mergetree-family/summingmergetree)                              |
| [AggregatingMergeTree](/docs/pt-BR/reference/engines/table-engines/mergetree-family/aggregatingmergetree)                      |
| [CollapsingMergeTree](/docs/pt-BR/reference/engines/table-engines/mergetree-family/collapsingmergetree)                        |
| [VersionedCollapsingMergeTree](/docs/pt-BR/reference/engines/table-engines/mergetree-family/versionedcollapsingmergetree)      |
| [GraphiteMergeTree](/docs/pt-BR/reference/engines/table-engines/mergetree-family/graphitemergetree)                            |
| [CoalescingMergeTree](/docs/pt-BR/reference/engines/table-engines/mergetree-family/coalescingmergetree)                        |
| [Busca vetorial exata e aproximada](/docs/pt-BR/reference/engines/table-engines/mergetree-family/annindexes)                   |
| [Chave de particionamento personalizada](/docs/pt-BR/reference/engines/table-engines/mergetree-family/custom-partitioning-key) |
| [Motores de tabela Replicated\*](/docs/pt-BR/reference/engines/table-engines/mergetree-family/replication)                     |
| [Busca de texto completo com índices de texto](/docs/pt-BR/reference/engines/table-engines/mergetree-family/textindexes)       |

<div id="log">
  ### Log
</div>

[motores](/docs/pt-BR/reference/engines/table-engines/log-family/index) leves com funcionalidade mínima. São mais eficazes quando você precisa gravar rapidamente muitas tabelas pequenas (até aproximadamente 1 milhão de linhas) e depois lê-las por completo.

Motores da família:

| Motores Log                                                                       |
| --------------------------------------------------------------------------------- |
| [família de motores Log](/docs/pt-BR/reference/engines/table-engines/log-family/index) |
| [TinyLog](/docs/pt-BR/reference/engines/table-engines/log-family/tinylog)              |
| [StripeLog](/docs/pt-BR/reference/engines/table-engines/log-family/stripelog)          |
| [Log](/docs/pt-BR/reference/engines/table-engines/log-family/log)                      |

<div id="integration-engines">
  ### Motores de integração
</div>

Motores para se comunicar com outros sistemas de armazenamento e processamento de dados.

Motores da família:

| Motores de integração                                                                                 |
| ----------------------------------------------------------------------------------------------------- |
| [Motores de tabela para integrações](/docs/pt-BR/reference/engines/table-engines/integrations/index)       |
| [ODBC](/docs/pt-BR/reference/engines/table-engines/integrations/odbc)                                      |
| [JDBC](/docs/pt-BR/reference/engines/table-engines/integrations/jdbc)                                      |
| [MySQL](/docs/pt-BR/reference/engines/table-engines/integrations/mysql)                                    |
| [MongoDB](/docs/pt-BR/reference/engines/table-engines/integrations/mongodb)                                |
| [Redis](/docs/pt-BR/reference/engines/table-engines/integrations/redis)                                    |
| [HDFS](/docs/pt-BR/reference/engines/table-engines/integrations/hdfs)                                      |
| [S3](/docs/pt-BR/reference/engines/table-engines/integrations/s3)                                          |
| [Kafka](/docs/pt-BR/reference/engines/table-engines/integrations/kafka)                                    |
| [EmbeddedRocksDB](/docs/pt-BR/reference/engines/table-engines/integrations/embedded-rocksdb)               |
| [RabbitMQ](/docs/pt-BR/reference/engines/table-engines/integrations/rabbitmq)                              |
| [PostgreSQL](/docs/pt-BR/reference/engines/table-engines/integrations/postgresql)                          |
| [S3Queue](/docs/pt-BR/reference/engines/table-engines/integrations/s3queue)                                |
| [TimeSeries](/docs/pt-BR/reference/engines/table-engines/integrations/time-series)                         |
| [ArrowFlight](/docs/pt-BR/reference/engines/table-engines/integrations/arrowflight)                        |
| [AzureQueue](/docs/pt-BR/reference/engines/table-engines/integrations/azure-queue)                         |
| [AzureBlobStorage](/docs/pt-BR/reference/engines/table-engines/integrations/azureBlobStorage)              |
| [DeltaLake](/docs/pt-BR/reference/engines/table-engines/integrations/deltalake)                            |
| [ExternalDistributed](/docs/pt-BR/reference/engines/table-engines/integrations/ExternalDistributed)        |
| [Hive](/docs/pt-BR/reference/engines/table-engines/integrations/hive)                                      |
| [Hudi](/docs/pt-BR/reference/engines/table-engines/integrations/hudi)                                      |
| [Iceberg](/docs/pt-BR/reference/engines/table-engines/integrations/iceberg)                                |
| [MaterializedPostgreSQL](/docs/pt-BR/reference/engines/table-engines/integrations/materialized-postgresql) |
| [NATS](/docs/pt-BR/reference/engines/table-engines/integrations/nats)                                      |
| [Paimon](/docs/pt-BR/reference/engines/table-engines/integrations/paimon)                                  |
| [SQLite](/docs/pt-BR/reference/engines/table-engines/integrations/sqlite)                                  |
| [YTsaurus](/docs/pt-BR/reference/engines/table-engines/integrations/ytsaurus)                              |

<div id="special-engines">
  ### Motores especiais
</div>

Motores da família:

| Motores especiais                                                                   |
| ----------------------------------------------------------------------------------- |
| [Motores de tabela especiais](/docs/pt-BR/reference/engines/table-engines/special/index) |
| [Alias](/docs/pt-BR/reference/engines/table-engines/special/alias)                       |
| [Distributed](/docs/pt-BR/reference/engines/table-engines/special/distributed)           |
| [Dicionário](/docs/pt-BR/reference/engines/table-engines/special/dictionary)             |
| [Merge](/docs/pt-BR/reference/engines/table-engines/special/merge)                       |
| [Executable](/docs/pt-BR/reference/engines/table-engines/special/executable)             |
| [File](/docs/pt-BR/reference/engines/table-engines/special/file)                         |
| [Null](/docs/pt-BR/reference/engines/table-engines/special/null)                         |
| [Set](/docs/pt-BR/reference/engines/table-engines/special/set)                           |
| [Join](/docs/pt-BR/reference/engines/table-engines/special/join)                         |
| [URL](/docs/pt-BR/reference/engines/table-engines/special/url)                           |
| [View](/docs/pt-BR/reference/engines/table-engines/special/view)                         |
| [Memory](/docs/pt-BR/reference/engines/table-engines/special/memory)                     |
| [Buffer](/docs/pt-BR/reference/engines/table-engines/special/buffer)                     |
| [Dados externos](/docs/pt-BR/reference/engines/table-engines/special/external-data)      |
| [GenerateRandom](/docs/pt-BR/reference/engines/table-engines/special/generate)           |
| [KeeperMap](/docs/pt-BR/reference/engines/table-engines/special/keepermap)               |
| [FileLog](/docs/pt-BR/reference/engines/table-engines/special/filelog)                   |

<div id="table_engines-virtual_columns">
  ## Colunas virtuais
</div>

Uma coluna virtual é um atributo inerente ao motor de tabela, definido no código-fonte do motor.

Você não deve especificar colunas virtuais na consulta `CREATE TABLE`, e não pode vê-las nos resultados das consultas `SHOW CREATE TABLE` e `DESCRIBE TABLE`. As colunas virtuais também são somente leitura, portanto você não pode inserir dados nelas.

Para selecionar dados de uma coluna virtual, você deve especificar seu nome na consulta `SELECT`. `SELECT *` não retorna valores de colunas virtuais.

Se você criar uma tabela com uma coluna que tenha o mesmo nome de uma das colunas virtuais da tabela, essa coluna virtual ficará inacessível. Não recomendamos fazer isso. Para ajudar a evitar conflitos, os nomes de colunas virtuais geralmente começam com um sublinhado.

* `_table` — Contém o nome da tabela da qual os dados foram lidos. Tipo: [String](/docs/pt-BR/reference/data-types/string).

  Independentemente do motor de tabela usado, cada tabela inclui uma coluna virtual universal chamada `_table`.

  Ao consultar uma tabela com o motor de tabela Merge, você pode definir condições constantes em `_table` na cláusula `WHERE/PREWHERE` (por exemplo, `WHERE _table='xyz'`). Nesse caso, a operação de leitura é realizada apenas nas tabelas em que a condição em `_table` é satisfeita, portanto a coluna `_table` atua como um índice.

  Ao usar consultas no formato `SELECT ... FROM (... UNION ALL ...)`, é possível determinar de qual tabela real as linhas retornadas se originam especificando a coluna `_table`.
