Skip to main content
O motor Merge (não deve ser confundido com MergeTree) não armazena dados por conta própria, mas permite ler de qualquer número de outras tabelas simultaneamente. A leitura é paralelizada automaticamente. Não há suporte para escrita em uma tabela. Ao ler, os índices das tabelas que estão realmente sendo lidas são usados, se existirem.

Criando uma tabela

Parâmetros do motor

db_name

db_name — Valores possíveis:
  • nome do banco de dados,
    • expressão constante que retorna uma string com o nome de um banco de dados, por exemplo, currentDatabase(),
    • REGEXP(expression), em que expression é uma expressão regular para corresponder aos nomes dos bancos de dados.

tables_regexp

tables_regexp — Uma expressão regular para corresponder aos nomes das tabelas no DB ou DBs especificados. Expressões regulares — re2 (oferece suporte a um subconjunto de PCRE), diferenciam maiúsculas de minúsculas. Veja as observações sobre escape de símbolos em expressões regulares na seção “match”.

Uso

Ao selecionar tabelas para leitura, a própria tabela Merge não é selecionada, mesmo que corresponda à expressão regular. Isso evita loops. É possível criar duas tabelas Merge que tentarão ler indefinidamente os dados uma da outra, mas isso não é uma boa ideia. A forma mais comum de usar o motor Merge é trabalhar com um grande número de tabelas TinyLog como se fossem uma única tabela.

Exemplos

Exemplo 1 Considere dois bancos de dados, ABC_corporate_site e ABC_store. A tabela all_visitors conterá os IDs das tabelas visitors em ambos os bancos de dados.
Exemplo 2 Digamos que você tenha uma tabela antiga WatchLog_old e tenha decidido alterar o particionamento sem mover os dados para uma nova tabela WatchLog_new, mas precise ver os dados de ambas as tabelas.

Colunas virtuais

  • _table — O nome da tabela da qual os dados foram lidos. Tipo: String. Se você aplicar um filtro em _table (por exemplo, WHERE _table='xyz'), somente as tabelas que satisfizerem a condição de filtro serão lidas.
  • _database — Contém o nome do banco de dados do qual os dados foram lidos. Tipo: String.
Veja também
Última modificação em 3 de julho de 2026