Описание
ФорматSQLite предназначен для чтения и записи файлов баз данных SQLite.
При выводе ClickHouse записывает результат запроса в одну таблицу базы данных SQLite. При вводе ClickHouse читает одну таблицу из базы данных SQLite.
Если это обычный локальный файл, ClickHouse открывает файл базы данных SQLite напрямую. Для остальных входных и выходных потоков ClickHouse материализует базу данных SQLite в памяти.
При вводе ClickHouse по умолчанию читает первую таблицу из базы данных SQLite. Это поведение можно изменить с помощью настройки input_format_sqlite_table_name. При выводе по умолчанию используется имя таблицы table; его можно изменить с помощью настройки output_format_sqlite_table_name.
Пример использования
Соответствие типов данных
При записи данных в форматеSQLite ClickHouse создаёт таблицу SQLite со следующими объявленными типами:
Для столбцов
Float32 и Float64 значения, отличные от NaN, записываются с использованием нативных классов хранилища SQLite, а значения NaN — в текстовой сериализации ClickHouse. Значения Bool и обычные целочисленные значения также записываются с использованием нативных классов хранилища SQLite. Широкие целые числа и сложные типы записываются в текстовой сериализации ClickHouse. Значения NULL записываются как NULL SQLite.
При выводе схемы из входных данных SQLite ClickHouse использует то же соответствие типов, что и движок баз данных SQLite:
По умолчанию ClickHouse оборачивает выведенный тип в
Nullable, если соответствующий столбец SQLite допускает NULL; столбцы NOT NULL не оборачиваются в Nullable. Это поведение можно изменить с помощью настройки schema_inference_make_columns_nullable.
При выводе схемы исходные типы данных ClickHouse не сохраняются. Например, Bool записывается как INTEGER SQLite и выводится как Int64, а Date, DateTime, Decimal, UUID, IPv4, IPv6, Enum, Array, Tuple и Map записываются как TEXT SQLite и выводятся как String.
Если структура таблицы ClickHouse задана явно, значения с плавающей запятой читаются как значения REAL SQLite, а для NaN используется резервное чтение в текстовом виде. Остальные значения SQLite читаются как текст и преобразуются в запрошенные типы ClickHouse.