Форматы ввода
- Разбора данных, передаваемых в операторы
INSERT - Выполнения запросов
SELECTк таблицам с файловой поддержкой, таким какFile,URLилиHDFS - Чтения словарей
- Формат Native — самый эффективный формат ввода, он обеспечивает лучшее сжатие, минимальное потребление ресурсов и минимальные накладные расходы на обработку на стороне сервера.
- Сжатие крайне важно — LZ4 уменьшает размер данных при минимальных затратах CPU, тогда как ZSTD обеспечивает более высокую степень сжатия ценой дополнительной нагрузки на CPU.
- Предварительная сортировка влияет умеренно, поскольку ClickHouse и без того сортирует эффективно.
- Формирование батчей значительно повышает эффективность — более крупные батчи уменьшают накладные расходы на вставку и повышают пропускную способность.
Форматы вывода
- Представления результатов запроса
SELECT - Выполнения операций
INSERTв таблицы с файловой поддержкой
Обзор форматов
Схема формата
format_schema.
Эту настройку необходимо указать при использовании форматов Cap'n Proto и Protobuf.
Схема формата представляет собой сочетание имени файла и имени типа сообщения в этом файле, разделённых двоеточием,
например, schemafile.proto:MessageType.
Если файл имеет стандартное для данного формата расширение (например, .proto для Protobuf),
его можно опустить, и в этом случае схема формата будет выглядеть так: schemafile:MessageType.
Если вы вводите или выводите данные через клиент в интерактивном режиме, имя файла, указанное в схеме формата,
может содержать абсолютный путь или путь относительно текущего каталога на клиенте.
Если вы используете клиент в пакетном режиме, путь к схеме из соображений безопасности должен быть относительным.
Если вы вводите или выводите данные через HTTP-интерфейс, имя файла, указанное в схеме формата,
должно находиться в каталоге, указанном в format_schema_path
в конфигурации сервера.
Пропуск ошибок
CSV, TabSeparated, TSKV, JSONEachRow, Template, CustomSeparated и Protobuf, могут пропускать некорректную строку, если возникает ошибка разбора, и продолжать разбор с начала следующей строки. См. настройки input_format_allow_errors_num и
input_format_allow_errors_ratio.
Ограничения:
- При ошибке разбора
JSONEachRowпропускает все данные до символа новой строки (или EOF), поэтому для корректного подсчета ошибок строки должны разделяться символом\n. TemplateиCustomSeparatedиспользуют разделитель после последнего столбца и разделитель между строками, чтобы находить начало следующей строки, поэтому пропуск ошибок работает только в том случае, если хотя бы один из них не пуст.