Saltar al contenido principal
Permite conectarse a una base de datos SQLite y ejecutar consultas INSERT y SELECT para intercambiar datos entre ClickHouse y SQLite.

Crear una base de datos

    CREATE DATABASE sqlite_database
    ENGINE = SQLite('db_path')
Parámetros del motor
  • db_path — Ruta al archivo con la base de datos SQLite.

Compatibilidad con tipos de datos

La siguiente tabla muestra la asignación de tipos predeterminada cuando ClickHouse infiere automáticamente el esquema a partir de SQLite:
SQLiteClickHouse
INTEGERInt32
REALFloat32
TEXTString
TEXTUUID
BLOBString
Cuando define explícitamente una tabla con tipos específicos de ClickHouse mediante el motor de tabla SQLite, los siguientes tipos de ClickHouse pueden interpretarse a partir de columnas TEXT de SQLite: SQLite tiene tipado dinámico, y sus funciones de acceso por tipo realizan conversiones automáticas de tipos. Por ejemplo, al leer una columna TEXT como un entero, devolverá 0 si el texto no puede interpretarse como un número. Esto significa que, si una tabla de ClickHouse se define con un tipo distinto al de la columna subyacente de SQLite, los valores pueden convertirse silenciosamente en lugar de provocar un error.

Particularidades y recomendaciones

SQLite almacena toda la base de datos (definiciones, tablas, índices y los propios datos) en un único archivo multiplataforma en una máquina host. Durante la escritura, SQLite bloquea todo el archivo de la base de datos; por lo tanto, las operaciones de escritura se realizan de forma secuencial. Las operaciones de lectura pueden realizarse en paralelo. SQLite no requiere gestión de servicios (como scripts de arranque) ni control de acceso basado en GRANT y contraseñas. El control de acceso se gestiona mediante los permisos del sistema de archivos asignados al propio archivo de la base de datos.

Ejemplo de uso

Base de datos en ClickHouse conectada a SQLite:
CREATE DATABASE sqlite_db ENGINE = SQLite('sqlite.db');
SHOW TABLES FROM sqlite_db;
┌──name───┐
│ table1  │
│ table2  │
└─────────┘
Muestra las tablas:
SELECT * FROM sqlite_db.table1;
┌─col1──┬─col2─┐
│ line1 │    1 │
│ line2 │    2 │
│ line3 │    3 │
└───────┴──────┘
Inserción de datos en una tabla de SQLite desde una tabla de 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 modificación el 10 de junio de 2026