Skip to main content
Движок позволяет импортировать данные из SQLite и экспортировать их в SQLite, а также выполнять запросы к таблицам SQLite напрямую из ClickHouse.

Создание таблицы

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

Передача запроса вместо имени таблицы

Вместо имени таблицы в качестве аргумента table можно указать SELECT-запрос, который передаётся в SQLite как есть. Структура таблицы определяется по результату запроса. Запрос можно записать либо как подзапрос, либо обернуть в функцию query:
Такая таблица доступна только для чтения: операция INSERT в неё запрещена. Тот же синтаксис поддерживается табличной функцией sqlite.
Форма подзапроса (SELECT ...) разбирается ClickHouse и повторно сериализуется перед отправкой в SQLite. Поэтому она должна быть корректным ClickHouse SQL. Чтобы передать специфичный для SQLite синтаксис, который ClickHouse не разбирает, используйте форму query('...'), текст которой отправляется в SQLite дословно.Любые внешние WHERE, LIMIT, агрегирование и т. д. из окружающего запроса к ClickHouse не проталкиваются в передаваемый запрос — они применяются в ClickHouse после получения полного результата запроса. Чтобы ограничить объём данных, считываемых из SQLite, поместите фильтр внутрь передаваемого запроса. При external_table_strict_query = 1 внешний фильтр по столбцам таблицы отклоняется с исключением вместо локального применения, поскольку его нельзя протолкнуть в передаваемый запрос. Проверка охватывает предикат верхнего уровня WHERE и каждый конъюнкт верхнего уровня AND. PREWHERE по столбцам этой таблицы не относится к данному параметру: этот движок таблицы не поддерживает PREWHERE, и такой запрос отклоняется с ILLEGAL_PREWHERE независимо от параметра. Проверка выполняется только там, где фильтр вообще может быть протолкнут: когда эта таблица является единственной таблицей запроса, находится по обе стороны INNER JOIN или на сохраняющей стороне внешнего JOIN (левой стороне LEFT JOIN, правой стороне RIGHT JOIN). На несохраняющей стороне LEFT/RIGHT JOIN и по обе стороны FULL JOIN ничего не проталкивается и не проверяется, поэтому фильтр по столбцам этой таблицы применяется локально после JOIN даже в строгом режиме. Там, где выполняется проверка, предикат, ссылающийся на другие таблицы, присоединённые в окружающем запросе, не проталкивается и исключается из проверки — независимо от того, ссылается ли он только на присоединённую сторону или смешивает её с этой таблицей в одном выражении, не содержащем AND (например, в OR); такой предикат сохраняет обычную точку вычисления в ClickHouse (WHERE после JOIN, PREWHERE до него) и не отклоняется.

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

Если в определении таблицы явно указать типы столбцов ClickHouse, из столбцов SQLite TEXT можно разобрать следующие типы ClickHouse: Сопоставление типов по умолчанию см. в разделе движок базы данных SQLite.

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

Показан запрос на создание таблицы SQLite:
Возвращает данные из таблицы:
См. также
  • SQLite движок
  • sqlite табличная функция
Последнее изменение 26 сентября 2026 г.