Перейти к основному содержанию
Позволяет подключаться к базе данных SQLite и выполнять запросы INSERT и SELECT для обмена данными между ClickHouse и SQLite.

Создание базы данных

    CREATE DATABASE sqlite_database
    ENGINE = SQLite('db_path')
Параметры движка
  • db_path — путь к файлу базы данных SQLite.

Поддержка типов данных

В таблице ниже показано сопоставление типов по умолчанию, когда ClickHouse автоматически определяет схему на основе SQLite:
SQLiteClickHouse
INTEGERInt32
REALFloat32
TEXTString
TEXTUUID
BLOBString
Если вы явно задаёте таблицу с конкретными типами ClickHouse, используя движок таблицы SQLite, из столбцов SQLite типа TEXT можно разобрать следующие типы ClickHouse: SQLite использует динамическую типизацию, а функции доступа к значениям автоматически выполняют приведение типов. Например, при чтении столбца TEXT как целого числа будет возвращено 0, если текст не удаётся разобрать как число. Это означает, что если для таблицы ClickHouse задан тип, отличный от типа соответствующего столбца SQLite, значения могут молча приводиться к нему вместо того, чтобы вызывать ошибку.

Особенности и рекомендации

SQLite хранит всю базу данных (определения, таблицы, индексы и сами данные) в виде единого кроссплатформенного файла на хост-машине. Во время записи SQLite блокирует весь файл базы данных, поэтому операции записи выполняются последовательно. Операции чтения могут выполняться параллельно. SQLite не требует управления службами (например, сценариев запуска) или управления доступом на основе GRANT и паролей. Управление доступом осуществляется с помощью прав файловой системы, назначенных самому файлу базы данных.

Пример использования

База данных ClickHouse, подключенная к SQLite:
CREATE DATABASE sqlite_db ENGINE = SQLite('sqlite.db');
SHOW TABLES FROM sqlite_db;
┌──name───┐
│ table1  │
│ table2  │
└─────────┘
Показывает список таблиц:
SELECT * FROM sqlite_db.table1;
┌─col1──┬─col2─┐
│ line1 │    1 │
│ line2 │    2 │
│ line3 │    3 │
└───────┴──────┘
Вставка данных из таблицы ClickHouse в таблицу SQLite:
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 │
└───────┴──────┘
Последнее изменение 10 июня 2026 г.