El motor permite importar y exportar datos a SQLite y admite consultas directas a tablas de SQLite desde ClickHouse.
Crear una tabla
CREATE TABLE [IF NOT EXISTS] [db.]table_name
(
name1 [type1],
name2 [type2], ...
) ENGINE = SQLite('db_path', 'table')Parámetros del motor
db_path— Ruta del archivo SQLite que contiene una base de datos.table— Nombre de una tabla en la base de datos SQLite, o una consulta que se pasa a SQLite tal cual (consulte Pasar una consulta en lugar de un nombre de tabla).
Pasar una consulta en lugar del nombre de una tabla
En lugar del nombre de una tabla, el argumento table puede ser una consulta SELECT que se pasa a SQLite tal cual. La estructura de la tabla se infiere del resultado de la consulta. La consulta puede escribirse como una subconsulta o envolverse en la función 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'));Dicha tabla es de solo lectura: no se permite hacer INSERT en ella. La misma sintaxis también es compatible con la función de tabla sqlite.
Compatibilidad con tipos de datos
Cuando se especifican explícitamente los tipos de columna de ClickHouse en la definición de la tabla, los siguientes tipos de ClickHouse se pueden interpretar a partir de columnas TEXT de SQLite:
- Date, Date32
- DateTime, DateTime64
- UUID
- Enum8, Enum16
- Decimal32, Decimal64, Decimal128, Decimal256
- FixedString
- Todos los tipos enteros (UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64)
- Float32, Float64
Consulte motor de base de datos SQLite para ver la correspondencia de tipos predeterminada.
Ejemplo de uso
Muestra una consulta para crear la tabla en SQLite:
SHOW CREATE TABLE sqlite_db.table2;CREATE TABLE SQLite.table2
(
`col1` Nullable(Int32),
`col2` Nullable(String)
)
ENGINE = SQLite('sqlite.db','table2');Devuelve los datos de la tabla:
SELECT * FROM sqlite_db.table2 ORDER BY col1;┌─col1─┬─col2──┐
│ 1 │ text1 │
│ 2 │ text2 │
│ 3 │ text3 │
└──────┴───────┘Véase también