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
CREATE TABLE [IF NOT EXISTS] [db.]table_name
(
name1 [type1],
name2 [type2], ...
) ENGINE = SQLite('db_path', 'table')Parâmetros do motor
db_path— Caminho para o arquivo SQLite que contém um banco de dados.table— Nome de uma tabela no banco de dados SQLite ou uma consulta passada ao SQLite tal como está (consulte Passando uma consulta em vez de um nome de tabela).
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:
CREATE TABLE sqlite_table ENGINE = SQLite('sqlite.db', (SELECT col1, col2 FROM table1 WHERE col2 > 1));
CREATE TABLE sqlite_table ENGINE = SQLite('sqlite.db', query('SELECT col1, col2 FROM table1 WHERE col2 > 1'));Essa tabela é somente leitura: INSERT nela não é permitido. A mesma sintaxe também é compatível com a função de tabela sqlite.
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:
- Date, Date32
- DateTime, DateTime64
- UUID
- Enum8, Enum16
- Decimal32, Decimal64, Decimal128, Decimal256
- FixedString
- Todos os tipos inteiros (UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64)
- Float32, Float64
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:
SHOW CREATE TABLE sqlite_db.table2;CREATE TABLE SQLite.table2
(
`col1` Nullable(Int32),
`col2` Nullable(String)
)
ENGINE = SQLite('sqlite.db','table2');Retorna os dados da tabela:
SELECT * FROM sqlite_db.table2 ORDER BY col1;┌─col1─┬─col2──┐
│ 1 │ text1 │
│ 2 │ text2 │
│ 3 │ text3 │
└──────┴───────┘Veja também