Pular para o conteúdo principal
Permite conectar-se a um banco de dados SQLite e executar consultas INSERT e SELECT para transferir dados entre o ClickHouse e o SQLite.

Criando um banco de dados

    CREATE DATABASE sqlite_database
    ENGINE = SQLite('db_path')
Parâmetros do mecanismo
  • db_path — Caminho para um arquivo com um banco de dados SQLite.

Suporte a tipos de dados

A tabela abaixo mostra o mapeamento de tipos padrão quando o ClickHouse infere automaticamente o esquema a partir do SQLite:
SQLiteClickHouse
INTEGERInt32
REALFloat32
TEXTString
TEXTUUID
BLOBString
Quando você define explicitamente uma tabela com tipos específicos do ClickHouse usando o SQLite table engine, os tipos a seguir do ClickHouse podem ser analisados a partir de colunas TEXT do SQLite: O SQLite tem tipagem dinâmica, e suas funções de acesso a tipos fazem coerção automática de tipos. Por exemplo, ler uma coluna TEXT como inteiro retornará 0 se o texto não puder ser analisado como um número. Isso significa que, se uma tabela do ClickHouse for definida com um tipo diferente do da coluna subjacente no SQLite, os valores poderão ser convertidos silenciosamente em vez de gerar um erro.

Especificidades e recomendações

O SQLite armazena todo o banco de dados (definições, tabelas, índices e os próprios dados) como um único arquivo multiplataforma em uma máquina host. Durante a gravação, o SQLite bloqueia todo o arquivo do banco de dados; portanto, as operações de gravação são executadas sequencialmente. As operações de leitura podem ser realizadas em paralelo. O SQLite não exige gerenciamento de serviço (como scripts de inicialização) nem controle de acesso baseado em GRANT e senhas. O controle de acesso é feito por meio das permissões do sistema de arquivos atribuídas ao próprio arquivo do banco de dados.

Exemplo de uso

Banco de dados no ClickHouse, conectado ao SQLite:
CREATE DATABASE sqlite_db ENGINE = SQLite('sqlite.db');
SHOW TABLES FROM sqlite_db;
┌──name───┐
│ table1  │
│ table2  │
└─────────┘
Exibe as tabelas:
SELECT * FROM sqlite_db.table1;
┌─col1──┬─col2─┐
│ line1 │    1 │
│ line2 │    2 │
│ line3 │    3 │
└───────┴──────┘
Inserindo dados em uma tabela SQLite a partir de uma tabela ClickHouse:
CREATE TABLE clickhouse_table(`col1` String,`col2` Int16) ENGINE = MergeTree() ORDER BY col2;
INSERT INTO clickhouse_table VALUES ('text',10);
INSERT INTO sqlite_db.table1 SELECT * FROM clickhouse_table;
SELECT * FROM sqlite_db.table1;
┌─col1──┬─col2─┐
│ line1 │    1 │
│ line2 │    2 │
│ line3 │    3 │
│ text  │   10 │
└───────┴──────┘
Última modificação em 10 de junho de 2026