Перейти к основному содержимому
Перейти к основному содержимому

SQLite

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

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

CREATE DATABASE sqlite_database
ENGINE = SQLite('db_path')

Параметры движка

  • db_path — Путь к файлу с базой данных SQLite.

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

SQLiteClickHouse
INTEGERInt32
REALFloat32
TEXTString
BLOBString

Специфика и рекомендации

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 │
└───────┴──────┘

Вставка данных в таблицу SQLite из таблицы 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 │
└───────┴──────┘