Skip to main content
O motor permite importar e exportar dados para o SQLite e oferece suporte a consultas em tabelas do SQLite diretamente do ClickHouse.

Criando uma tabela

Parâmetros do motor

Passando uma consulta em vez de um nome de tabela

Em vez de um nome de tabela, o argumento table pode ser uma consulta SELECT passada ao SQLite como está. A estrutura da tabela é inferida a partir do resultado da consulta. A consulta pode ser escrita como uma subconsulta ou envolvida na função query:
Essa tabela é somente leitura: INSERT nela não é permitido. A mesma sintaxe também é compatível com a função de tabela sqlite.
A forma de subconsulta (SELECT ...) é convertida pelo ClickHouse e reserializada antes de ser enviada ao SQLite. Portanto, ela deve ser um ClickHouse SQL válido. Para passar uma sintaxe específica do SQLite que o ClickHouse não interpreta, use a forma query('...'), cujo texto é enviado ao SQLite literalmente.Qualquer WHERE, LIMIT, agregação etc. externo da consulta ClickHouse ao redor não é enviado para execução na consulta passada — ele é aplicado no ClickHouse depois que o resultado completo da consulta é recuperado. Para restringir os dados lidos do SQLite, coloque o filtro dentro da consulta passada. Com external_table_strict_query = 1, um filtro externo nas colunas da tabela é rejeitado com uma exceção, em vez de ser aplicado localmente, pois não pode ser enviado para execução na consulta passada. A verificação abrange o predicado WHERE de nível superior e cada conjunção de um AND de nível superior. Um PREWHERE nas colunas desta tabela não é um caso para essa configuração: este motor de tabela não oferece suporte a PREWHERE, e essa consulta é rejeitada com ILLEGAL_PREWHERE independentemente da configuração. A verificação é executada apenas onde um filtro poderia ser enviado para execução: quando esta tabela é a única tabela da consulta, em qualquer lado de um INNER JOIN ou no lado preservado de um join externo (o lado esquerdo de um LEFT JOIN, o lado direito de um RIGHT JOIN). No lado não preservado de um LEFT/RIGHT JOIN e em qualquer lado de um FULL JOIN, nada é enviado para execução e nada é verificado; portanto, um filtro nas colunas desta tabela é aplicado localmente após o join mesmo no modo estrito. Onde a verificação é executada, um predicado que faz referência a outras tabelas unidas na consulta ao redor não é enviado para execução e é excluído da verificação, quer faça referência apenas ao lado unido ou o misture com esta tabela em uma expressão que não seja AND (por exemplo, um OR); esse predicado mantém seu ponto de avaliação usual do ClickHouse (WHERE após o join, PREWHERE antes dele) e não é rejeitado.

Suporte a tipos de dados

Ao especificar explicitamente os tipos de coluna do ClickHouse na definição da tabela, os tipos a seguir do ClickHouse podem ser interpretados a partir de colunas TEXT do SQLite: Consulte o motor de banco de dados SQLite para ver o mapeamento de tipos padrão.

Exemplo de uso

Exibe uma consulta que cria a tabela SQLite:
Retorna os dados da tabela:
Veja também
Última modificação em 26 de setembro de 2026