Позволяет подключаться к базе данных SQLite и выполнять запросы INSERT и SELECT для обмена данными между ClickHouse и SQLite.
CREATE DATABASE sqlite_database
ENGINE = SQLite('db_path')
Параметры движка
db_path — путь к файлу базы данных SQLite.
В таблице ниже показано сопоставление типов по умолчанию, когда ClickHouse автоматически определяет схему на основе SQLite:
| SQLite | ClickHouse |
|---|
| INTEGER | Int32 |
| REAL | Float32 |
| TEXT | String |
| TEXT | UUID |
| BLOB | String |
Если вы явно задаёте таблицу с конкретными типами ClickHouse, используя движок таблицы SQLite, из столбцов SQLite типа TEXT можно разобрать следующие типы ClickHouse:
- Date, Date32
- DateTime, DateTime64
- UUID
- Enum8, Enum16
- Decimal32, Decimal64, Decimal128, Decimal256
- FixedString
- Все целочисленные типы (UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64)
- Float32, Float64
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 г.