> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Настройки форматов

> Настройки, управляющие форматами ввода и вывода.

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  const cells = [["Type", <Badge color="surface">{type}</Badge>], ["Default value", <Badge color="surface">{default_value}</Badge>]];
  if (changeable_without_restart) {
    const isYes = String(changeable_without_restart).trim().toLowerCase() === "yes";
    const badge = isYes ? <Badge icon="check" stroke color="green" size="sm">Yes</Badge> : <Badge icon="x" stroke color="red" size="sm">No</Badge>;
    cells.push(["Changeable without restart", badge]);
  }
  return <table>
      <thead>
        <tr>
          {cells.map(([h]) => <th key={h}>{h}</th>)}
        </tr>
      </thead>
      <tbody>
        <tr>
          {cells.map(([h, v]) => <td key={h}>{v}</td>)}
        </tr>
      </tbody>
    </table>;
};

export const galaxyOnClick = eventName => () => {
  try {
    if (typeof window !== "undefined" && window.galaxy && eventName) {
      window.galaxy.track(eventName, {
        interaction: "click"
      });
    }
  } catch (e) {}
};

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <Icon />
                <span>Beta</span>
            </a>;
  }
  return <div className="betaBadge">
            <Icon />
            <span>
                Beta feature. 
                <u>
                    <a href="/docs/beta-and-experimental-features#beta-features">
                        Learn more.
                    </a>
                </u>
            </span>
        </div>;
};

export const ExperimentalBadge = () => {
  return <div className="experimentalBadge">
            <div className="experimentalIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.25" d="M5.5 2H10.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M9.50015 2V6.19625L13.4283 12.7425C13.4738 12.8183 13.4985 12.9049 13.4996 12.9934C13.5008 13.0818 13.4785 13.169 13.435 13.246C13.3914 13.323 13.3283 13.3871 13.2519 13.4317C13.1755 13.4764 13.0886 13.4999 13.0002 13.5H3.00015C2.91164 13.5 2.8247 13.4766 2.74822 13.432C2.67174 13.3874 2.60847 13.3233 2.56487 13.2463C2.52126 13.1693 2.49889 13.082 2.50004 12.9935C2.50119 12.905 2.52582 12.8184 2.5714 12.7425L6.50015 6.19625V2" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.25" d="M4.47656 9.56754C5.30344 9.41254 6.47656 9.47942 7.99969 10.25C10.0153 11.2707 11.4216 11.0569 12.2184 10.7282" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            Experimental feature. <u><a href="/docs/beta-and-experimental-features#experimental-features">Learn more.</a></u>
        </div>;
};

Эти настройки автоматически сгенерированы на основе [исходного кода](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/FormatFactorySettings.h).

<div id="allow_special_bool_values_inside_variant">
  ## allow\_special\_bool\_values\_inside\_variant
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Позволяет разбирать значения типа Bool внутри типа Variant из специальных строковых представлений булевых значений, таких как "on", "off", "enable", "disable" и т. д.

<div id="bool_false_representation">
  ## bool\_false\_representation
</div>

<SettingsInfoBlock type="String" default_value="false" />

Текстовое представление значения false для типа bool в форматах TSV/CSV/Vertical/Pretty.

<div id="bool_true_representation">
  ## bool\_true\_representation
</div>

<SettingsInfoBlock type="String" default_value="true" />

Текстовое представление логического значения true в форматах TSV/CSV/Vertical/Pretty.

<div id="check_conversion_from_numbers_to_enum">
  ## check\_conversion\_from\_numbers\_to\_enum
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Сгенерировать исключение при преобразовании Numbers в Enum, если такого значения нет в Enum.

Возможные значения:

* 0 — Отключено.
* 1 — Включено.

**Пример**

```text theme={null}
CREATE TABLE tab (
  val Enum('first' = 1, 'second' = 2, 'third' = 3)
) ENGINE = Memory;

INSERT INTO tab SETTINGS check_conversion_from_numbers_to_enum = 1 VALUES (4); -- возвращает ошибку
```

<div id="column_names_for_schema_inference">
  ## column\_names\_for\_schema\_inference
</div>

Список имён столбцов, используемых при определении схемы для форматов без имён столбцов. Формат: 'column1,column2,column3,...'

<div id="date_time_64_output_format_cut_trailing_zeros_align_to_groups_of_thousands">
  ## date\_time\_64\_output\_format\_cut\_trailing\_zeros\_align\_to\_groups\_of\_thousands
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Динамически удаляет конечные нули у значений datetime64, чтобы масштаб вывода принимал значения \[0, 3, 6],
что соответствует 'секундам', 'миллисекундам' и 'микросекундам'

<div id="date_time_input_format">
  ## date\_time\_input\_format
</div>

<SettingsInfoBlock type="DateTimeInputFormat" default_value="best_effort" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "best_effort"},{"label": "Улучшенное удобство использования"}]}]} />

Позволяет выбрать парсер для текстового представления даты и времени.

Эта настройка не применяется к [функциям даты и времени](/ru/reference/functions/regular-functions/date-time-functions).

Возможные значения:

* `'best_effort'` — Включает расширенный разбор.

  ClickHouse может разбирать базовый формат `YYYY-MM-DD HH:MM:SS` и все форматы даты и времени [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). Например, `'2018-06-08T01:02:03.000Z'`.

* `'best_effort_us'` — Аналогично `best_effort` (см. различия в [parseDateTimeBestEffortUS](/ru/reference/functions/regular-functions/type-conversion-functions#parseDateTimeBestEffortUS)

* `'basic'` — Использует базовый парсер.

  ClickHouse может разбирать только базовые форматы `YYYY-MM-DD HH:MM:SS` или `YYYY-MM-DD`. Например, `2019-08-20 10:18:56` или `2019-08-20`.

См. также:

* [Тип данных DateTime.](/ru/reference/data-types/datetime)
* [Функции для работы с датами и временем.](/ru/reference/functions/regular-functions/date-time-functions)

<div id="date_time_output_format">
  ## date\_time\_output\_format
</div>

<SettingsInfoBlock type="DateTimeOutputFormat" default_value="simple" />

Позволяет выбирать различные форматы вывода текстового представления даты и времени.

Возможные значения:

* `simple` - Простой формат вывода.

  ClickHouse выводит дату и время в формате `YYYY-MM-DD hh:mm:ss`. Например, `2019-08-20 10:18:56`. Вычисление выполняется в соответствии с часовым поясом типа данных (если он задан) или часовым поясом сервера.

* `iso` - Формат вывода ISO.

  ClickHouse выводит дату и время в формате [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) `YYYY-MM-DDThh:mm:ssZ`. Например, `2019-08-20T10:18:56Z`. Обратите внимание, что вывод выполняется в UTC (`Z` означает UTC).

* `unix_timestamp` - Формат вывода Unix-временной метки.

  ClickHouse выводит дату и время в формате [Unix timestamp](https://en.wikipedia.org/wiki/Unix_time). Например, `1566285536`.

См. также:

* [Тип данных DateTime.](/ru/reference/data-types/datetime)
* [Функции для работы с датами и временем.](/ru/reference/functions/regular-functions/date-time-functions)

<div id="date_time_overflow_behavior">
  ## date\_time\_overflow\_behavior
</div>

<SettingsInfoBlock type="DateTimeOverflowBehavior" default_value="ignore" />

Определяет поведение при преобразовании [Date](/ru/reference/data-types/date), [Date32](/ru/reference/data-types/date32), [DateTime](/ru/reference/data-types/datetime), [DateTime64](/ru/reference/data-types/datetime64) или целых чисел в Date, Date32, DateTime или DateTime64, если значение не может быть представлено в результирующем типе.

Возможные значения:

* `ignore` — Молча игнорировать переполнение. Результат не определён.
* `throw` — Сгенерировать исключение в случае переполнения.
* `saturate` — Ограничить результат предельными значениями. Если значение меньше минимального значения, которое может быть представлено целевым типом, в качестве результата выбирается минимальное представимое значение. Если значение больше максимального значения, которое может быть представлено целевым типом, в качестве результата выбирается максимальное представимое значение.

Значение по умолчанию: `ignore`.

<div id="errors_output_format">
  ## errors\_output\_format
</div>

<SettingsInfoBlock type="String" default_value="CSV" />

Метод записи ошибок в текстовый вывод.

<div id="format_avro_schema_registry_connection_timeout">
  ## format\_avro\_schema\_registry\_connection\_timeout
</div>

<SettingsInfoBlock type="UInt64" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "Новая настройка для управления тайм-аутом подключения (в секундах) для HTTP-клиента Confluent Schema Registry, используемого форматом AvroConfluent."}]}]} />

Для формата AvroConfluent: тайм-аут подключения в секундах для HTTP-клиента Confluent Schema Registry. Используется как при получении схемы, так и при её регистрации. Должен быть больше 0 и меньше 600 (10 минут).

<div id="format_avro_schema_registry_receive_timeout">
  ## format\_avro\_schema\_registry\_receive\_timeout
</div>

<SettingsInfoBlock type="UInt64" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "Новая настройка для управления тайм-аутом получения ответа (в секундах) для HTTP-клиента Confluent Schema Registry, используемого форматом AvroConfluent."}]}]} />

Для формата AvroConfluent: тайм-аут получения ответа в секундах для HTTP-клиента Confluent Schema Registry. Используется как при получении схемы, так и при её регистрации. Должен быть больше 0 и меньше 600 (10 минут).

<div id="format_avro_schema_registry_send_timeout">
  ## format\_avro\_schema\_registry\_send\_timeout
</div>

<SettingsInfoBlock type="UInt64" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "1"},{"label": "Новая настройка для управления тайм-аутом отправки (в секундах) HTTP-клиента Confluent Schema Registry, который использует формат AvroConfluent."}]}]} />

Для формата AvroConfluent: тайм-аут отправки в секундах для HTTP-клиента Confluent Schema Registry. Используется как для получения схемы, так и для её регистрации. Должен быть больше 0 и меньше 600 (10 минут).

<div id="format_avro_schema_registry_url">
  ## format\_avro\_schema\_registry\_url
</div>

Для формата AvroConfluent: URL-адрес Confluent Schema Registry.

<div id="format_binary_max_array_size">
  ## format\_binary\_max\_array\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="1073741824" />

Максимально допустимый размер Array в формате RowBinary. Предотвращает выделение большого объёма памяти в случае повреждения данных. 0 означает, что ограничение отсутствует

<div id="format_binary_max_object_size">
  ## format\_binary\_max\_object\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="100000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "100000"},{"label": "Новая настройка, ограничивающая максимальный размер объекта при бинарной десериализации типа JSON"}]}]} />

Максимально допустимое количество путей в одном объекте для формата RowBinary типа JSON. Это предотвращает выделение большого объема памяти в случае поврежденных данных. 0 означает, что ограничения нет

<div id="format_binary_max_string_size">
  ## format\_binary\_max\_string\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="1073741824" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.12"},{"label": "1073741824"},{"label": "Предотвращает выделение большого объема памяти"}]}]} />

Максимально допустимый размер значения типа String в формате RowBinary. Предотвращает выделение большого объема памяти в случае повреждения данных. 0 означает, что ограничения нет

<div id="format_capn_proto_enum_comparising_mode">
  ## format\_capn\_proto\_enum\_comparising\_mode
</div>

<SettingsInfoBlock type="CapnProtoEnumComparingMode" default_value="by_values" />

Как сопоставляются Enum в ClickHouse и CapnProto

<div id="format_capn_proto_max_message_size">
  ## format\_capn\_proto\_max\_message\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="1073741824" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1073741824"},{"label": "Предотвращает выделение слишком большого объёма памяти"}]}]} />

Максимальный размер одного сообщения CapnProto в байтах. Защищает от чрезмерного выделения памяти из-за некорректных или повреждённых данных. Значение по умолчанию — 1 GiB.

<div id="format_capn_proto_use_autogenerated_schema">
  ## format\_capn\_proto\_use\_autogenerated\_schema
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Использовать автоматически сгенерированную схему CapnProto, если параметр format\_schema не задан

<div id="format_csv_allow_double_quotes">
  ## format\_csv\_allow\_double\_quotes
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Если установлено значение true, разрешает строки в двойных кавычках.

<div id="format_csv_allow_single_quotes">
  ## format\_csv\_allow\_single\_quotes
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.7"},{"label": "0"},{"label": "Большинство инструментов не обрабатывают одинарные кавычки в CSV особым образом, поэтому по умолчанию это также отключено"}]}]} />

Если установлено значение true, разрешает строки в одинарных кавычках.

<div id="format_csv_delimiter">
  ## format\_csv\_delimiter
</div>

<SettingsInfoBlock type="Char" default_value="," />

Символ, используемый в качестве разделителя в данных CSV. Если параметр задаётся строкой, её длина должна быть равна 1.

<div id="format_csv_null_representation">
  ## format\_csv\_null\_representation
</div>

<SettingsInfoBlock type="String" default_value="\N" />

Настраиваемое представление значения NULL в формате CSV

<div id="format_custom_escaping_rule">
  ## format\_custom\_escaping\_rule
</div>

<SettingsInfoBlock type="EscapingRule" default_value="Escaped" />

Правило экранирования поля (для формата CustomSeparated)

<div id="format_custom_field_delimiter">
  ## format\_custom\_field\_delimiter
</div>

<SettingsInfoBlock type="String" default_value="	" />

Разделитель полей (для формата CustomSeparated)

<div id="format_custom_result_after_delimiter">
  ## format\_custom\_result\_after\_delimiter
</div>

Суффикс после результирующего набора (для формата CustomSeparated)

<div id="format_custom_result_before_delimiter">
  ## format\_custom\_result\_before\_delimiter
</div>

Префикс перед результирующим набором (для формата CustomSeparated)

<div id="format_custom_row_after_delimiter">
  ## format\_custom\_row\_after\_delimiter
</div>

<SettingsInfoBlock
  type="String"
  default_value="
"
/>

Разделитель после поля последнего столбца (для формата CustomSeparated)

<div id="format_custom_row_before_delimiter">
  ## format\_custom\_row\_before\_delimiter
</div>

Разделитель перед полем первого столбца (для формата CustomSeparated)

<div id="format_custom_row_between_delimiter">
  ## format\_custom\_row\_between\_delimiter
</div>

Разделитель между строками (для формата CustomSeparated)

<div id="format_display_secrets_in_show_and_select">
  ## format\_display\_secrets\_in\_show\_and\_select
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Включает или отключает отображение secrets в запросах `SHOW` и `SELECT` для таблиц, баз данных,
table functions и словарей.

Пользователь, который хочет видеть secrets, также должен иметь
включенную
[`настройку сервера display_secrets_in_show_and_select`](/ru/reference/settings/server-settings/settings#display_secrets_in_show_and_select)
и
привилегию [`displaySecretsInShowAndSelect`](/ru/reference/statements/grant#displaysecretsinshowandselect).

Возможные значения:

* 0 — Отключено.
* 1 — Включено.

<div id="format_json_object_each_row_column_for_object_name">
  ## format\_json\_object\_each\_row\_column\_for\_object\_name
</div>

Имя столбца, которое будет использоваться для хранения/записи имён объектов в формате [JSONObjectEachRow](/ru/reference/formats/JSON/JSONObjectEachRow).
Тип столбца должен быть String. Если значение пустое, в качестве имён объектов будут использоваться имена по умолчанию `row_{i}`.

<div id="format_protobuf_use_autogenerated_schema">
  ## format\_protobuf\_use\_autogenerated\_schema
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Использовать автоматически сгенерированную схему Protobuf, если format\_schema не задан

<div id="format_regexp">
  ## format\_regexp
</div>

Регулярное выражение (для формата Regexp)

<div id="format_regexp_escaping_rule">
  ## format\_regexp\_escaping\_rule
</div>

<SettingsInfoBlock type="EscapingRule" default_value="Raw" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "20.10"},{"label": "Raw"},{"label": "Использовать Raw в качестве правила экранирования по умолчанию для формата Regexp, чтобы поведение больше соответствовало ожиданиям пользователей"}]}]} />

Правило экранирования поля (для формата Regexp)

<div id="format_regexp_skip_unmatched">
  ## format\_regexp\_skip\_unmatched
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Пропускать строки, не соответствующие регулярному выражению (для формата Regexp)

<div id="format_schema">
  ## format\_schema
</div>

Этот параметр полезен при использовании форматов, для которых требуется описание схемы, например [Cap'n Proto](https://capnproto.org/) или [Protobuf](https://developers.google.com/protocol-buffers/). Его значение зависит от формата.

<div id="format_schema_message_name">
  ## format\_schema\_message\_name
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": ""},{"label": "новая настройка"}]}]} />

Задаёт имя требуемого сообщения в схеме, определённой в `format_schema`.
Чтобы сохранить совместимость с устаревшим форматом `format_schema` (`file_name:message_name`):

* Если `format_schema_message_name` не указан, имя сообщения определяется по части `message_name` в устаревшем значении `format_schema`.
* Если `format_schema_message_name` указан при использовании устаревшего формата, будет сгенерирована ошибка.

<div id="format_schema_source">
  ## format\_schema\_source
</div>

<SettingsInfoBlock type="String" default_value="file" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "file"},{"label": "новая настройка"}]}]} />

Определяет источник `format_schema`.
Возможные значения:

* 'file' (по умолчанию): `format_schema` — это имя файла схемы, расположенного в каталоге `format_schemas`.
* 'string': `format_schema` — это буквальное содержимое схемы.
* 'query': `format_schema` — это запрос для получения схемы.
  Если `format_schema_source` установлено в значение 'query', действуют следующие условия:
* Запрос должен возвращать ровно одно значение: одну строку с одним строковым столбцом.
* Результат запроса считается содержимым схемы.
* Этот результат кэшируется локально в каталоге `format_schemas`.
* Локальный кэш можно очистить с помощью команды: `SYSTEM DROP FORMAT SCHEMA CACHE FOR Files`.
* После кэширования одинаковые запросы больше не выполняются для повторного получения схемы, пока кэш не будет явно очищен.
* Помимо файлов локального кэша, сообщения Protobuf также кэшируются в памяти. Даже после очистки файлов локального кэша кэш в памяти необходимо очистить с помощью `SYSTEM DROP FORMAT SCHEMA CACHE [FOR Protobuf]`, чтобы полностью обновить схему.
* Выполните запрос `SYSTEM DROP FORMAT SCHEMA CACHE`, чтобы сразу очистить кэш и для файлов кэша, и для схем сообщений Protobuf.

<div id="format_template_resultset">
  ## format\_template\_resultset
</div>

Путь к файлу, содержащему строку формата для результирующего набора (для формата Template)

<div id="format_template_resultset_format">
  ## format\_template\_resultset\_format
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": ""},{"label": "Строку формата результирующего набора для формата Template можно задать в запросе"}]}]} />

Строка формата результирующего набора (для формата Template)

<div id="format_template_row">
  ## format\_template\_row
</div>

Путь к файлу, содержащему строку формата для строк (для формата Template)

<div id="format_template_row_format">
  ## format\_template\_row\_format
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": ""},{"label": "Строку формата строк можно задать прямо в запросе"}]}]} />

Строка формата строк (для формата Template)

<div id="format_template_rows_between_delimiter">
  ## format\_template\_rows\_between\_delimiter
</div>

<SettingsInfoBlock
  type="String"
  default_value="
"
/>

Разделитель строк (для формата Template)

<div id="format_tsv_null_representation">
  ## format\_tsv\_null\_representation
</div>

<SettingsInfoBlock type="String" default_value="\N" />

Настраиваемое представление значения NULL для формата TSV

<div id="input_format_allow_errors_num">
  ## input\_format\_allow\_errors\_num
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

Задаёт максимально допустимое число ошибок при чтении из текстовых форматов (CSV, TSV и т. д.).

Значение по умолчанию — 0.

Всегда используйте его вместе с `input_format_allow_errors_ratio`.

Если при чтении строк произошла ошибка, но счётчик ошибок всё ещё меньше `input_format_allow_errors_num`, ClickHouse игнорирует строку и переходит к следующей.

Если превышены и `input_format_allow_errors_num`, и `input_format_allow_errors_ratio`, ClickHouse генерирует исключение.

<div id="input_format_allow_errors_ratio">
  ## input\_format\_allow\_errors\_ratio
</div>

<SettingsInfoBlock type="Float" default_value="0" />

Задаёт максимально допустимую долю ошибок при чтении данных в текстовых форматах (CSV, TSV и т. д.).
Доля ошибок задаётся числом с плавающей точкой в диапазоне от 0 до 1.

Значение по умолчанию — 0.

Всегда используйте его вместе с `input_format_allow_errors_num`.

Если при чтении строк произошла ошибка, но счётчик ошибок всё ещё меньше `input_format_allow_errors_ratio`, ClickHouse игнорирует строку и переходит к следующей.

Если превышены и `input_format_allow_errors_num`, и `input_format_allow_errors_ratio`, ClickHouse генерирует исключение.

<div id="input_format_allow_seeks">
  ## input\_format\_allow\_seeks
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Разрешает операции `seek` (или чтение диапазонов) при чтении входных форматов ORC, Parquet и Arrow.
Если параметр включен и источник это поддерживает (например, локальный файл, S3, HTTP с поддержкой диапазонов и известным размером),
ClickHouse может читать только нужные диапазоны байтов и использовать меньше памяти.
Если параметр отключен или источник не поддерживает `seek` (например, размер файла неизвестен или поток не поддерживает `seek`),
некоторые средства чтения могут переключиться на загрузку всего файла в память.
Включено по умолчанию.

<div id="input_format_arrow_allow_missing_columns">
  ## input\_format\_arrow\_allow\_missing\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.12"},{"label": "1"},{"label": "По умолчанию разрешает отсутствие столбцов в файлах Arrow"}]}]} />

Разрешает отсутствие столбцов при чтении входных форматов Arrow

<div id="input_format_arrow_case_insensitive_column_matching">
  ## input\_format\_arrow\_case\_insensitive\_column\_matching
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Игнорирует регистр при сопоставлении столбцов Arrow со столбцами ClickHouse.

<div id="input_format_arrow_skip_columns_with_unsupported_types_in_schema_inference">
  ## input\_format\_arrow\_skip\_columns\_with\_unsupported\_types\_in\_schema\_inference
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Пропускать столбцы с неподдерживаемыми типами при определении схемы для формата Arrow

<div id="input_format_avro_allow_missing_fields">
  ## input\_format\_avro\_allow\_missing\_fields
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Для формата Avro/AvroConfluent: если поле не найдено в схеме, использовать значение по умолчанию вместо выдачи ошибки

<div id="input_format_avro_null_as_default">
  ## input\_format\_avro\_null\_as\_default
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Для формата Avro/AvroConfluent: использовать значение по умолчанию, если передан null, а столбец не имеет типа Nullable

<div id="input_format_binary_decode_types_in_binary_format">
  ## input\_format\_binary\_decode\_types\_in\_binary\_format
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "Добавлена новая настройка, позволяющая читать названия типов в бинарном формате во входном формате RowBinaryWithNamesAndTypes"}]}]} />

Читать типы данных в бинарном формате вместо названий типов во входном формате RowBinaryWithNamesAndTypes

<div id="input_format_binary_max_type_complexity">
  ## input\_format\_binary\_max\_type\_complexity
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.1"},{"label": "1000"},{"label": "Добавлена новая настройка, управляющая максимальным количеством узлов типа при декодировании бинарных типов. Защищает от вредоносного ввода."}]}]} />

Максимальное количество узлов типа при декодировании бинарных типов (не глубина, а общее число). `Map(String, UInt32)` = 3 узла. Защищает от вредоносного ввода. 0 = без ограничений.

<div id="input_format_binary_read_json_as_string">
  ## input\_format\_binary\_read\_json\_as\_string
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "Добавлена новая настройка для чтения значений типа JSON как строк JSON во входном формате RowBinary"}]}]} />

Считывать значения типа данных [JSON](/ru/reference/data-types/newjson) как значения [String](/ru/reference/data-types/string), содержащие JSON, во входном формате RowBinary.

<div id="input_format_bson_skip_fields_with_unsupported_types_in_schema_inference">
  ## input\_format\_bson\_skip\_fields\_with\_unsupported\_types\_in\_schema\_inference
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Пропускать поля с неподдерживаемыми типами при определении схемы для формата BSON.

<div id="input_format_capn_proto_skip_fields_with_unsupported_types_in_schema_inference">
  ## input\_format\_capn\_proto\_skip\_fields\_with\_unsupported\_types\_in\_schema\_inference
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Пропускать столбцы с неподдерживаемыми типами при определении схемы для формата CapnProto

<div id="input_format_column_name_matching_mode">
  ## input\_format\_column\_name\_matching\_mode
</div>

<SettingsInfoBlock type="InputFormatColumnMatchingCaseSensitivity" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": "auto"},{"label": "Сначала сопоставляет имена входных столбцов с учётом регистра, а если это не удаётся, использует регистронезависимое сопоставление вместо того, чтобы требовать точного совпадения регистра."}]}, {"id": "row-2","items": [{"label": "26.4"},{"label": "match_case"},{"label": "Новая настройка."}]}]} />

Определяет режим сопоставления имён столбцов при ингестии данных в различных форматах (включая, помимо прочего, JSONEachRow, CSVWithNames, JSONColumns, BSONEachRow, RowBinaryWithNames).
Поддерживаемые режимы:

* match\_case: сопоставление с учётом регистра
  * ignore\_case: регистронезависимое сопоставление
  * auto: сначала пытается сопоставить с учётом регистра, а если это не удаётся — регистронезависимо.

<div id="input_format_connection_handling">
  ## input\_format\_connection\_handling
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "Новая настройка, позволяющая разбирать и обрабатывать оставшиеся в буфере данные, если соединение неожиданно закрывается"}]}]} />

Если эта опция включена и соединение неожиданно закрывается, все оставшиеся в буфере данные будут разобраны и обработаны, а не считаться ошибкой

<Note>
  Включение этой опции отключает параллельный разбор и делает дедупликацию невозможной
</Note>

<div id="input_format_csv_allow_cr_end_of_line">
  ## input\_format\_csv\_allow\_cr\_end\_of\_line
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Если задано значение true, \r допускается в конце строки, если за ним не следует

<div id="input_format_csv_allow_variable_number_of_columns">
  ## input\_format\_csv\_allow\_variable\_number\_of\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Игнорировать лишние столбцы во входных CSV-данных (если в файле столбцов больше, чем ожидается) и считать отсутствующие поля во входных CSV-данных значениями по умолчанию

<div id="input_format_csv_allow_whitespace_or_tab_as_delimiter">
  ## input\_format\_csv\_allow\_whitespace\_or\_tab\_as\_delimiter
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Разрешает использовать пробелы и символы табуляции(\t) в качестве разделителей полей в строках CSV

<div id="input_format_csv_arrays_as_nested_csv">
  ## input\_format\_csv\_arrays\_as\_nested\_csv
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

При чтении Array из CSV предполагается, что его элементы были сериализованы во вложенном CSV, а затем помещены в строку. Example: "\[""Hello"", ""world"", ""42"""" TV""]". Скобки вокруг массива можно не указывать.

<div id="input_format_csv_deserialize_separate_columns_into_tuple">
  ## input\_format\_csv\_deserialize\_separate\_columns\_into\_tuple
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "1"},{"label": "Добавлен новый способ интерпретации Tuple в формате CSV."}]}, {"id": "row-2","items": [{"label": "24.3"},{"label": "1"},{"label": "Добавлен новый способ интерпретации Tuple в формате CSV."}]}]} />

Если задано значение true, отдельные столбцы, записанные в формате CSV, могут быть десериализованы в столбец Tuple.

<div id="input_format_csv_detect_header">
  ## input\_format\_csv\_detect\_header
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.1"},{"label": "1"},{"label": "По умолчанию автоматически определять заголовок с именами и типами в формате CSV"}]}]} />

Автоматически определяет заголовок с именами и типами в формате CSV

<div id="input_format_csv_empty_as_default">
  ## input\_format\_csv\_empty\_as\_default
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Считать пустые поля во входных CSV-данных значениями по умолчанию.

<div id="input_format_csv_enum_as_number">
  ## input\_format\_csv\_enum\_as\_number
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Рассматривать вставляемые значения enum в форматах CSV как индексы enum

<div id="input_format_csv_skip_first_lines">
  ## input\_format\_csv\_skip\_first\_lines
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

Пропускать указанное число строк в начале данных в формате CSV

<div id="input_format_csv_skip_trailing_empty_lines">
  ## input\_format\_csv\_skip\_trailing\_empty\_lines
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Пропускать пустые строки в конце в формате CSV

<div id="input_format_csv_trim_whitespaces">
  ## input\_format\_csv\_trim\_whitespaces
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Удаляет пробелы и символы табуляции (\t) в начале и в конце CSV-строк

<div id="input_format_csv_try_infer_numbers_from_strings">
  ## input\_format\_csv\_try\_infer\_numbers\_from\_strings
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Если включено, при определении схемы ClickHouse будет пытаться определять числа в строковых полях.
Это может быть полезно, если данные CSV содержат числа UInt64 в кавычках.

По умолчанию отключено.

<div id="input_format_csv_try_infer_strings_from_quoted_tuples">
  ## input\_format\_csv\_try\_infer\_strings\_from\_quoted\_tuples
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "1"},{"label": "Добавлен новый способ интерпретации кортежей в формате CSV."}]}, {"id": "row-2","items": [{"label": "24.3"},{"label": "1"},{"label": "Добавлен новый способ интерпретации кортежей в формате CSV."}]}]} />

Интерпретирует кортежи во входных данных, заключённые в кавычки, как значение типа String.

<div id="input_format_csv_use_best_effort_in_schema_inference">
  ## input\_format\_csv\_use\_best\_effort\_in\_schema\_inference
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Использовать дополнительные настройки и эвристики для определения схемы в формате CSV

<div id="input_format_csv_use_default_on_bad_values">
  ## input\_format\_csv\_use\_default\_on\_bad\_values
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Разрешает использовать значение по умолчанию для столбца, если десериализация поля CSV завершилась ошибкой из-за некорректного значения

<div id="input_format_custom_allow_variable_number_of_columns">
  ## input\_format\_custom\_allow\_variable\_number\_of\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Игнорирует лишние столбцы во входных данных CustomSeparated (если файл содержит больше столбцов, чем ожидается) и обрабатывает отсутствующие поля во входных данных CustomSeparated как значения по умолчанию

<div id="input_format_custom_detect_header">
  ## input\_format\_custom\_detect\_header
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.1"},{"label": "1"},{"label": "По умолчанию определять заголовок в формате CustomSeparated"}]}]} />

Автоматически определять заголовок с именами и типами в формате CustomSeparated

<div id="input_format_custom_skip_trailing_empty_lines">
  ## input\_format\_custom\_skip\_trailing\_empty\_lines
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Пропускать пустые строки в конце в формате CustomSeparated

<div id="input_format_defaults_for_omitted_fields">
  ## input\_format\_defaults\_for\_omitted\_fields
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "19.12"},{"label": "1"},{"label": "Включить вычисление сложных выражений по умолчанию для пропущенных полей в некоторых форматах ввода, поскольку это соответствует ожидаемому поведению"}]}]} />

При выполнении запросов `INSERT` пропущенные значения входных столбцов заменяются значениями по умолчанию соответствующих столбцов. Этот параметр применяется к форматам [JSONEachRow](/ru/reference/formats/JSON/JSONEachRow) (и другим JSON-форматам), [CSV](/ru/reference/formats/CSV/CSV), [TabSeparated](/ru/reference/formats/TabSeparated/TabSeparated), [TSKV](/ru/reference/formats/TabSeparated/TSKV), [Parquet](/ru/reference/formats/Parquet/Parquet), [Arrow](/ru/reference/formats/Arrow/Arrow), [Avro](/ru/reference/formats/Avro/Avro), [ORC](/ru/reference/formats/ORC), [Native](/ru/reference/formats/Native), а также к форматам с суффиксами `WithNames`/`WithNamesAndTypes`.

<Note>
  Когда этот параметр включен, с сервера клиенту отправляются расширенные метаданные таблицы. Это требует дополнительных вычислительных ресурсов на сервере и может снизить производительность.
</Note>

Возможные значения:

* 0 — Отключено.
* 1 — Включено.

<div id="input_format_force_null_for_omitted_fields">
  ## input\_format\_force\_null\_for\_omitted\_fields
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.5"},{"label": "0"},{"label": "Отключает значения по умолчанию для типа у пропущенных полей, когда это необходимо"}]}]} />

Принудительно инициализирует пропущенные поля значениями NULL

<div id="input_format_hive_text_allow_variable_number_of_columns">
  ## input\_format\_hive\_text\_allow\_variable\_number\_of\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "1"},{"label": "Игнорировать лишние столбцы во входных данных Hive Text (если в файле столбцов больше, чем ожидается) и считать отсутствующие поля во входных данных Hive Text значениями по умолчанию."}]}]} />

Игнорировать лишние столбцы во входных данных Hive Text (если в файле столбцов больше, чем ожидается) и считать отсутствующие поля во входных данных Hive Text значениями по умолчанию

<div id="input_format_hive_text_collection_items_delimiter">
  ## input\_format\_hive\_text\_collection\_items\_delimiter
</div>

<SettingsInfoBlock type="Char" default_value="" />

Разделитель между элементами коллекций (Array или Map) в формате Hive Text File

<div id="input_format_hive_text_fields_delimiter">
  ## input\_format\_hive\_text\_fields\_delimiter
</div>

<SettingsInfoBlock type="Char" default_value="" />

Разделитель полей в Hive Text File

<div id="input_format_hive_text_map_keys_delimiter">
  ## input\_format\_hive\_text\_map\_keys\_delimiter
</div>

<SettingsInfoBlock type="Char" default_value="" />

Разделитель между ключом и значением в паре map в Hive Text File

<div id="input_format_import_nested_json">
  ## input\_format\_import\_nested\_json
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Включает или отключает вставку JSON-данных с вложенными объектами.

Поддерживаемые форматы:

* [JSONEachRow](/ru/reference/formats/JSON/JSONEachRow)

Возможные значения:

* 0 — Отключено.
* 1 — Включено.

См. также:

* [Использование вложенных структур](/ru/guides/clickhouse/data-formats/json/formats#accessing-nested-json-objects) в формате `JSONEachRow`.

<div id="input_format_ipv4_default_on_conversion_error">
  ## input\_format\_ipv4\_default\_on\_conversion\_error
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

При десериализации IPv4 при ошибке преобразования будут использоваться значения по умолчанию вместо генерации исключения.

По умолчанию отключено.

<div id="input_format_ipv6_default_on_conversion_error">
  ## input\_format\_ipv6\_default\_on\_conversion\_error
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

При десериализации IPv6 при ошибке преобразования будут использоваться значения по умолчанию вместо генерации исключения.

По умолчанию отключено.

<div id="input_format_json_compact_allow_variable_number_of_columns">
  ## input\_format\_json\_compact\_allow\_variable\_number\_of\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Разрешает переменное число столбцов в строках входных форматов JSONCompact/JSONCompactEachRow.
Лишние столбцы в строках, где столбцов больше, чем ожидается, игнорируются, а отсутствующим столбцам присваиваются значения по умолчанию.

По умолчанию отключено.

<div id="input_format_json_defaults_for_missing_elements_in_named_tuple">
  ## input\_format\_json\_defaults\_for\_missing\_elements\_in\_named\_tuple
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.1"},{"label": "1"},{"label": "По умолчанию разрешает отсутствие элементов в объектах JSON при чтении именованных кортежей"}]}]} />

Подставляет значения по умолчанию для отсутствующих элементов в объекте JSON при обработке именованного кортежа.
Этот параметр работает, только если включен параметр `input_format_json_named_tuples_as_objects`.

Включен по умолчанию.

<div id="input_format_json_empty_as_default">
  ## input\_format\_json\_empty\_as\_default
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "Добавлена новая настройка, позволяющая трактовать пустые поля во входном JSON как значения по умолчанию."}]}]} />

Если параметр включен, пустые поля во входном JSON заменяются значениями по умолчанию. Для сложных выражений со значениями по умолчанию также должен быть включен параметр `input_format_defaults_for_omitted_fields`.

Возможные значения:

* 0 — Отключено.
* 1 — Включено.

<div id="input_format_json_ignore_unknown_keys_in_named_tuple">
  ## input\_format\_json\_ignore\_unknown\_keys\_in\_named\_tuple
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.3"},{"label": "1"},{"label": "Улучшен парсинг объектов JSON как именованных кортежей"}]}]} />

Игнорирует неизвестные ключи в объекте JSON для именованных кортежей.

Включено по умолчанию.

<div id="input_format_json_ignore_unnecessary_fields">
  ## input\_format\_json\_ignore\_unnecessary\_fields
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "1"},{"label": "Игнорировать лишние поля и не разбирать их. При включении этого параметра исключения для строк JSON с некорректным форматом или дублирующимися полями могут не генерироваться"}]}]} />

Игнорировать лишние поля и не разбирать их. При включении этого параметра исключения для строк JSON с некорректным форматом или дублирующимися полями могут не генерироваться

<div id="input_format_json_infer_array_of_dynamic_from_array_of_different_types">
  ## input\_format\_json\_infer\_array\_of\_dynamic\_from\_array\_of\_different\_types
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "По умолчанию определяет тип Array(Dynamic) для JSON-массивов со значениями разных типов данных"}]}]} />

Если параметр включен, при определении схемы ClickHouse будет использовать тип Array(Dynamic) для JSON-массивов со значениями разных типов данных.

Пример:

```sql theme={null}
SET input_format_json_infer_array_of_dynamic_from_array_of_different_types=1;
DESC format(JSONEachRow, '{"a" : [42, "hello", [1, 2, 3]]}');
```

```response theme={null}
┌─name─┬─type───────────┐
│ a    │ Array(Dynamic) │
└──────┴────────────────┘
```

```sql theme={null}
SET input_format_json_infer_array_of_dynamic_from_array_of_different_types=0;
DESC format(JSONEachRow, '{"a" : [42, "hello", [1, 2, 3]]}');
```

```response theme={null}
┌─name─┬─type─────────────────────────────────────────────────────────────┐
│ a    │ Tuple(Nullable(Int64), Nullable(String), Array(Nullable(Int64))) │
└──────┴──────────────────────────────────────────────────────────────────┘
```

Включено по умолчанию.

<div id="input_format_json_infer_incomplete_types_as_strings">
  ## input\_format\_json\_infer\_incomplete\_types\_as\_strings
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.9"},{"label": "1"},{"label": "По умолчанию позволяет определять неполные типы как Strings в JSON-форматах"}]}]} />

Позволяет использовать тип String для JSON-ключей, которые в выборке данных при автоматическом определении схемы содержат только `Null`/`{}`/`[]`.
В JSON-форматах любое значение можно прочитать как String, и благодаря этому можно избежать ошибок вида `Cannot determine type for column 'column_name' by first 25000 rows of data, most likely this column contains only Nulls or empty Arrays/Maps` при автоматическом определении схемы,
используя тип String для ключей с неизвестными типами.

Пример:

```sql theme={null}
SET input_format_json_infer_incomplete_types_as_strings = 1, input_format_json_try_infer_named_tuples_from_objects = 1;
DESCRIBE format(JSONEachRow, '{"obj" : {"a" : [1,2,3], "b" : "hello", "c" : null, "d" : {}, "e" : []}}');
SELECT * FROM format(JSONEachRow, '{"obj" : {"a" : [1,2,3], "b" : "hello", "c" : null, "d" : {}, "e" : []}}');
```

Результат:

```
┌─name─┬─type───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┐
│ obj  │ Tuple(a Array(Nullable(Int64)), b Nullable(String), c Nullable(String), d Nullable(String), e Array(Nullable(String))) │              │                    │         │                  │                │
└──────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘

┌─obj────────────────────────────┐
│ ([1,2,3],'hello',NULL,'{}',[]) │
└────────────────────────────────┘
```

Включено по умолчанию.

<div id="input_format_json_map_as_array_of_tuples">
  ## input\_format\_json\_map\_as\_array\_of\_tuples
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "0"},{"label": "новая настройка"}]}]} />

Десериализует столбцы типа Map как JSON-массивы кортежей.

По умолчанию отключено.

<div id="input_format_json_max_depth">
  ## input\_format\_json\_max\_depth
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "1000"},{"label": "В предыдущих версиях ограничение отсутствовало, но это было небезопасно."}]}]} />

Максимальная глубина поля в JSON. Это не жёсткое ограничение, и оно не обязано соблюдаться в точности.

<div id="input_format_json_named_tuples_as_objects">
  ## input\_format\_json\_named\_tuples\_as\_objects
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Разбирать столбцы с именованными кортежами как объекты JSON.

Включено по умолчанию.

<div id="input_format_json_read_arrays_as_strings">
  ## input\_format\_json\_read\_arrays\_as\_strings
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.9"},{"label": "1"},{"label": "По умолчанию разрешает читать массивы как строки во входных JSON-форматах"}]}]} />

Разрешает разбирать JSON-массивы как строки во входных JSON-форматах.

Пример:

```sql theme={null}
SET input_format_json_read_arrays_as_strings = 1;
SELECT arr, toTypeName(arr), JSONExtractArrayRaw(arr)[3] from format(JSONEachRow, 'arr String', '{"arr" : [1, "Hello", [1,2,3]]}');
```

Результат:

```
┌─arr───────────────────┬─toTypeName(arr)─┬─arrayElement(JSONExtractArrayRaw(arr), 3)─┐
│ [1, "Hello", [1,2,3]] │ String          │ [1,2,3]                                   │
└───────────────────────┴─────────────────┴───────────────────────────────────────────┘
```

Включено по умолчанию.

<div id="input_format_json_read_bools_as_numbers">
  ## input\_format\_json\_read\_bools\_as\_numbers
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Разрешает разбирать логические значения как числа во входных JSON-форматах.

Включено по умолчанию.

<div id="input_format_json_read_bools_as_strings">
  ## input\_format\_json\_read\_bools\_as\_strings
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "1"},{"label": "По умолчанию разрешает считывать булевы значения как строки в JSON-форматах"}]}]} />

Разрешает считывать булевы значения как строки во входных JSON-форматах.

Включено по умолчанию.

<div id="input_format_json_read_numbers_as_strings">
  ## input\_format\_json\_read\_numbers\_as\_strings
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.9"},{"label": "1"},{"label": "Разрешает по умолчанию читать числа как строки в JSON-форматах"}]}]} />

Разрешает разбирать числа как строки во входных JSON-форматах.

Включено по умолчанию.

<div id="input_format_json_read_objects_as_strings">
  ## input\_format\_json\_read\_objects\_as\_strings
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.1"},{"label": "1"},{"label": "Включает чтение вложенных JSON-объектов как строк, пока тип object является экспериментальным"}]}]} />

Разрешает парсинг объектов JSON как строк в JSON-форматах ввода.

Пример:

```sql theme={null}
SET input_format_json_read_objects_as_strings = 1;
CREATE TABLE test (id UInt64, obj String, date Date) ENGINE=Memory();
INSERT INTO test FORMAT JSONEachRow {"id" : 1, "obj" : {"a" : 1, "b" : "Hello"}, "date" : "2020-01-01"};
SELECT * FROM test;
```

Результат:

```
┌─id─┬─obj──────────────────────┬───────date─┐
│  1 │ {"a" : 1, "b" : "Hello"} │ 2020-01-01 │
└────┴──────────────────────────┴────────────┘
```

Включено по умолчанию.

<div id="input_format_json_throw_on_bad_escape_sequence">
  ## input\_format\_json\_throw\_on\_bad\_escape\_sequence
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.4"},{"label": "1"},{"label": "Разрешает сохранять строки JSON с некорректными escape-последовательностями"}]}]} />

Генерирует исключение, если строка JSON содержит некорректную escape-последовательность во входных JSON-форматах. Если параметр отключен, некорректные escape-последовательности останутся в данных как есть.

Включено по умолчанию.

<div id="input_format_json_try_infer_named_tuples_from_objects">
  ## input\_format\_json\_try\_infer\_named\_tuples\_from\_objects
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.9"},{"label": "1"},{"label": "По умолчанию пытаться определять именованные Tuple из объектов JSON"}]}]} />

Если включено, то при определении схемы ClickHouse будет пытаться определять именованный Tuple из объектов JSON.
Получившийся именованный Tuple будет содержать все элементы из всех соответствующих объектов JSON в выборке данных.

Пример:

```sql theme={null}
SET input_format_json_try_infer_named_tuples_from_objects = 1;
DESC format(JSONEachRow, '{"obj" : {"a" : 42, "b" : "Hello"}}, {"obj" : {"a" : 43, "c" : [1, 2, 3]}}, {"obj" : {"d" : {"e" : 42}}}')
```

Результат:

```
┌─name─┬─type───────────────────────────────────────────────────────────────────────────────────────────────┬─default_type─┬─default_expression─┬─comment─┬─codec_expression─┬─ttl_expression─┐
│ obj  │ Tuple(a Nullable(Int64), b Nullable(String), c Array(Nullable(Int64)), d Tuple(e Nullable(Int64))) │              │                    │         │                  │                │
└──────┴────────────────────────────────────────────────────────────────────────────────────────────────────┴──────────────┴────────────────────┴─────────┴──────────────────┴────────────────┘
```

Включено по умолчанию.

<div id="input_format_json_try_infer_numbers_from_strings">
  ## input\_format\_json\_try\_infer\_numbers\_from\_strings
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.9"},{"label": "0"},{"label": "По умолчанию не определять числа из строк в JSON-форматах, чтобы избежать возможных ошибок разбора"}]}]} />

Если включено, при определении схемы ClickHouse будет пытаться определять числа из строковых полей.
Это может быть полезно, если данные JSON содержат числа UInt64 в кавычках.

По умолчанию отключено.

<div id="input_format_json_use_string_type_for_ambiguous_paths_in_named_tuples_inference_from_objects">
  ## input\_format\_json\_use\_string\_type\_for\_ambiguous\_paths\_in\_named\_tuples\_inference\_from\_objects
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "Разрешить использовать тип String вместо исключения при неоднозначных путях в объектах JSON во время определения именованных кортежей"}]}]} />

Использовать тип String вместо исключения при неоднозначных путях в объектах JSON во время определения именованных кортежей

<div id="input_format_json_validate_types_from_metadata">
  ## input\_format\_json\_validate\_types\_from\_metadata
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Для входных форматов JSON/JSONCompact/JSONColumnsWithMetadata, если этот параметр установлен в 1,
типы из метаданных во входных данных будут сравниваться с типами соответствующих столбцов таблицы.

Включён по умолчанию.

<div id="input_format_max_block_size_bytes">
  ## input\_format\_max\_block\_size\_bytes
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "0"},{"label": "Новая настройка для ограничения размера блоков в байтах, если они создаются входным форматом"}]}]} />

Ограничивает размер блоков в байтах, формируемых при разборе данных во входных форматах. Используется во входных форматах на основе строк, когда блок формируется на стороне ClickHouse.
0 означает отсутствие ограничения в байтах.

<div id="input_format_max_block_wait_ms">
  ## input\_format\_max\_block\_wait\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "Новая настройка, ограничивающая максимальное время ожидания в миллисекундах перед выдачей блока входным форматом"}]}]} />

Ограничивает максимальное время ожидания в миллисекундах перед выдачей блока при разборе данных в построчных входных форматах. `0` означает отсутствие ограничения.

<Note>
  Этот параметр работает только при включенном `input_format_connection_handling`. Установка значения также отключает параллельный разбор и делает дедупликацию невозможной.
</Note>

<Note>
  Для стриминговых вставок также необходимо задать `min_insert_block_size_rows=0` и `min_insert_block_size_bytes=0`. В противном случае разобранные блоки все равно могут накапливаться в памяти на этапе укрупнения блоков до достижения этих порогов, что мешает своевременной вставке.
</Note>

**Пример: стриминг недавних изменений из Википедии в ClickHouse**

```bash theme={null}
clickhouse-client --query 'CREATE TABLE wikipedia_edits (data JSON)'

curl -sS --globoff -H 'Accept: application/json' --no-buffer \
  'https://stream.wikimedia.org/v2/stream/recentchange' \
  | clickhouse-client \
      --query 'INSERT INTO wikipedia_edits FORMAT JSONAsObject' \
      --input_format_max_block_wait_ms 1000 \
      --input_format_connection_handling 1 \
      --min_insert_block_size_rows 0 \
      --min_insert_block_size_bytes 0
```

<div id="input_format_max_bytes_to_read_for_schema_inference">
  ## input\_format\_max\_bytes\_to\_read\_for\_schema\_inference
</div>

<SettingsInfoBlock type="UInt64" default_value="33554432" />

Максимальный объём данных в байтах, считываемых для автоматического определения схемы.

<div id="input_format_max_rows_to_read_for_schema_inference">
  ## input\_format\_max\_rows\_to\_read\_for\_schema\_inference
</div>

<SettingsInfoBlock type="UInt64" default_value="25000" />

Максимальное количество строк данных, считываемых при автоматическом определении схемы.

<div id="input_format_msgpack_number_of_columns">
  ## input\_format\_msgpack\_number\_of\_columns
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

Количество столбцов во вставляемых данных MsgPack. Используется для автоматического определения схемы по данным.

<div id="input_format_mysql_dump_map_column_names">
  ## input\_format\_mysql\_dump\_map\_column\_names
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Сопоставлять по именам столбцы таблицы из дампа MySQL и столбцы таблицы ClickHouse

<div id="input_format_mysql_dump_table_name">
  ## input\_format\_mysql\_dump\_table\_name
</div>

Имя таблицы в дампе MySQL, из которой считываются данные

<div id="input_format_native_allow_types_conversion">
  ## input\_format\_native\_allow\_types\_conversion
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.3"},{"label": "1"},{"label": "Разрешить преобразование типов в формате ввода Native"}]}]} />

Разрешить преобразование типов в формате ввода Native

<div id="input_format_native_decode_types_in_binary_format">
  ## input\_format\_native\_decode\_types\_in\_binary\_format
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "Добавлена новая настройка, позволяющая читать имена типов в бинарном формате в формате вывода Native"}]}]} />

Читать типы данных в бинарном формате вместо имен типов во входном формате Native

<div id="input_format_null_as_default">
  ## input\_format\_null\_as\_default
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.1"},{"label": "1"},{"label": "По умолчанию разрешает использовать NULL как значение по умолчанию во входных форматах"}]}]} />

Включает или отключает инициализацию полей со значением [NULL](/ru/reference/syntax#literals) [значениями по умолчанию](/ru/reference/statements/create/table#default_values), если тип данных этих полей не [Nullable](/ru/reference/data-types/nullable).
Если тип столбца не Nullable и этот параметр отключен, вставка `NULL` вызывает исключение. Если тип столбца — Nullable, значения `NULL` вставляются как есть независимо от этого параметра.

Этот параметр применяется к большинству входных форматов.

Для сложных выражений со значениями по умолчанию также должен быть включен `input_format_defaults_for_omitted_fields`.

Возможные значения:

* 0 — Вставка `NULL` в столбец, не допускающий NULL, вызывает исключение.
* 1 — Поля со значением `NULL` инициализируются значениями столбца по умолчанию.

<div id="input_format_orc_allow_missing_columns">
  ## input\_format\_orc\_allow\_missing\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.12"},{"label": "1"},{"label": "По умолчанию разрешать отсутствие столбцов в ORC-файлах"}]}]} />

Разрешать отсутствие столбцов при чтении входных данных в формате ORC

<div id="input_format_orc_case_insensitive_column_matching">
  ## input\_format\_orc\_case\_insensitive\_column\_matching
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Игнорировать регистр при сопоставлении столбцов ORC со столбцами ClickHouse.

<div id="input_format_orc_dictionary_as_low_cardinality">
  ## input\_format\_orc\_dictionary\_as\_low\_cardinality
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "1"},{"label": "Обрабатывать столбцы ORC, закодированные словарём, как столбцы LowCardinality при чтении файлов ORC"}]}]} />

Обрабатывать столбцы ORC, закодированные словарём, как столбцы LowCardinality при чтении файлов ORC.

<div id="input_format_orc_filter_push_down">
  ## input\_format\_orc\_filter\_push\_down
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

При чтении файлов ORC пропускает целые stripe или группы строк на основании выражений WHERE/PREWHERE, статистики min/max или bloom filter в метаданных ORC.

<div id="input_format_orc_reader_time_zone_name">
  ## input\_format\_orc\_reader\_time\_zone\_name
</div>

<SettingsInfoBlock type="String" default_value="GMT" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "GMT"},{"label": "Название часового пояса для считывателя строк ORC; по умолчанию для считывателя строк ORC используется GMT."}]}]} />

Название часового пояса для считывателя строк ORC; по умолчанию для считывателя строк ORC используется GMT.

<div id="input_format_orc_row_batch_size">
  ## input\_format\_orc\_row\_batch\_size
</div>

<SettingsInfoBlock type="Int64" default_value="100000" />

Размер батча при чтении сегментов ORC.

<div id="input_format_orc_skip_columns_with_unsupported_types_in_schema_inference">
  ## input\_format\_orc\_skip\_columns\_with\_unsupported\_types\_in\_schema\_inference
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Пропускать столбцы с неподдерживаемыми типами при определении схемы для формата ORC

<div id="input_format_orc_use_fast_decoder">
  ## input\_format\_orc\_use\_fast\_decoder
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Использует более быструю реализацию декодера ORC.

<div id="input_format_parallel_parsing">
  ## input\_format\_parallel\_parsing
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Включает или отключает параллельный разбор форматов данных с сохранением порядка строк. Поддерживается только для форматов [TabSeparated (TSV)](/ru/reference/formats/TabSeparated/TabSeparated), [TSKV](/ru/reference/formats/TabSeparated/TSKV), [CSV](/ru/reference/formats/CSV/CSV) и [JSONEachRow](/ru/reference/formats/JSON/JSONEachRow).

Возможные значения:

* 1 — Включено.
* 0 — Отключено.

<div id="input_format_parquet_allow_geoparquet_parser">
  ## input\_format\_parquet\_allow\_geoparquet\_parser
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "Новая настройка для использования гео-столбцов в файле Parquet"}]}]} />

Используйте парсер гео-столбцов для преобразования Array(UInt8) в типы Point/Linestring/Polygon/MultiLineString/MultiPolygon

<div id="input_format_parquet_allow_missing_columns">
  ## input\_format\_parquet\_allow\_missing\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.12"},{"label": "1"},{"label": "По умолчанию разрешает отсутствующие столбцы в файлах Parquet"}]}]} />

Разрешает отсутствующие столбцы при чтении данных в формате Parquet

<div id="input_format_parquet_bloom_filter_push_down">
  ## input\_format\_parquet\_bloom\_filter\_push\_down
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "1"},{"label": "При чтении файлов Parquet пропускать целые группы строк по выражениям WHERE/PREWHERE и bloom filter в метаданных Parquet."}]}, {"id": "row-2","items": [{"label": "24.10"},{"label": "0"},{"label": "При чтении файлов Parquet пропускать целые группы строк по выражениям WHERE/PREWHERE и bloom filter в метаданных Parquet."}]}]} />

При чтении файлов Parquet пропускать целые группы строк по выражениям WHERE и bloom filter в метаданных Parquet.

<div id="input_format_parquet_case_insensitive_column_matching">
  ## input\_format\_parquet\_case\_insensitive\_column\_matching
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Игнорировать регистр при сопоставлении столбцов Parquet со столбцами ClickHouse.

<div id="input_format_parquet_enable_json_parsing">
  ## input\_format\_parquet\_enable\_json\_parsing
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "1"},{"label": "При чтении файлов Parquet разбирать JSON-столбцы как JSON-столбцы ClickHouse."}]}]} />

При чтении файлов Parquet разбирать JSON-столбцы как JSON-столбцы ClickHouse.

<div id="input_format_parquet_enable_row_group_prefetch">
  ## input\_format\_parquet\_enable\_row\_group\_prefetch
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "1"},{"label": "Включает предзагрузку групп строк при парсинге Parquet. В настоящее время предзагрузка поддерживается только при однопоточном парсинге."}]}]} />

Включает предзагрузку групп строк при парсинге Parquet. В настоящее время предзагрузка поддерживается только при однопоточном парсинге.

<div id="input_format_parquet_filter_push_down">
  ## input\_format\_parquet\_filter\_push\_down
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

При чтении файлов Parquet пропускает целые группы строк на основе выражений WHERE/PREWHERE и статистики min/max из метаданных Parquet.

<div id="input_format_parquet_local_file_min_bytes_for_seek">
  ## input\_format\_parquet\_local\_file\_min\_bytes\_for\_seek
</div>

<SettingsInfoBlock type="UInt64" default_value="8192" />

Минимальное число байтов при локальном чтении из файла, необходимое для выполнения seek вместо чтения с пропуском во входном формате Parquet

<div id="input_format_parquet_local_time_as_utc">
  ## input\_format\_parquet\_local\_time\_as\_utc
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "Использовать более подходящий тип DateTime64(..., 'UTC') для типа Parquet 'local time without timezone'."}]}]} />

Определяет тип данных, используемый при определении схемы для временных меток Parquet с `isAdjustedToUTC=false`. Если true: DateTime64(..., 'UTC'), если false: DateTime64(...). Ни один из вариантов не является полностью корректным, поскольку в ClickHouse нет типа данных для локального времени на часах. Как ни парадоксально, вариант `true`, вероятно, менее ошибочен, потому что форматирование временной метки `UTC` как String даст корректное представление локального времени.

<div id="input_format_parquet_max_block_size">
  ## input\_format\_parquet\_max\_block\_size
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="65409" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "65409"},{"label": "Увеличен размер блока для ридера Parquet."}]}]} />

Максимальный размер блока для ридера Parquet.

<div id="input_format_parquet_memory_high_watermark">
  ## input\_format\_parquet\_memory\_high\_watermark
</div>

<SettingsInfoBlock type="UInt64" default_value="4294967296" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "4294967296"},{"label": "новая настройка"}]}]} />

Примерный лимит памяти для ридера Parquet v3. Ограничивает количество групп строк или столбцов, которые можно читать параллельно. При чтении нескольких файлов в одном запросе лимит распространяется на общее использование памяти для всех этих файлов.

<div id="input_format_parquet_memory_low_watermark">
  ## input\_format\_parquet\_memory\_low\_watermark
</div>

<SettingsInfoBlock type="UInt64" default_value="2097152" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "2097152"},{"label": "новая настройка"}]}]} />

Более агрессивно планирует операции предварительного чтения, если использование памяти ниже порога. Может быть полезно, например, если по сети нужно считывать много небольших bloom-фильтров.

<div id="input_format_parquet_page_filter_push_down">
  ## input\_format\_parquet\_page\_filter\_push\_down
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "новая настройка (не действует, если input_format_parquet_use_native_reader_v3 отключён)"}]}]} />

Пропускать страницы по минимальным/максимальным значениям из индекса столбца.

<div id="input_format_parquet_prefer_block_bytes">
  ## input\_format\_parquet\_prefer\_block\_bytes
</div>

<SettingsInfoBlock type="UInt64" default_value="16744704" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "16744704"},{"label": "Средний размер в байтах блока, выдаваемого ридером Parquet."}]}]} />

Средний размер в байтах блока, выдаваемого ридером Parquet

<div id="input_format_parquet_preserve_order">
  ## input\_format\_parquet\_preserve\_order
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.5"},{"label": "0"},{"label": "Разрешить ридеру Parquet переупорядочивать строки для повышения параллелизма."}]}]} />

Не переупорядочивать строки при чтении из файлов Parquet. Не рекомендуется, так как порядок строк обычно не гарантируется, а другие части конвейера выполнения запроса могут его нарушить. Вместо этого используйте `ORDER BY _row_number`.

<div id="input_format_parquet_skip_columns_with_unsupported_types_in_schema_inference">
  ## input\_format\_parquet\_skip\_columns\_with\_unsupported\_types\_in\_schema\_inference
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Пропускать столбцы с неподдерживаемыми типами при автоматическом определении схемы для формата Parquet

<div id="input_format_parquet_use_offset_index">
  ## input\_format\_parquet\_use\_offset\_index
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "Новая настройка (не влияет, если input_format_parquet_use_native_reader_v3 отключён)"}]}]} />

Небольшое изменение логики чтения страниц из файла Parquet, когда фильтрация страниц не используется.

<div id="input_format_parquet_verify_checksums">
  ## input\_format\_parquet\_verify\_checksums
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "Новая настройка"}]}]} />

Проверять контрольные суммы страниц при чтении файлов Parquet.

<div id="input_format_protobuf_flatten_google_wrappers">
  ## input\_format\_protobuf\_flatten\_google\_wrappers
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Включает обёртки Google для обычных невложенных столбцов, например google.protobuf.StringValue 'str' для столбца String 'str'. Для столбцов с типом Nullable пустые обёртки распознаются как значения по умолчанию, а отсутствующие — как NULL

<div id="input_format_protobuf_oneof_presence">
  ## input\_format\_protobuf\_oneof\_presence
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.9"},{"label": "0"},{"label": "новая настройка"}]}]} />

Указывает, какое поле protobuf oneof было найдено, задавая значение enum в специальном столбце

<div id="input_format_protobuf_skip_fields_with_unsupported_types_in_schema_inference">
  ## input\_format\_protobuf\_skip\_fields\_with\_unsupported\_types\_in\_schema\_inference
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Пропускать поля с неподдерживаемыми типами при автоматическом определении схемы для формата Protobuf

<div id="input_format_record_errors_file_path">
  ## input\_format\_record\_errors\_file\_path
</div>

Путь к файлу, используемому для записи ошибок при чтении текстовых форматов (CSV, TSV).

<div id="input_format_skip_unknown_fields">
  ## input\_format\_skip\_unknown\_fields
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.6"},{"label": "1"},{"label": "Оптимизация чтения подмножества столбцов для некоторых входных форматов"}]}]} />

Включает или отключает пропуск дополнительных данных при вставке.

При записи данных ClickHouse генерирует исключение, если входные данные содержат столбцы, которых нет в целевой таблице. Если пропуск включен, ClickHouse не вставляет дополнительные данные и не генерирует исключение.

Поддерживаемые форматы:

* [JSONEachRow](/ru/reference/formats/JSON/JSONEachRow) (и другие JSON-форматы)
* [BSONEachRow](/ru/reference/formats/BSONEachRow) (и другие JSON-форматы)
* [TSKV](/ru/reference/formats/TabSeparated/TSKV)
* Все форматы с суффиксами WithNames/WithNamesAndTypes
* [MySQLDump](/ru/reference/formats/MySQLDump)
* [Native](/ru/reference/formats/Native)

Возможные значения:

* 0 — Отключено.
* 1 — Включено.

<div id="input_format_try_infer_dates">
  ## input\_format\_try\_infer\_dates
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Если включено, ClickHouse будет пытаться автоматически определять тип `Date` по строковым полям при автоматическом определении схемы для текстовых форматов. Если все поля столбца во входных данных были успешно разобраны как даты, результирующий тип будет `Date`; если хотя бы одно поле не удалось разобрать как дату, результирующий тип будет `String`.

Включено по умолчанию.

<div id="input_format_try_infer_datetimes">
  ## input\_format\_try\_infer\_datetimes
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Если включено, ClickHouse будет пытаться определять тип `DateTime64` для строковых полей при автоматическом определении схемы для текстовых форматов. Если все значения в столбце входных данных были успешно разобраны как дата и время, результирующим типом будет `DateTime64`; если хотя бы одно значение не удалось разобрать как дату и время, результирующим типом будет `String`.

Включено по умолчанию.

<div id="input_format_try_infer_datetimes_only_datetime64">
  ## input\_format\_try\_infer\_datetimes\_only\_datetime64
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.8"},{"label": "0"},{"label": "Разрешает автоматически определять DateTime вместо DateTime64 в форматах данных"}]}]} />

Когда включен параметр input\_format\_try\_infer\_datetimes, автоматически определяется только тип DateTime64, но не типы DateTime

<div id="input_format_try_infer_exponent_floats">
  ## input\_format\_try\_infer\_exponent\_floats
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "0"},{"label": "По умолчанию не выполнять определение чисел с плавающей точкой в экспоненциальной записи"}]}]} />

Пытаться определять числа с плавающей точкой в экспоненциальной записи при автоматическом определении схемы в текстовых форматах (кроме JSON, где числа в экспоненциальной записи определяются всегда)

<div id="input_format_try_infer_integers">
  ## input\_format\_try\_infer\_integers
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Если включено, ClickHouse будет пытаться определять целые числа вместо чисел с плавающей точкой при автоматическом определении схемы для текстовых форматов. Если все числа в столбце входных данных являются целыми, результирующим типом будет `Int64`, а если хотя бы одно число является числом с плавающей точкой, результирующим типом будет `Float64`.

Включено по умолчанию.

<div id="input_format_try_infer_variants">
  ## input\_format\_try\_infer\_variants
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "Пытаться определять тип Variant в текстовых форматах, когда для элементов столбца/массива возможно более одного типа"}]}]} />

Если включено, ClickHouse будет пытаться определять тип [`Variant`](/ru/reference/data-types/variant) при автоматическом определении схемы для текстовых форматов, когда для элементов столбца/массива возможно более одного типа.

Возможные значения:

* 0 — Отключено.
* 1 — Включено.

<div id="input_format_tsv_allow_variable_number_of_columns">
  ## input\_format\_tsv\_allow\_variable\_number\_of\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Игнорировать лишние столбцы во входных данных TSV (если в файле столбцов больше, чем ожидается) и трактовать отсутствующие поля во входных данных TSV как значения по умолчанию

<div id="input_format_tsv_crlf_end_of_line">
  ## input\_format\_tsv\_crlf\_end\_of\_line
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.5"},{"label": "0"},{"label": "Включает чтение окончаний строк CRLF в форматах TSV"}]}]} />

Если задано значение true, функция file будет читать формат TSV с окончаниями строк \r\n вместо \n.

<div id="input_format_tsv_detect_header">
  ## input\_format\_tsv\_detect\_header
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.1"},{"label": "1"},{"label": "По умолчанию автоматически определять заголовок в формате TSV"}]}]} />

Автоматически определять в формате TSV заголовок с именами и типами

<div id="input_format_tsv_empty_as_default">
  ## input\_format\_tsv\_empty\_as\_default
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Обрабатывать пустые поля во входных данных TSV как значения по умолчанию.

<div id="input_format_tsv_enum_as_number">
  ## input\_format\_tsv\_enum\_as\_number
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Рассматривать значения enum, вставляемые в форматах TSV, как индексы enum.

<div id="input_format_tsv_skip_first_lines">
  ## input\_format\_tsv\_skip\_first\_lines
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

Пропускать указанное число строк в начале данных в формате TSV

<div id="input_format_tsv_skip_trailing_empty_lines">
  ## input\_format\_tsv\_skip\_trailing\_empty\_lines
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Пропускать пустые строки в конце в формате TSV

<div id="input_format_tsv_use_best_effort_in_schema_inference">
  ## input\_format\_tsv\_use\_best\_effort\_in\_schema\_inference
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Использовать дополнительные настройки и эвристики для автоматического определения схемы в формате TSV

<div id="input_format_values_accurate_types_of_literals">
  ## input\_format\_values\_accurate\_types\_of\_literals
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Для формата Values: при разборе и интерпретации выражений с использованием шаблона проверяйте фактический тип литерала, чтобы избежать возможных проблем с переполнением и потерей точности.

<div id="input_format_values_deduce_templates_of_expressions">
  ## input\_format\_values\_deduce\_templates\_of\_expressions
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Для формата Values: если поле не удалось разобрать стриминговым парсером, запускается SQL-парсер, определяется шаблон SQL-выражения, затем предпринимается попытка разобрать все строки по этому шаблону, после чего выражение интерпретируется для всех строк.

<div id="input_format_values_interpret_expressions">
  ## input\_format\_values\_interpret\_expressions
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Для формата Values: если поле не удалось разобрать стриминговым парсером, запустить SQL-парсер и попытаться интерпретировать его как SQL-выражение.

<div id="input_format_with_names_use_header">
  ## input\_format\_with\_names\_use\_header
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "20.5"},{"label": "1"},{"label": "Использовать заголовок с именами для форматов с суффиксами WithNames/WithNamesAndTypes"}]}]} />

Включает или отключает проверку порядка столбцов при вставке данных.

Чтобы повысить производительность вставки, рекомендуем отключить эту проверку, если вы уверены, что порядок столбцов во входных данных совпадает с порядком столбцов в целевой таблице.

Поддерживаемые форматы:

* [CSVWithNames](/ru/reference/formats/CSV/CSVWithNames)
* [CSVWithNamesAndTypes](/ru/reference/formats/CSV/CSVWithNamesAndTypes)
* [TabSeparatedWithNames](/ru/reference/formats/TabSeparated/TabSeparatedWithNames)
* [TabSeparatedWithNamesAndTypes](/ru/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes)
* [JSONCompactEachRowWithNames](/ru/reference/formats/JSON/JSONCompactEachRowWithNames)
* [JSONCompactEachRowWithNamesAndTypes](/ru/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes)
* [JSONCompactStringsEachRowWithNames](/ru/reference/formats/JSON/JSONCompactStringsEachRowWithNames)
* [JSONCompactStringsEachRowWithNamesAndTypes](/ru/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes)
* [RowBinaryWithNames](/ru/reference/formats/RowBinary/RowBinaryWithNames)
* [RowBinaryWithNamesAndTypes](/ru/reference/formats/RowBinary/RowBinaryWithNamesAndTypes)
* [CustomSeparatedWithNames](/ru/reference/formats/CustomSeparated/CustomSeparatedWithNames)
* [CustomSeparatedWithNamesAndTypes](/ru/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes)

Возможные значения:

* 0 — Отключено.
* 1 — Включено.

<div id="input_format_with_types_use_header">
  ## input\_format\_with\_types\_use\_header
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Управляет тем, должен ли парсер формата проверять, соответствуют ли типы данных во входных данных типам данных целевой таблицы.

Поддерживаемые форматы:

* [CSVWithNamesAndTypes](/ru/reference/formats/CSV/CSVWithNamesAndTypes)
* [TabSeparatedWithNamesAndTypes](/ru/reference/formats/TabSeparated/TabSeparatedWithNamesAndTypes)
* [JSONCompactEachRowWithNamesAndTypes](/ru/reference/formats/JSON/JSONCompactEachRowWithNamesAndTypes)
* [JSONCompactStringsEachRowWithNamesAndTypes](/ru/reference/formats/JSON/JSONCompactStringsEachRowWithNamesAndTypes)
* [RowBinaryWithNamesAndTypes](/ru/reference/formats/RowBinary/RowBinaryWithNamesAndTypes)
* [CustomSeparatedWithNamesAndTypes](/ru/reference/formats/CustomSeparated/CustomSeparatedWithNamesAndTypes)

Возможные значения:

* 0 — Отключено.
* 1 — Включено.

<div id="insert_distributed_one_random_shard">
  ## insert\_distributed\_one\_random\_shard
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Включает или отключает случайную вставку в один из сегментов таблицы [Distributed](/ru/reference/engines/table-engines/special/distributed), когда распределённый ключ отсутствует.

По умолчанию при вставке данных в таблицу `Distributed` с более чем одним сегментом сервер ClickHouse отклоняет любой запрос на вставку, если распределённый ключ не задан. Когда `insert_distributed_one_random_shard = 1`, вставки разрешаются, и данные случайным образом направляются в один из всех сегментов.

Возможные значения:

* 0 — Вставка отклоняется, если сегментов несколько и распределённый ключ не задан.
* 1 — Вставка выполняется случайным образом в один из всех доступных сегментов, если распределённый ключ не задан.

<div id="interval_output_format">
  ## interval\_output\_format
</div>

<SettingsInfoBlock type="IntervalOutputFormat" default_value="numeric" />

Позволяет выбирать различные форматы вывода для текстового представления типов interval.

Возможные значения:

* `kusto` - формат вывода в стиле KQL.

  ClickHouse выводит интервалы в [формате KQL](https://learn.microsoft.com/en-us/dotnet/standard/base-types/standard-timespan-format-strings#the-constant-c-format-specifier). Например, `toIntervalDay(2)` будет отформатирован как `2.00:00:00`. Обратите внимание, что для типов interval переменной длины (то есть `IntervalMonth` и `IntervalYear`) учитывается среднее количество секунд в интервале.

* `numeric` - числовой формат вывода.

  ClickHouse выводит интервалы в виде их числового представления. Например, `toIntervalDay(2)` будет отформатирован как `2`.

См. также:

* [Interval](/ru/reference/data-types/special-data-types/interval)

<div id="into_outfile_create_parent_directories">
  ## into\_outfile\_create\_parent\_directories
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Автоматически создаёт родительские каталоги при использовании INTO OUTFILE, если они ещё не существуют.

<div id="json_type_escape_dots_in_keys">
  ## json\_type\_escape\_dots\_in\_keys
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Если параметр включен, точки в ключах JSON будут экранироваться при парсинге.

<div id="max_dynamic_subcolumns_in_json_type_parsing">
  ## max\_dynamic\_subcolumns\_in\_json\_type\_parsing
</div>

<SettingsInfoBlock type="UInt64Auto" default_value="auto" />

Максимальное количество динамических подстолбцов, которое может быть создано в каждом столбце при парсинге JSON-столбца.
Позволяет управлять количеством динамических подстолбцов при парсинге независимо от динамических параметров, указанных в типе данных.

<div id="output_format_arrow_compression_method">
  ## output\_format\_arrow\_compression\_method
</div>

<SettingsInfoBlock type="ArrowCompression" default_value="lz4_frame" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.3"},{"label": "lz4_frame"},{"label": "По умолчанию используется сжатие lz4 в формате вывода Arrow"}]}]} />

Метод сжатия для формата вывода Arrow. Поддерживаемые кодеки: lz4\_frame, zstd, none (без сжатия)

<div id="output_format_arrow_date_as_uint16">
  ## output\_format\_arrow\_date\_as\_uint16
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.2"},{"label": "0"},{"label": "По умолчанию записывает Date как Arrow DATE32, а не как обычный UInt16."}]}]} />

Записывает значения Date как обычные 16-битные числа (при обратном чтении — как UInt16) вместо преобразования в 32-битный тип Arrow DATE32 (при обратном чтении — как Date32).

<div id="output_format_arrow_fixed_string_as_fixed_byte_array">
  ## output\_format\_arrow\_fixed\_string\_as\_fixed\_byte\_array
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.2"},{"label": "1"},{"label": "По умолчанию используется тип Arrow FIXED_SIZE_BINARY для FixedString"}]}]} />

Использовать тип Arrow FIXED\_SIZE\_BINARY вместо Binary для столбцов FixedString.

<div id="output_format_arrow_low_cardinality_as_dictionary">
  ## output\_format\_arrow\_low\_cardinality\_as\_dictionary
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Включить вывод типа LowCardinality как типа Dictionary в Arrow

<div id="output_format_arrow_string_as_string">
  ## output\_format\_arrow\_string\_as\_string
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "ClickHouse допускает произвольные бинарные данные в типе String, который обычно содержит UTF-8. Типы String в Parquet/ORC/Arrow поддерживают только UTF-8. Поэтому вы можете выбрать, какой тип данных Arrow использовать для типа String в ClickHouse — String или Binary. Хотя Binary был бы более корректным и совместимым вариантом, использование String по умолчанию в большинстве случаев соответствует ожиданиям пользователей."}]}]} />

Использовать тип Arrow String вместо Binary для столбцов String

<div id="output_format_arrow_unsupported_types_as_binary">
  ## output\_format\_arrow\_unsupported\_types\_as\_binary
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.4"},{"label": "1"},{"label": "Новая настройка для преобразования неподдерживаемых типов CH в бинарный формат Arrow вместо генерации исключения UNKNOWN_TYPE."}]}]} />

Выводит типы, для которых нет преобразования, в виде необработанных бинарных данных. Если false, для таких типов будет возникать исключение UNKNOWN\_TYPE.

<div id="output_format_arrow_use_64_bit_indexes_for_dictionary">
  ## output\_format\_arrow\_use\_64\_bit\_indexes\_for\_dictionary
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "0"},{"label": "Разрешено использовать 64-битные индексы в словарях Arrow"}]}, {"id": "row-2","items": [{"label": "24.1"},{"label": "0"},{"label": "Разрешено использовать 64-битные индексы в словарях Arrow"}]}]} />

Всегда использовать 64-битные целочисленные индексы для словаря в формате Arrow

<div id="output_format_arrow_use_signed_indexes_for_dictionary">
  ## output\_format\_arrow\_use\_signed\_indexes\_for\_dictionary
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "1"},{"label": "По умолчанию использовать знаковый тип индексов для словарей Arrow, как рекомендуется"}]}]} />

Использовать знаковые целые числа для индексов словарей в формате Arrow

<div id="output_format_avro_codec">
  ## output\_format\_avro\_codec
</div>

Кодек сжатия, используемый при выводе. Возможные значения: 'null', 'deflate', 'snappy', 'zstd'.

<div id="output_format_avro_confluent_subject">
  ## output\_format\_avro\_confluent\_subject
</div>

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.5"},{"label": ""},{"label": "Новая настройка для указания имени subject, под которым схема регистрируется в Confluent Schema Registry при записи в формате вывода AvroConfluent."}]}]} />

Для формата вывода AvroConfluent: имя subject, под которым схема регистрируется в Confluent Schema Registry. Обязательно при записи в формате вывода AvroConfluent.

<div id="output_format_avro_rows_in_file">
  ## output\_format\_avro\_rows\_in\_file
</div>

<SettingsInfoBlock type="UInt64" default_value="1" />

Максимальное количество строк в файле (если это допускается хранилищем)

<div id="output_format_avro_string_column_pattern">
  ## output\_format\_avro\_string\_column\_pattern
</div>

Для формата Avro: шаблон регулярного выражения для выбора столбцов String, которые следует интерпретировать как строки AVRO.

<div id="output_format_avro_sync_interval">
  ## output\_format\_avro\_sync\_interval
</div>

<SettingsInfoBlock type="UInt64" default_value="16384" />

Интервал синхронизации, в байтах.

<div id="output_format_binary_encode_types_in_binary_format">
  ## output\_format\_binary\_encode\_types\_in\_binary\_format
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "Добавлена новая настройка, позволяющая записывать имена типов в бинарном формате в выходном формате RowBinaryWithNamesAndTypes"}]}]} />

Записывать типы данных в бинарном формате вместо имён типов в выходном формате RowBinaryWithNamesAndTypes

<div id="output_format_binary_write_json_as_string">
  ## output\_format\_binary\_write\_json\_as\_string
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "Добавлена новая настройка для записи значений типа JSON в виде JSON-строк в выходном формате RowBinary"}]}]} />

Записывает значения типа данных [JSON](/ru/reference/data-types/newjson) в виде значений JSON [String](/ru/reference/data-types/string) в выходном формате RowBinary.

<div id="output_format_bson_string_as_string">
  ## output\_format\_bson\_string\_as\_string
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Использовать тип BSON String вместо Binary для столбцов типа String.

<div id="output_format_compression_level">
  ## output\_format\_compression\_level
</div>

<SettingsInfoBlock type="UInt64" default_value="3" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "3"},{"label": "Позволяет изменять уровень сжатия в выводе запроса"}]}]} />

Уровень сжатия по умолчанию, если вывод запроса сжат. Настройка применяется, когда запрос `SELECT` использует `INTO OUTFILE` или при записи в табличные функции `file`, `url`, `hdfs`, `s3` или `azureBlobStorage`.

Возможные значения: от `1` до `22`

<div id="output_format_compression_zstd_window_log">
  ## output\_format\_compression\_zstd\_window\_log
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "0"},{"label": "Позволяет изменять логарифм размера окна zstd в выводе запроса при использовании сжатия zstd"}]}]} />

Может использоваться, если для сжатия вывода выбран метод `zstd`. Если значение больше `0`, эта настройка явно задаёт размер окна сжатия (степень `2`) и включает режим дальнего действия для сжатия zstd. Это может помочь добиться лучшего коэффициента сжатия.

Возможные значения: неотрицательные числа. Обратите внимание, что если значение слишком маленькое или слишком большое, `zstdlib` сгенерирует исключение. Типичные значения — от `20` (размер окна = `1MB`) до `30` (размер окна = `1GB`).

<div id="output_format_csv_crlf_end_of_line">
  ## output\_format\_csv\_crlf\_end\_of\_line
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Если задано значение true, в формате CSV в качестве окончания строки будет использоваться \r\n вместо \n.

<div id="output_format_csv_serialize_tuple_into_separate_columns">
  ## output\_format\_csv\_serialize\_tuple\_into\_separate\_columns
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "1"},{"label": "Добавлен новый способ интерпретации Tuple в формате CSV."}]}, {"id": "row-2","items": [{"label": "24.3"},{"label": "1"},{"label": "Добавлен новый способ интерпретации Tuple в формате CSV."}]}]} />

Если установлено значение true, то Tuple в формате CSV сериализуются в отдельные столбцы (то есть их вложенность теряется)

<div id="output_format_decimal_trailing_zeros">
  ## output\_format\_decimal\_trailing\_zeros
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "21.9"},{"label": "0"},{"label": "По умолчанию конечные нули не выводятся в текстовом представлении типов Decimal для более аккуратного вывода"}]}]} />

Выводить конечные нули при отображении значений Decimal. Например, 1.230000 вместо 1.23.

По умолчанию отключено.

<div id="output_format_json_array_of_rows">
  ## output\_format\_json\_array\_of\_rows
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Включает вывод всех строк в виде JSON-массива в формате [JSONEachRow](/ru/reference/formats/JSON/JSONEachRow).

Возможные значения:

* 1 — ClickHouse выводит все строки как массив, где каждая строка имеет формат `JSONEachRow`.
* 0 — ClickHouse выводит каждую строку отдельно в формате `JSONEachRow`.

**Пример запроса с включённой настройкой**

Запрос:

```sql theme={null}
SET output_format_json_array_of_rows = 1;
SELECT number FROM numbers(3) FORMAT JSONEachRow;
```

Результат:

```text theme={null}
[
{"number":"0"},
{"number":"1"},
{"number":"2"}
]
```

**Пример запроса с отключённым параметром**

Запрос:

```sql theme={null}
SET output_format_json_array_of_rows = 0;
SELECT number FROM numbers(3) FORMAT JSONEachRow;
```

Результат:

```text theme={null}
{"number":"0"}
{"number":"1"}
{"number":"2"}
```

<div id="output_format_json_escape_forward_slashes">
  ## output\_format\_json\_escape\_forward\_slashes
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Управляет экранированием прямых слешей при выводе строк в формате JSON. Это сделано для совместимости с JavaScript. Не путайте с обратными слешами, которые экранируются всегда.

Включено по умолчанию.

<div id="output_format_json_map_as_array_of_tuples">
  ## output\_format\_json\_map\_as\_array\_of\_tuples
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "0"},{"label": "новая настройка"}]}]} />

Сериализует столбцы типа Map как JSON-массивы из кортежей.

По умолчанию отключена.

<div id="output_format_json_named_tuples_as_objects">
  ## output\_format\_json\_named\_tuples\_as\_objects
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "22.6"},{"label": "1"},{"label": "По умолчанию разрешает сериализовать именованные Tuple как объекты JSON в форматах JSON"}]}]} />

Сериализует столбцы именованных Tuple как объекты JSON.

Включено по умолчанию.

<div id="output_format_json_pretty_print">
  ## output\_format\_json\_pretty\_print
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "По умолчанию выводить значения в удобочитаемом виде в формате вывода JSON"}]}]} />

Эта настройка определяет, как вложенные структуры, такие как Tuple, Map и Array, отображаются в массиве `data` при использовании формата вывода JSON.

Например, вместо такого вывода:

```json theme={null}
"data":
[
  {
    "tuple": {"a":1,"b":2,"c":3},
    "array": [1,2,3],
    "map": {"a":1,"b":2,"c":3}
  }
],
```

Вывод будет иметь следующий формат:

```json theme={null}
"data":
[
    {
        "tuple": {
            "a": 1,
            "b": 2,
            "c": 3
        },
        "array": [
            1,
            2,
            3
        ],
        "map": {
            "a": 1,
            "b": 2,
            "c": 3
        }
    }
],
```

Включено по умолчанию.

<div id="output_format_json_quote_64bit_floats">
  ## output\_format\_json\_quote\_64bit\_floats
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Управляет заключением в кавычки 64-битных [чисел с плавающей запятой](/ru/reference/data-types/float) при выводе в форматах JSON\*.

По умолчанию отключено.

<div id="output_format_json_quote_64bit_integers">
  ## output\_format\_json\_quote\_64bit\_integers
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "По умолчанию отключает заключение 64-битных целых чисел в кавычки в JSON"}]}]} />

Управляет тем, будут ли 64-битные и более крупные [целые числа](/ru/reference/data-types/int-uint) (например, `UInt64` или `Int128`) заключаться в кавычки при выводе в формате [JSON](/ru/reference/formats/JSON/JSON).
По умолчанию такие целые числа заключаются в кавычки. Такое поведение совместимо с большинством реализаций JavaScript.

Возможные значения:

* 0 — Целые числа выводятся без кавычек.
* 1 — Целые числа заключаются в кавычки.

<div id="output_format_json_quote_decimals">
  ## output\_format\_json\_quote\_decimals
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Управляет тем, будут ли десятичные числа заключаться в кавычки в выходных JSON-форматах.

По умолчанию отключено.

<div id="output_format_json_quote_denormals">
  ## output\_format\_json\_quote\_denormals
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Включает вывод значений `+nan`, `-nan`, `+inf`, `-inf` в формате вывода [JSON](/ru/reference/formats/JSON/JSON).

Возможные значения:

* 0 — Отключено.
* 1 — Включено.

**Пример**

Рассмотрим следующую таблицу `account_orders`:

```text theme={null}
┌─id─┬─name───┬─duration─┬─period─┬─area─┐
│  1 │ Andrew │       20 │      0 │  400 │
│  2 │ John   │       40 │      0 │    0 │
│  3 │ Bob    │       15 │      0 │ -100 │
└────┴────────┴──────────┴────────┴──────┘
```

Когда `output_format_json_quote_denormals = 0`, запрос возвращает значения `null` на выходе:

```sql theme={null}
SELECT area/period FROM account_orders FORMAT JSON;
```

```json theme={null}
{
        "meta":
        [
                {
                        "name": "divide(area, period)",
                        "type": "Float64"
                }
        ],

        "data":
        [
                {
                        "divide(area, period)": null
                },
                {
                        "divide(area, period)": null
                },
                {
                        "divide(area, period)": null
                }
        ],

        "rows": 3,

        "statistics":
        {
                "elapsed": 0.003648093,
                "rows_read": 3,
                "bytes_read": 24
        }
}
```

Когда `output_format_json_quote_denormals = 1`, запрос возвращает:

```json theme={null}
{
        "meta":
        [
                {
                        "name": "divide(area, period)",
                        "type": "Float64"
                }
        ],

        "data":
        [
                {
                        "divide(area, period)": "inf"
                },
                {
                        "divide(area, period)": "-nan"
                },
                {
                        "divide(area, period)": "-inf"
                }
        ],

        "rows": 3,

        "statistics":
        {
                "elapsed": 0.000070241,
                "rows_read": 3,
                "bytes_read": 24
        }
}
```

<div id="output_format_json_skip_null_value_in_named_tuples">
  ## output\_format\_json\_skip\_null\_value\_in\_named\_tuples
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Пропускать пары «ключ-значение» со значением NULL при сериализации столбцов именованных Tuple как объектов JSON. Применяется только если output\_format\_json\_named\_tuples\_as\_objects имеет значение true.

<div id="output_format_json_validate_utf8">
  ## output\_format\_json\_validate\_utf8
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Управляет проверкой последовательностей UTF-8 в форматах вывода JSON; не влияет на форматы JSON/JSONCompact/JSONColumnsWithMetadata, так как в них UTF-8 проверяется всегда.

По умолчанию отключено.

<div id="output_format_markdown_escape_special_characters">
  ## output\_format\_markdown\_escape\_special\_characters
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Если включено, экранирует специальные символы в Markdown.

[Common Mark](https://spec.commonmark.org/0.30/#example-12) определяет следующие специальные символы, которые можно экранировать с помощью :

```
! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
```

Возможные значения:

* 0 — Отключено.
* 1 — Включено.

<div id="output_format_msgpack_uuid_representation">
  ## output\_format\_msgpack\_uuid\_representation
</div>

<SettingsInfoBlock type="MsgPackUUIDRepresentation" default_value="ext" />

Определяет способ вывода UUID в формате MsgPack.

<div id="output_format_native_encode_types_in_binary_format">
  ## output\_format\_native\_encode\_types\_in\_binary\_format
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "0"},{"label": "Добавлена новая настройка, позволяющая использовать бинарный формат для записи имён типов в формате вывода Native"}]}]} />

Записывает типы данных в бинарном формате вместо имён типов в формате вывода Native

<div id="output_format_native_use_flattened_dynamic_and_json_serialization">
  ## output\_format\_native\_use\_flattened\_dynamic\_and\_json\_serialization
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.6"},{"label": "0"},{"label": "Добавлена поддержка плоской сериализации Dynamic/JSON в формате Native"}]}]} />

Записывает данные столбцов [JSON](/ru/reference/data-types/newjson) и [Dynamic](/ru/reference/data-types/dynamic) в плоском формате (все типы и пути представлены как отдельные подстолбцы).

<div id="output_format_native_write_json_as_string">
  ## output\_format\_native\_write\_json\_as\_string
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": "0"},{"label": "Добавлена новая настройка, позволяющая записывать JSON-столбец как единый столбец String в Native format"}]}]} />

Записывает данные [JSON](/ru/reference/data-types/newjson)-столбца как столбец [String](/ru/reference/data-types/string), содержащий JSON-строки, вместо стандартной нативной JSON-сериализации.

<div id="output_format_orc_compression_block_size">
  ## output\_format\_orc\_compression\_block\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="262144" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "262144"},{"label": "новая настройка"}]}]} />

Размер блока сжатия в байтах для выходного формата ORC.

<div id="output_format_orc_compression_method">
  ## output\_format\_orc\_compression\_method
</div>

<SettingsInfoBlock type="ORCCompression" default_value="zstd" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "zstd"},{"label": "Parquet/ORC/Arrow поддерживают множество методов сжатия, включая lz4 и zstd. ClickHouse поддерживает все эти методы. Некоторые менее функциональные инструменты, например 'duckdb', не поддерживают более быстрый метод сжатия `lz4`, поэтому по умолчанию используется zstd."}]}, {"id": "row-2","items": [{"label": "23.3"},{"label": "lz4_frame"},{"label": "По умолчанию использовать сжатие lz4 для формата вывода ORC"}]}]} />

Метод сжатия для формата вывода ORC. Поддерживаемые кодеки: lz4, snappy, zlib, zstd, none (без сжатия)

<div id="output_format_orc_dictionary_key_size_threshold">
  ## output\_format\_orc\_dictionary\_key\_size\_threshold
</div>

<SettingsInfoBlock type="Double" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.9"},{"label": "0"},{"label": "Для строкового столбца в формате вывода ORC: если число различных значений превышает эту долю от общего числа строк, не равных NULL, кодирование с использованием словаря отключается. В противном случае кодирование с использованием словаря включается"}]}]} />

Для строкового столбца в формате вывода ORC: если число различных значений превышает эту долю от общего числа строк, не равных NULL, кодирование с использованием словаря отключается. В противном случае кодирование с использованием словаря включается

<div id="output_format_orc_row_index_stride">
  ## output\_format\_orc\_row\_index\_stride
</div>

<SettingsInfoBlock type="UInt64" default_value="10000" />

Целевой шаг индексации строк в формате вывода ORC

<div id="output_format_orc_string_as_string">
  ## output\_format\_orc\_string\_as\_string
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "ClickHouse допускает произвольные бинарные данные в типе данных String, который обычно содержит данные в UTF-8. Типы String в Parquet/ORC/Arrow поддерживают только UTF-8. Поэтому вы можете выбрать, какой тип данных Arrow использовать для типа данных String в ClickHouse — String или Binary. Хотя Binary был бы более корректным и совместимым вариантом, использование String по умолчанию в большинстве случаев соответствует ожиданиям пользователей."}]}]} />

Использовать тип ORC String вместо Binary для столбцов String

<div id="output_format_orc_writer_time_zone_name">
  ## output\_format\_orc\_writer\_time\_zone\_name
</div>

<SettingsInfoBlock type="String" default_value="GMT" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "GMT"},{"label": "Название часового пояса для ORC writer; по умолчанию ORC writer использует часовой пояс GMT."}]}]} />

Название часового пояса для ORC writer; по умолчанию ORC writer использует часовой пояс GMT.

<div id="output_format_parallel_formatting">
  ## output\_format\_parallel\_formatting
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Включает или отключает параллельное форматирование данных. Поддерживается только для форматов [TSV](/ru/reference/formats/TabSeparated/TabSeparated), [TSKV](/ru/reference/formats/TabSeparated/TSKV), [CSV](/ru/reference/formats/CSV/CSV) и [JSONEachRow](/ru/reference/formats/JSON/JSONEachRow).

Возможные значения:

* 1 — Включено.
* 0 — Отключено.

<div id="output_format_parquet_batch_size">
  ## output\_format\_parquet\_batch\_size
</div>

<SettingsInfoBlock type="NonZeroUInt64" default_value="1024" />

Проверяйте размер страницы через каждые N строк. Рассмотрите возможность уменьшить это значение, если средний размер значений в столбцах превышает несколько КБ.

<div id="output_format_parquet_bloom_filter_bits_per_value">
  ## output\_format\_parquet\_bloom\_filter\_bits\_per\_value
</div>

<SettingsInfoBlock type="Double" default_value="10.5" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "10.5"},{"label": "Новая настройка."}]}]} />

Примерное число битов для каждого отдельного значения в bloom-фильтрах Parquet. Оценочные уровни ложноположительных срабатываний:

* 6   бит — 10%
* 10.5 бит —  1%
* 16.9 бит —  0.1%
* 26.4 бит —  0.01%
* 41   бит —  0.001%

<div id="output_format_parquet_bloom_filter_flush_threshold_bytes">
  ## output\_format\_parquet\_bloom\_filter\_flush\_threshold\_bytes
</div>

<SettingsInfoBlock type="UInt64" default_value="134217728" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "134217728"},{"label": "Новая настройка"}]}]} />

Определяет, где в файле Parquet размещаются bloom-фильтры. Bloom-фильтры будут записываться группами приблизительно такого размера. В частности:

* если 0, bloom-фильтры каждой группы строк записываются сразу после группы строк,
  * если значение больше общего размера всех bloom-фильтров, bloom-фильтры для всех групп строк будут накапливаться в памяти, а затем записываться вместе ближе к концу файла,
  * в противном случае bloom-фильтры будут накапливаться в памяти и записываться, когда их общий размер превысит это значение.

<div id="output_format_parquet_compression_method">
  ## output\_format\_parquet\_compression\_method
</div>

<SettingsInfoBlock type="ParquetCompression" default_value="zstd" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "zstd"},{"label": "Parquet/ORC/Arrow поддерживают множество методов сжатия, включая lz4 и zstd. ClickHouse поддерживает все эти методы сжатия. Некоторые менее совершенные инструменты, такие как 'duckdb', не поддерживают более быстрый метод сжатия `lz4`, поэтому по умолчанию используется zstd."}]}, {"id": "row-2","items": [{"label": "23.3"},{"label": "lz4"},{"label": "По умолчанию использовать сжатие lz4 для формата вывода Parquet"}]}]} />

Метод сжатия для формата вывода Parquet. Поддерживаемые кодеки: snappy, lz4, brotli, zstd, gzip, none (без сжатия)

<div id="output_format_parquet_data_page_size">
  ## output\_format\_parquet\_data\_page\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="1048576" />

Целевой размер страницы в байтах, до сжатия.

<div id="output_format_parquet_date_as_uint16">
  ## output\_format\_parquet\_date\_as\_uint16
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "0"},{"label": "Добавлена настройка совместимости для небольшого обратно несовместимого изменения, внесённого ранее в 24.12."}]}, {"id": "row-2","items": [{"label": "24.12"},{"label": "0"},{"label": "Записывать Date как Date32 вместо обычного UInt16 (это два типа Parquet, наиболее близких к Date)."}]}]} />

Записывает значения Date как обычные 16-битные числа (при обратном чтении — UInt16) вместо преобразования в 32-битный тип Parquet DATE (при обратном чтении — Date32).

<div id="output_format_parquet_datetime_as_uint32">
  ## output\_format\_parquet\_datetime\_as\_uint32
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.12"},{"label": "0"},{"label": "Записывать DateTime как DateTime64(3) вместо UInt32 (это два типа Parquet, наиболее близких к DateTime)."}]}]} />

Записывает значения DateTime как сырую Unix-временную метку (при чтении — UInt32) вместо преобразования в миллисекунды (при чтении — DateTime64(3)).

<div id="output_format_parquet_enum_as_byte_array">
  ## output\_format\_parquet\_enum\_as\_byte\_array
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1"},{"label": "По умолчанию включена запись Enum как массива байтов в Parquet"}]}, {"id": "row-2","items": [{"label": "25.7"},{"label": "0"},{"label": "Записывать Enum с использованием физического типа Parquet: BYTE_ARRAY и логического типа: ENUM"}]}]} />

Записывать Enum с использованием физического типа Parquet: BYTE\_ARRAY и логического типа: ENUM

<div id="output_format_parquet_fixed_string_as_fixed_byte_array">
  ## output\_format\_parquet\_fixed\_string\_as\_fixed\_byte\_array
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "23.2"},{"label": "1"},{"label": "По умолчанию использует тип Parquet FIXED_LENGTH_BYTE_ARRAY для FixedString"}]}]} />

Использует тип Parquet FIXED\_LEN\_BYTE\_ARRAY вместо Binary для столбцов FixedString.

<div id="output_format_parquet_geometadata">
  ## output\_format\_parquet\_geometadata
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.7"},{"label": "1"},{"label": "Новая настройка, позволяющая записывать сведения о гео-столбцах в метаданные Parquet и кодировать столбцы в формате WKB."}]}]} />

Позволяет записывать сведения о гео-столбцах в метаданные Parquet и кодировать столбцы в формате WKB.

<div id="output_format_parquet_max_dictionary_size">
  ## output\_format\_parquet\_max\_dictionary\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="1048576" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.8"},{"label": "1048576"},{"label": "Новая настройка"}]}]} />

Если размер словаря превышает указанное количество байт, используется кодирование без словаря. Установите значение 0, чтобы отключить кодирование с использованием словаря.

<div id="output_format_parquet_parallel_encoding">
  ## output\_format\_parquet\_parallel\_encoding
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Выполнять кодирование в формате Parquet в нескольких потоках.

<div id="output_format_parquet_row_group_size">
  ## output\_format\_parquet\_row\_group\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="1000000" />

Целевой размер группы строк в строках.

<div id="output_format_parquet_row_group_size_bytes">
  ## output\_format\_parquet\_row\_group\_size\_bytes
</div>

<SettingsInfoBlock type="UInt64" default_value="536870912" />

Целевой размер группы строк в байтах до сжатия.

<div id="output_format_parquet_string_as_string">
  ## output\_format\_parquet\_string\_as\_string
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "ClickHouse допускает произвольные бинарные данные в типе String, который обычно содержит UTF-8. Строки в Parquet/ORC/Arrow поддерживают только UTF-8. Поэтому для типа String в ClickHouse можно выбрать, какой тип данных Arrow использовать: String или Binary. Хотя Binary был бы более корректным и совместимым вариантом, использование String по умолчанию в большинстве случаев лучше соответствует ожиданиям пользователей."}]}]} />

Использовать тип Parquet String вместо Binary для столбцов String.

<div id="output_format_parquet_write_bloom_filter">
  ## output\_format\_parquet\_write\_bloom\_filter
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "Добавлена поддержка записи bloom-фильтров в файлы Parquet."}]}]} />

Записывать bloom-фильтры в файлы Parquet.

<div id="output_format_parquet_write_checksums">
  ## output\_format\_parquet\_write\_checksums
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "Новая настройка"}]}]} />

Добавляет контрольные суммы CRC32 в заголовки страниц Parquet.

<div id="output_format_parquet_write_page_index">
  ## output\_format\_parquet\_write\_page\_index
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.7"},{"label": "1"},{"label": "Добавлена возможность записывать индекс страниц в файлы Parquet."}]}]} />

Записывает индекс столбца и индекс смещений (то есть статистику по каждой странице данных, которую можно использовать для pushdown фильтров при чтении) в файлы Parquet.

<div id="output_format_pretty_color">
  ## output\_format\_pretty\_color
</div>

<SettingsInfoBlock type="UInt64Auto" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.1"},{"label": "auto"},{"label": "Настройка изменена: теперь допускается также значение auto; ANSI-последовательности отключаются, если вывод не направляется в tty"}]}]} />

Использовать ANSI-последовательности экранирования в форматах Pretty. 0 — отключено, 1 — включено, 'auto' — включено при выводе в терминал.

<div id="output_format_pretty_display_footer_column_names">
  ## output\_format\_pretty\_display\_footer\_column\_names
</div>

<SettingsInfoBlock type="UInt64" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "1"},{"label": "Добавлена настройка для отображения имён столбцов в нижнем колонтитуле, если в таблице много строк. Пороговое значение задаётся параметром output_format_pretty_display_footer_column_names_min_rows."}]}]} />

Отображает имена столбцов в нижнем колонтитуле, если в таблице много строк.

Возможные значения:

* 0 — Имена столбцов не отображаются в нижнем колонтитуле.
* 1 — Имена столбцов отображаются в нижнем колонтитуле, если количество строк больше или равно пороговому значению, заданному параметром [output\_format\_pretty\_display\_footer\_column\_names\_min\_rows](#output_format_pretty_display_footer_column_names_min_rows) (50 по умолчанию).

**Пример**

Запрос:

```sql theme={null}
SELECT *, toTypeName(*) FROM (SELECT * FROM system.numbers LIMIT 1000);
```

Результат:

```response theme={null}
      ┌─number─┬─toTypeName(number)─┐
   1. │      0 │ UInt64             │
   2. │      1 │ UInt64             │
   3. │      2 │ UInt64             │
   ...
 999. │    998 │ UInt64             │
1000. │    999 │ UInt64             │
      └─number─┴─toTypeName(number)─┘
```

<div id="output_format_pretty_display_footer_column_names_min_rows">
  ## output\_format\_pretty\_display\_footer\_column\_names\_min\_rows
</div>

<SettingsInfoBlock type="UInt64" default_value="50" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.6"},{"label": "50"},{"label": "Добавлена настройка, управляющая пороговым значением параметра output_format_pretty_display_footer_column_names_min_rows. Значение по умолчанию — 50."}]}]} />

Задает минимальное количество строк, при котором отображается нижний колонтитул с именами столбцов, если включена настройка [output\_format\_pretty\_display\_footer\_column\_names](#output_format_pretty_display_footer_column_names).

<div id="output_format_pretty_fallback_to_vertical">
  ## output\_format\_pretty\_fallback\_to\_vertical
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "Новая настройка"}]}]} />

Если параметр включен и таблица широкая, но короткая, формат Pretty будет выводить её так же, как формат Vertical.
Подробную настройку этого поведения см. в `output_format_pretty_fallback_to_vertical_max_rows_per_chunk` и `output_format_pretty_fallback_to_vertical_min_table_width`.

<div id="output_format_pretty_fallback_to_vertical_max_rows_per_chunk">
  ## output\_format\_pretty\_fallback\_to\_vertical\_max\_rows\_per\_chunk
</div>

<SettingsInfoBlock type="UInt64" default_value="10" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "100"},{"label": "Новая настройка"}]}]} />

Переключение на формат Vertical (см. `output_format_pretty_fallback_to_vertical`) будет выполняться только в том случае, если количество строк во фрагменте не превышает указанное значение.

<div id="output_format_pretty_fallback_to_vertical_min_columns">
  ## output\_format\_pretty\_fallback\_to\_vertical\_min\_columns
</div>

<SettingsInfoBlock type="UInt64" default_value="5" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "5"},{"label": "Новая настройка"}]}]} />

Переход на формат Vertical (см. `output_format_pretty_fallback_to_vertical`) выполняется, только если количество столбцов больше указанного значения.

<div id="output_format_pretty_fallback_to_vertical_min_table_width">
  ## output\_format\_pretty\_fallback\_to\_vertical\_min\_table\_width
</div>

<SettingsInfoBlock type="UInt64" default_value="250" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "250"},{"label": "новая настройка"}]}]} />

Переход к формату Vertical (см. `output_format_pretty_fallback_to_vertical`) произойдёт только в том случае, если суммарная длина столбцов в таблице не меньше указанного значения или если хотя бы одно значение содержит символ новой строки.

<div id="output_format_pretty_glue_chunks">
  ## output\_format\_pretty\_glue\_chunks
</div>

<SettingsInfoBlock type="UInt64Auto" default_value="auto" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "auto"},{"label": "Новая настройка, которая делает форматы Pretty ещё красивее."}]}]} />

Если данные в форматах Pretty поступают несколькими фрагментами, даже с задержкой, и при этом следующий фрагмент имеет ту же ширину столбцов, что и предыдущий, используются ANSI-последовательности экранирования, чтобы вернуться к предыдущей строке и перезаписать нижний колонтитул предыдущего фрагмента, продолжив его данными из нового фрагмента. Это делает вывод визуально более приятным.

0 — отключено, 1 — включено, 'auto' — включено при выводе в терминал.

<div id="output_format_pretty_grid_charset">
  ## output\_format\_pretty\_grid\_charset
</div>

<SettingsInfoBlock type="String" default_value="UTF-8" />

Кодировка символов для вывода границ таблицы. Доступные кодировки: ASCII, UTF-8 (по умолчанию).

<div id="output_format_pretty_highlight_digit_groups">
  ## output\_format\_pretty\_highlight\_digit\_groups
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "Если параметр включен и вывод осуществляется в терминал, цифры в разрядах тысяч, миллионов и т. д. будут подчеркнуты."}]}]} />

Если параметр включен и вывод осуществляется в терминал, цифры в разрядах тысяч, миллионов и т. д. будут подчеркнуты.

<div id="output_format_pretty_highlight_trailing_spaces">
  ## output\_format\_pretty\_highlight\_trailing\_spaces
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "Новая настройка."}]}]} />

Если настройка включена и выводится в терминал, конечные пробелы выделяются серым цветом и подчеркиванием.

<div id="output_format_pretty_max_column_name_width_cut_to">
  ## output\_format\_pretty\_max\_column\_name\_width\_cut\_to
</div>

<SettingsInfoBlock type="UInt64" default_value="24" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "24"},{"label": "новая настройка"}]}]} />

Если имя столбца слишком длинное, оно будет обрезано до этой длины.
Имя столбца будет обрезано, если его длина превышает `output_format_pretty_max_column_name_width_cut_to` плюс `output_format_pretty_max_column_name_width_min_chars_to_cut`.

<div id="output_format_pretty_max_column_name_width_min_chars_to_cut">
  ## output\_format\_pretty\_max\_column\_name\_width\_min\_chars\_to\_cut
</div>

<SettingsInfoBlock type="UInt64" default_value="4" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "4"},{"label": "Новая настройка"}]}]} />

Минимальное количество символов, на которое нужно сократить имя столбца, если оно слишком длинное.
Имя столбца будет обрезано, если его длина превышает `output_format_pretty_max_column_name_width_cut_to` плюс `output_format_pretty_max_column_name_width_min_chars_to_cut`.

<div id="output_format_pretty_max_column_pad_width">
  ## output\_format\_pretty\_max\_column\_pad\_width
</div>

<SettingsInfoBlock type="UInt64" default_value="250" />

Максимальная ширина дополнения для всех значений в столбце в форматах Pretty.

<div id="output_format_pretty_max_rows">
  ## output\_format\_pretty\_max\_rows
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1000"},{"label": "Так удобнее: прокручивать приходится меньше."}]}]} />

Ограничение на количество строк для форматов Pretty.

<div id="output_format_pretty_max_value_width">
  ## output\_format\_pretty\_max\_value\_width
</div>

<SettingsInfoBlock type="UInt64" default_value="10000" />

Максимальная ширина отображаемого значения в форматах Pretty. Если ширина больше, значение будет обрезано.
Значение 0 означает, что обрезка не выполняется никогда.

<div id="output_format_pretty_max_value_width_apply_for_single_value">
  ## output\_format\_pretty\_max\_value\_width\_apply\_for\_single\_value
</div>

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "0"},{"label": "Одиночные значения в форматах Pretty не обрезаются."}]}]} />

Обрезайте значения (см. настройку `output_format_pretty_max_value_width`) только в том случае, если это не одиночное значение в block. В противном случае выводите его целиком, что полезно для запроса `SHOW CREATE TABLE`.

<div id="output_format_pretty_multiline_fields">
  ## output\_format\_pretty\_multiline\_fields
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1"},{"label": "новая настройка"}]}]} />

Если включено, форматы Pretty будут отображать многострочные поля внутри ячеек таблицы, сохраняя её границы.
Если нет, они будут отображаться как есть, что может привести к искажению таблицы (при этом в отключенном состоянии многострочные значения будет проще копировать и вставлять).

<div id="output_format_pretty_named_tuples_as_json">
  ## output\_format\_pretty\_named\_tuples\_as\_json
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.12"},{"label": "1"},{"label": "Новая настройка, управляющая тем, выводятся ли именованные кортежи в формате Pretty как объекты JSON"}]}]} />

Управляет тем, выводятся ли именованные кортежи в формате Pretty в виде красиво отформатированных объектов JSON.

<div id="output_format_pretty_row_numbers">
  ## output\_format\_pretty\_row\_numbers
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "Это удобнее в использовании."}]}]} />

Добавляет номера строк перед каждой строкой в выходном формате Pretty

<div id="output_format_pretty_single_large_number_tip_threshold">
  ## output\_format\_pretty\_single\_large\_number\_tip\_threshold
</div>

<SettingsInfoBlock type="UInt64" default_value="1000000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "1000000"},{"label": "Выводить справа от таблицы подсказку с удобочитаемым числом, если блок содержит одно число, превышающее это значение (кроме 0)"}]}]} />

Выводить справа от таблицы подсказку с удобочитаемым числом, если блок содержит одно число, превышающее это значение (кроме 0)

<div id="output_format_pretty_squash_consecutive_ms">
  ## output\_format\_pretty\_squash\_consecutive\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="50" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "50"},{"label": "Добавлена новая настройка"}]}]} />

Ожидает следующий блок в течение указанного числа миллисекунд и перед записью объединяет его с предыдущим.
Это позволяет избежать слишком частого вывода слишком маленьких блоков, сохраняя при этом возможность потокового отображения данных.

<div id="output_format_pretty_squash_max_wait_ms">
  ## output\_format\_pretty\_squash\_max\_wait\_ms
</div>

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.1"},{"label": "1000"},{"label": "Добавлена новая настройка"}]}]} />

Выводить ожидающий блок в форматах Pretty, если с момента предыдущего вывода прошло больше указанного количества миллисекунд.

<div id="output_format_protobuf_nullables_with_google_wrappers">
  ## output\_format\_protobuf\_nullables\_with\_google\_wrappers
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

При сериализации столбцов с типом Nullable с использованием обёрток Google значения по умолчанию сериализуются как пустые обёртки. Если параметр отключён, значения по умолчанию и значения NULL не сериализуются

<div id="output_format_schema">
  ## output\_format\_schema
</div>

Путь к файлу, в который будет сохранена автоматически сгенерированная схема в формате [Cap'n Proto](/ru/reference/formats/CapnProto) или [Protobuf](/ru/reference/formats/Protobuf/Protobuf).

<div id="output_format_sql_insert_include_column_names">
  ## output\_format\_sql\_insert\_include\_column\_names
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Включать имена столбцов в запрос INSERT

<div id="output_format_sql_insert_max_batch_size">
  ## output\_format\_sql\_insert\_max\_batch\_size
</div>

<SettingsInfoBlock type="UInt64" default_value="65409" />

Максимальное количество строк в одном операторе INSERT.

<div id="output_format_sql_insert_quote_names">
  ## output\_format\_sql\_insert\_quote\_names
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Заключать имена столбцов в символы \`\`\`

<div id="output_format_sql_insert_table_name">
  ## output\_format\_sql\_insert\_table\_name
</div>

<SettingsInfoBlock type="String" default_value="table" />

Имя таблицы в выходном INSERT-запросе

<div id="output_format_sql_insert_use_replace">
  ## output\_format\_sql\_insert\_use\_replace
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Использовать оператор REPLACE вместо INSERT

<div id="output_format_trim_fixed_string">
  ## output\_format\_trim\_fixed\_string
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.3"},{"label": "0"},{"label": "Новая настройка для удаления завершающих нулевых байтов из значений FixedString в текстовых форматах вывода"}]}]} />

Удаляет завершающие null-байты из значений FixedString в текстовых форматах вывода. Например, `toFixedString('John', 8)` выводится как `John` вместо `John\0\0\0\0`.

<div id="output_format_tsv_crlf_end_of_line">
  ## output\_format\_tsv\_crlf\_end\_of\_line
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Если задано значение true, окончание строки в формате TSV будет \r\n вместо \n.

<div id="output_format_values_escape_quote_with_quote">
  ## output\_format\_values\_escape\_quote\_with\_quote
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "0"},{"label": "Если значение равно true, экранирует ' как '', в противном случае используется \'"}]}]} />

Если значение равно true, экранирует ' как '', в противном случае используется \\'

<div id="output_format_write_statistics">
  ## output\_format\_write\_statistics
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Выводит статистику о количестве прочитанных строк, байтов и затраченном времени в подходящих форматах вывода.

Включено по умолчанию

<div id="precise_float_parsing">
  ## precise\_float\_parsing
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Использовать более точный (но более медленный) алгоритм разбора чисел с плавающей запятой

<div id="schema_inference_hints">
  ## schema\_inference\_hints
</div>

Список имён столбцов и типов, используемых в качестве подсказок при определении схемы для форматов без схемы.

Пример:

Запрос:

```sql theme={null}
desc format(JSONEachRow, '{"x" : 1, "y" : "String", "z" : "0.0.0.0" }') settings schema_inference_hints='x UInt8, z IPv4';
```

Результат:

```sql theme={null}
x   UInt8
y   Nullable(String)
z   IPv4
```

<Note>
  Если `schema_inference_hints` отформатирован неправильно или содержит опечатку, неверный тип данных и т. п., то schema\_inference\_hints будет полностью проигнорирован.
</Note>

<div id="schema_inference_make_columns_nullable">
  ## schema\_inference\_make\_columns\_nullable
</div>

<SettingsInfoBlock type="UInt64Auto" default_value="3" />

Управляет тем, будут ли типы, определённые при определении схемы, иметь тип `Nullable`.
Возможные значения:

* 0 - тип, определённый при определении схемы, никогда не будет `Nullable` (используйте input\_format\_null\_as\_default, чтобы указать, что делать со значениями NULL в этом случае),
* 1 - все типы, определённые при определении схемы, будут `Nullable`,
* 2 or `auto` - тип, определённый при определении схемы, будет `Nullable` только если столбец содержит `NULL` в образце, разбираемом во время определения схемы, или если метаданные файла содержат информацию о допустимости `NULL` для столбца,
* 3 - допустимость `NULL` для типа, определённого при определении схемы, будет соответствовать метаданным файла, если формат её поддерживает (например, Parquet); в противном случае тип всегда будет `Nullable` (например, CSV).

<div id="schema_inference_make_json_columns_nullable">
  ## schema\_inference\_make\_json\_columns\_nullable
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Управляет тем, будут ли автоматически определённые типы JSON делаться `Nullable` при определении схемы.
Если этот параметр включён вместе с schema\_inference\_make\_columns\_nullable, автоматически определённый тип JSON будет `Nullable`.

<div id="schema_inference_mode">
  ## schema\_inference\_mode
</div>

<SettingsInfoBlock type="SchemaInferenceMode" default_value="default" />

Режим определения схемы. 'default' — предполагается, что все файлы имеют одинаковую схему и её можно определить по любому файлу; 'union' — файлы могут иметь разные схемы, и итоговая схема должна представлять собой объединение схем всех файлов

<div id="show_create_query_identifier_quoting_rule">
  ## show\_create\_query\_identifier\_quoting\_rule
</div>

<SettingsInfoBlock type="IdentifierQuotingRule" default_value="when_necessary" />

Задает правило заключения идентификаторов в кавычки в запросе SHOW CREATE

<div id="show_create_query_identifier_quoting_style">
  ## show\_create\_query\_identifier\_quoting\_style
</div>

<SettingsInfoBlock type="IdentifierQuotingStyle" default_value="Backticks" />

Задает стиль заключения идентификаторов в кавычки в запросе SHOW CREATE

<div id="type_json_allow_duplicated_key_with_literal_and_nested_object">
  ## type\_json\_allow\_duplicated\_key\_with\_literal\_and\_nested\_object
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Если включено, разрешается разбирать JSON-документы вида `{"a" : 42, "a" : {"b" : 42}}`, где ключ дублируется, но одно из его вхождений является вложенным объектом.

<div id="type_json_skip_duplicated_paths">
  ## type\_json\_skip\_duplicated\_paths
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Если включено, при разборе объекта JSON в тип JSON дублирующиеся пути будут игнорироваться, и вместо исключени будет вставлен только первый

<div id="type_json_skip_invalid_typed_paths">
  ## type\_json\_skip\_invalid\_typed\_paths
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

Если параметр включен, поля со значениями, которые невозможно привести к объявленному типу в столбцах с типом JSON и типизированными путями, пропускаются вместо генерации ошибки. Пропущенные поля считаются отсутствующими, и для них используются значения по умолчанию/NULL в соответствии с определением типизированного пути.

Этот параметр применяется только к столбцам с типом JSON (например, JSON(a Int64, b String)), где для определённых путей объявлены типы. Он не применяется к обычным JSON input formats, таким как JSONEachRow, при вставке в обычные типизированные столбцы.

Возможные значения:

* 0 — Отключено (ошибка при несоответствии типов).
* 1 — Включено (поле пропускается при несоответствии типов).

<div id="type_json_use_partial_match_to_skip_paths_by_regexp">
  ## type\_json\_use\_partial\_match\_to\_skip\_paths\_by\_regexp
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Если включено, то при разборе объекта JSON в тип JSON для пропуска пути регулярным выражениям, указанным с помощью SKIP REGEXP, будет достаточно частичного совпадения. Если отключено, потребуется полное совпадение.

<div id="validate_experimental_and_suspicious_types_inside_nested_types">
  ## validate\_experimental\_and\_suspicious\_types\_inside\_nested\_types
</div>

<SettingsInfoBlock type="Bool" default_value="1" />

Проверяет использование экспериментальных и подозрительных типов во вложенных типах, таких как Array/Map/Tuple
