> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

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

> Настройки формата ClickHouse в автоматически сгенерированной группе output_format_*.

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["Версия", "Значение по умолчанию", "Комментарий"];
  const border = "1px solid rgba(128, 128, 128, 0.3)";
  const cell = {
    border,
    padding: "0.25rem 0.5rem",
    textAlign: "start",
    verticalAlign: "top"
  };
  return <details className="not-prose" style={{
    border,
    borderRadius: "0.5rem",
    margin: "0.5rem 0",
    padding: "0.5rem 0.75rem",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <summary style={{
    cursor: "pointer",
    fontWeight: 600,
    opacity: 0.72
  }}>
        История версий
      </summary>
      <table style={{
    borderCollapse: "collapse",
    width: "100%",
    margin: "0.5rem 0 0"
  }}>
        <thead>
          <tr>
            {headers.map(header => <th key={header} style={{
    ...cell,
    fontWeight: 600,
    opacity: 0.72
  }}>
                {header}
              </th>)}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, row_index) => <tr key={row.id ?? row_index}>
              {(row.items ?? []).map((item, item_index) => <td key={item_index} style={{
    ...cell,
    overflowWrap: "anywhere"
  }}>
                  {item?.label}
                </td>)}
            </tr>)}
        </tbody>
      </table>
    </details>;
};

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>Тип</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>По умолчанию</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Изменяется без перезапуска
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

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

## output\_format\_always\_write\_decimal\_point\_in\_float\_and\_decimal

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

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

Всегда выводить десятичную точку для чисел с плавающей запятой и чисел типа Decimal в текстовых форматах, даже если значение является целым числом. Например, выводить `1.` вместо `1`.

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

## output\_format\_arrow\_compression\_method

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

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

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

## output\_format\_arrow\_date\_as\_uint16

<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).

## output\_format\_arrow\_fixed\_string\_as\_fixed\_byte\_array

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

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

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

## output\_format\_arrow\_low\_cardinality\_as\_dictionary

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

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

## output\_format\_arrow\_record\_batch\_size

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "0"},{"label": "Новая настройка для объединения небольших блоков в выводе `Arrow` и `ArrowStream` по целевому количеству строк. Значение по умолчанию `0` сохраняет по одному record batch на блок."}]}]} />

Целевое количество строк в одном record batch для форматов вывода `Arrow` и `ArrowStream`. Объединение небольших блоков снижает накладные расходы на метаданные и дополнение буферов, особенно для запросов с селективными фильтрами.

Блоки накапливаются до тех пор, пока не будет достигнуто это целевое значение или значение [output\_format\_arrow\_record\_batch\_size\_bytes](/ru/reference/settings/formats/output-format#output_format_arrow_record_batch_size_bytes). Блок, который уже удовлетворяет целевому количеству строк или байт, записывается отдельно, без разбиения. Если задать целевое количество строк, объединённые батчи будут содержать менее чем вдвое больше строк, однако отдельный входной блок может быть больше.

Буферизация блоков может увеличить потребление памяти и задержать вывод. Если результат так и не достигнет ни одного из целевых значений, `ArrowStream` запишет первый record batch только по завершении запроса, хотя схему может записать раньше. Оставьте оба целевых значения равными `0`, чтобы record batch записывались по мере поступления блоков.

`0` (значение по умолчанию) отключает целевое количество строк. В качестве начального значения попробуйте `65409`.

## output\_format\_arrow\_record\_batch\_size\_bytes

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.9"},{"label": "0"},{"label": "Новая настройка для объединения мелких блоков при выводе в форматах `Arrow` и `ArrowStream` по целевому размеру накопленных данных в байтах. Значение по умолчанию `0` сохраняет один record batch на блок."}]}]} />

Целевой размер record batch для форматов вывода `Arrow` и `ArrowStream`, измеряемый в байтах накопленных данных блока. Используется та же мера, что и в [min\_insert\_block\_size\_bytes](/ru/reference/settings/session-settings/min-insert#min_insert_block_size_bytes). Батч записывается при достижении либо этого целевого значения, либо [output\_format\_arrow\_record\_batch\_size](/ru/reference/settings/formats/output-format#output_format_arrow_record_batch_size).

Обратите внимание, что столбцы `LowCardinality` могут порождать батчи Arrow значительно больше или меньше указанного целевого размера в байтах. Повторяющиеся значения разворачиваются в выводе, если не включена настройка [output\_format\_arrow\_low\_cardinality\_as\_dictionary](/ru/reference/settings/formats/output-format#output_format_arrow_low_cardinality_as_dictionary). Отфильтрованные блоки также могут сохранять большие словари, поэтому даже блок с очень небольшим числом строк может достичь целевого размера и быть записан отдельно. Для таких столбцов управляйте количеством строк с помощью [output\_format\_arrow\_record\_batch\_size](/ru/reference/settings/formats/output-format#output_format_arrow_record_batch_size), а целевой размер в байтах задайте равным `0`.

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

`0` (значение по умолчанию) отключает целевой размер в байтах. В качестве начального значения попробуйте `1048576` (1 МиБ).

## output\_format\_arrow\_string\_as\_string

<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 Strings поддерживают только UTF-8. Поэтому для типа String в ClickHouse можно выбрать, какой тип данных Arrow использовать — String или Binary. Хотя Binary был бы более корректным и совместимым вариантом, использование String по умолчанию в большинстве случаев лучше соответствует ожиданиям пользователей."}]}]} />

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

## output\_format\_arrow\_unsupported\_types

<SettingsInfoBlock type="ArrowUnsupportedTypes" default_value="binary" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.10"},{"label": "binary"},{"label": "Новая настройка, заменяющая `output_format_arrow_unsupported_types_as_binary` и добавляющая режим `text`. Её значение по умолчанию соответствует прежнему поведению, поэтому `compatibility` не должна его изменять."}]}]} />

Что записывать для столбца, тип которого не имеет прямого соответствия в Arrow (например, `JSON`, `Dynamic`, `QBit` или `AggregateFunction`):

* `throw` — отклонить запрос;
* `text` — по одному значению в текстовой форме на строку (то, что выдал бы `CAST(col AS String)`), в виде столбца Arrow `Utf8`;
* `binary` — двоичное представление каждого значения в виде столбца Arrow `Binary` (то же кодирование отдельных значений, что и в `RowBinary`).

Столбец `AggregateFunction` остаётся `Binary` и в режиме `text`, поскольку его текстовая форма — это сырое агрегатное состояние, а не текст, тогда как столбец Arrow `Utf8` обязан содержать корректный UTF-8. Чтобы получить читаемое значение, используйте `finalizeAggregation`.

Значение, записываемое в столбец `Utf8`, приводится к корректному UTF-8: каждая некорректная последовательность заменяется на U+FFFD. Это затрагивает только тот текст, который считыватель всё равно не смог бы интерпретировать как текст, — например, `Dynamic`, содержащий `String` с произвольными байтами. Если байты необходимо сохранить в точности, используйте режим `binary`.

`output_format_arrow_string_as_string` к таким столбцам не применяется — только к настоящим `String` и `FixedString`. Благодаря этому тип Arrow у непрозрачного столбца по-прежнему говорит о том, какое кодирование в нём содержится: `Utf8` — текстовая форма, `Binary` — двоичная, независимо от значения этой настройки.

То же касается агрегатного состояния, хранящегося в `Dynamic`: тип столбца определяется по `Dynamic`, который ничего не говорит о содержимом его строк, а схема Arrow фиксируется до того, как будет просмотрено хоть одно значение, поэтому состоянию нельзя выделить собственный столбец `Binary`, как это делается для столбца `AggregateFunction`. Следовательно, в режиме `text` данные теряются. Режим `binary` их сохраняет. `Variant` это не затрагивает — он перечисляет свои альтернативы, поэтому `AggregateFunction` среди них получает собственный дочерний столбец `Binary`.

И в режиме `text`, и в режиме `binary` поле помечается в схеме Arrow именем расширения `clickhouse.opaque` и исходным именем типа ClickHouse, чтобы считыватель мог отличить его от настоящего строкового или двоичного столбца.

ClickHouse читает такой столбец обратно в тип, указанный в метке, только там, где читающая сторона этот тип уже знает — потому что его объявляет таблица или задаёт structure argument, такой как у `file` и `s3`; при этом то же происходит и внутри `Array`, `Tuple`, `Map` и `Nullable`. Schema inference метку не учитывает, поэтому столбец, прочитанный без явно заданного для него типа, всё равно приходит как `String` с сырой полезной нагрузкой. Альтернатива внутри `Variant` не читается обратно никогда, даже при указанном типе, поскольку объединение Arrow, образуемое её альтернативами, декодируется без учёта меток. Записанные данные во всех случаях корректно сформированы для других считывателей Arrow.

Имеет приоритет над более старой настройкой `output_format_arrow_unsupported_types_as_binary`, которая учитывается, только если данная настройка оставлена в значении по умолчанию.

## output\_format\_arrow\_unsupported\_types\_as\_binary

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

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

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

Заменена настройкой `output_format_arrow_unsupported_types`: `0` соответствует `throw`, а `1` — `binary`. Учитывается только в том случае, если `output_format_arrow_unsupported_types` не задана явно.

## output\_format\_arrow\_use\_64\_bit\_indexes\_for\_dictionary

<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

## output\_format\_arrow\_use\_signed\_indexes\_for\_dictionary

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

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

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

## output\_format\_avro\_codec

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

## output\_format\_avro\_confluent\_subject

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

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

## output\_format\_avro\_rows\_in\_file

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

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

## output\_format\_avro\_string\_column\_pattern

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

## output\_format\_avro\_sync\_interval

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

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

## output\_format\_binary\_encode\_types\_in\_binary\_format

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

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

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

## output\_format\_binary\_write\_json\_as\_string

<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.

## output\_format\_bson\_string\_as\_string

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

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

## output\_format\_compression\_level

<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`

## output\_format\_compression\_zstd\_window\_log

<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`).

## output\_format\_csv\_crlf\_end\_of\_line

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

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

## output\_format\_csv\_header\_serialize\_tuple\_into\_separate\_columns

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.7"},{"label": "1"},{"label": "Новая настройка. Когда включен output_format_csv_serialize_tuple_into_separate_columns, заголовок CSVWithNames\/CSVWithNamesAndTypes теперь раскрывает столбцы Tuple в их конечные поля, чтобы ширина заголовка соответствовала данным. Установите false, чтобы вернуть прежний заголовок с одним именем."}]}]} />

Когда включен [output\_format\_csv\_serialize\_tuple\_into\_separate\_columns](/ru/reference/settings/formats/output-format#output_format_csv_serialize_tuple_into_separate_columns), строки заголовка `CSVWithNames` и `CSVWithNamesAndTypes` раскрывают каждый обычный столбец `Tuple` в его конечные поля (имена с точками, такие как `t.a`, `t.b`, и имена конечных типов), так что заголовок содержит столько же столбцов, сколько и данные. Столбец `Nullable(Tuple)` никогда не раскрывается (его данные остаются одним полем CSV), поэтому в его заголовке сохраняются одно имя столбца верхнего уровня и один тип. Для `CustomSeparated*` это раскрытие применяется только если `format_custom_escaping_rule = 'CSV'` и `format_custom_field_delimiter` — одиночный символ, совпадающий с `format_csv_delimiter`; в противном случае (например, при разделителе табуляции по умолчанию или `format_custom_field_delimiter = '|'`) заголовок остается нераскрытым, чтобы по-прежнему соответствовать данным. Установите значение `0`, чтобы сохранить прежнее поведение, при котором заголовок содержит одно имя и один тип Tuple верхнего уровня.

Примечание: раскрытый заголовок не считывается обратно в Tuple по имени, когда `input_format_with_names_use_header = 1`. Чтобы прочитать такие данные обратно в Tuple, либо установите для этой настройки значение `0` при выводе, либо читайте с `input_format_with_names_use_header = 0` (а для форматов `*WithNamesAndTypes` — `CSVWithNamesAndTypes` и `CustomSeparatedWithNamesAndTypes` — также `input_format_with_types_use_header = 0`, поскольку иначе раскрытая строка типов будет проверяться на соответствие единственному входному полю Tuple верхнего уровня и будет отклонена).

## output\_format\_csv\_serialize\_tuple\_into\_separate\_columns

<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 сериализуются как отдельные столбцы (то есть их вложенность в Tuple теряется).

Это преобразование применяется только к обычному `Tuple`. `Nullable(Tuple)` всегда сериализуется как одно поле CSV (чтобы строки с NULL и не-NULL занимали одинаковое число полей) независимо от этой настройки.

## output\_format\_decimal\_trailing\_zeros

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

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

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

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

## output\_format\_float\_precision

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

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

Если значение не равно нулю, вывод чисел с плавающей запятой (`Float32`, `Float64`, `BFloat16`) форматируется максимум с таким количеством знаков после десятичной точки (конечные нули удаляются).
Если значение равно 0 (по умолчанию), используется кратчайшее представление, допускающее точное восстановление значения.

Значения, слишком большие для записи в фиксированном формате, а также значения, модуль которых настолько мал, что округление до запрошенной точности привело бы к потере всех значащих цифр (мантисса стала бы `±0`), вместо этого выводятся в научной нотации. В этих случаях мантисса может содержать больше знаков дробной части, чем указано в запрошенной точности.

Допустимый диапазон: от 0 до 100.

## output\_format\_image\_height

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

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

Высота выходного изображения в пикселях для форматов вывода изображений, таких как `PNG`.

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

## output\_format\_image\_streaming\_animation

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

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

Для форматов вывода изображений, таких как `PNG`, записывать каждый кадр анимации сразу после появления следующего значения в столбце `t` вместо буферизации всех кадров в памяти до завершения запроса.

В памяти хранится только один кадр, а кадры выводятся ещё во время выполнения запроса. Взамен значения `t` должны быть неубывающими, иначе запрос генерирует исключение. Кроме того, на момент записи заголовка анимации число кадров неизвестно, поэтому указанное число кадров является верхней границей, а не точным значением. Браузеры воспроизводят такой файл, но декодеры, полагающиеся на указанное число кадров, сообщают об ошибке после последнего фактического кадра.

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

## output\_format\_image\_terminal\_mode

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

Для форматов вывода изображений, таких как `PNG`, выводить изображение прямо в терминал с помощью inline-протокола изображений вместо записи сырых байтов изображения.

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

* \`\` (пусто) — записывать сырые байты изображения (по умолчанию).
* `iterm` — использовать inline-протокол изображений iTerm2.
* `kitty` — использовать графический протокол Kitty.
* `sixel` — использовать протокол Sixel.
* `auto` — если вывод направлен в терминал, определить его возможности и использовать `iterm`, `kitty` или `sixel` (в этом порядке); в противном случае записывать сырые байты изображения.

Значение по умолчанию: \`\` (пусто).

## output\_format\_image\_time\_divisor\_seconds

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

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

Знаменатель единицы времени столбца `t` в секундах для форматов вывода изображений, таких как `PNG`.

См. [`output_format_image_time_multiplier_seconds`](/ru/reference/settings/formats/output-format#output_format_image_time_multiplier_seconds).

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

## output\_format\_image\_time\_multiplier\_seconds

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

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

Числитель единицы времени для столбца `t` в секундах для форматов вывода изображений, таких как `PNG`.

При наличии столбца `t` формат создаёт анимацию, в которой `t` задаёт относительное смещение времени кадра. Одна единица `t` соответствует `output_format_image_time_multiplier_seconds / output_format_image_time_divisor_seconds` секундам.
При значениях по умолчанию (`1` и `60`) одна единица `t` равна 1/60 секунды.

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

## output\_format\_image\_width

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

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

Ширина выводимого изображения в пикселях для форматов вывода изображений, таких как `PNG`.

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

## output\_format\_json\_array\_of\_rows

<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"}
```

## output\_format\_json\_escape\_forward\_slashes

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

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

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

## output\_format\_json\_map\_as\_array\_of\_tuples

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

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

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

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

## output\_format\_json\_named\_tuples\_as\_objects

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

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

Сериализует столбцы именованных кортежей как объекты JSON.

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

## output\_format\_json\_pretty\_print

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

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

Этот параметр определяет, как вложенные структуры, такие как Tuples, Maps и Arrays, отображаются в массиве `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
        }
    }
],
```

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

## output\_format\_json\_quote\_64bit\_floats

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

Управляет тем, будут ли 64-битные [числа с плавающей точкой](/ru/reference/data-types/float) заключаться в кавычки при выводе в форматах JSON\*.

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

## output\_format\_json\_quote\_64bit\_integers

<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 — Целые числа заключаются в кавычки.

## output\_format\_json\_quote\_decimals

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

Управляет выводом десятичных чисел в кавычках в формате вывода JSON.

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

## output\_format\_json\_quote\_denormals

<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
        }
}
```

## output\_format\_json\_skip\_null\_value\_in\_named\_tuples

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

Пропускать пары ключ-значение со значением NULL при сериализации столбцов именованных кортежей в виде объектов JSON. Действует только если output\_format\_json\_named\_tuples\_as\_objects имеет значение true.

## output\_format\_json\_validate\_utf8

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

Управляет проверкой последовательностей UTF-8 в формате вывода JSON и не влияет на форматы JSON/JSONCompact/JSONColumnsWithMetadata — в них проверка UTF-8 выполняется всегда.

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

## output\_format\_markdown\_escape\_special\_characters

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

Если включено, специальные символы в Markdown экранируются.

[Common Mark](https://spec.commonmark.org/0.30/#example-12) определяет следующие специальные символы, которые можно экранировать с помощью :

```
! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
```

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

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

## output\_format\_msgpack\_uuid\_representation

<SettingsInfoBlock type="MsgPackUUIDRepresentation" default_value="ext" />

Способ представления UUID в формате MsgPack при выводе.

## output\_format\_native\_encode\_types\_in\_binary\_format

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

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

Записывает типы данных в двоичном виде вместо имён типов в формате вывода Native

## output\_format\_native\_use\_flattened\_dynamic\_and\_json\_serialization

<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) в уплощенном формате (все типы/пути — как отдельные подстолбцы).

## output\_format\_native\_write\_json\_as\_string

<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-сериализации.

## output\_format\_orc\_compression\_block\_size

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

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

Размер блока сжатия в байтах для формата вывода ORC.

## output\_format\_orc\_compression\_method

<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 (без сжатия)

## output\_format\_orc\_dictionary\_key\_size\_threshold

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

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

Для строкового столбца в формате вывода ORC: если число различных значений превышает эту долю от общего числа строк с не-NULL значениями, кодирование с использованием словаря отключается. В противном случае оно включается

## output\_format\_orc\_row\_index\_stride

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

Целевой шаг индекса строк для выходного формата ORC

## output\_format\_orc\_string\_as\_string

<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 по умолчанию в большинстве случаев лучше соответствует ожиданиям пользователей."}]}]} />

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

## output\_format\_orc\_writer\_time\_zone\_name

<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.

## output\_format\_parallel\_formatting

<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 — Отключено.

## output\_format\_parquet\_batch\_size

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

Проверять размер страницы через каждые столько строк. Рассмотрите возможность уменьшить значение, если у вас есть столбцы, у которых средний размер значений превышает несколько КБ.

## output\_format\_parquet\_bloom\_filter\_bits\_per\_value

<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%

## output\_format\_parquet\_bloom\_filter\_flush\_threshold\_bytes

<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-фильтры будут накапливаться в памяти и записываться, как только их общий размер превысит это значение.

## output\_format\_parquet\_compression\_method

<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": "По умолчанию в выходном формате Parquet используется сжатие lz4"}]}]} />

Метод сжатия для выходного формата Parquet. Поддерживаемые кодеки: snappy, lz4, brotli, zstd, gzip, none (без сжатия)

## output\_format\_parquet\_data\_page\_size

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

Целевой размер страницы в байтах до сжатия.

## output\_format\_parquet\_date\_as\_uint16

<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-битный тип DATE в Parquet (при чтении возвращается как Date32).

## output\_format\_parquet\_datetime\_as\_uint32

<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)).

## output\_format\_parquet\_enum\_as\_byte\_array

<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

## output\_format\_parquet\_fixed\_string\_as\_fixed\_byte\_array

<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.

## output\_format\_parquet\_geometadata

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

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

Позволяет записывать информацию о геопространственных столбцах в метаданные Parquet и кодировать столбцы в формате WKB.

## output\_format\_parquet\_max\_dictionary\_size

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

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

Если размер словаря превышает указанное количество байт, используется кодирование без словаря. Установите значение 0, чтобы отключить кодирование с использованием словаря.

## output\_format\_parquet\_parallel\_encoding

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

Выполняет кодирование Parquet в нескольких потоках.

## output\_format\_parquet\_row\_group\_size

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

Целевой размер группы строк в количестве строк.

## output\_format\_parquet\_row\_group\_size\_bytes

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

Целевой размер группы строк в байтах, до сжатия.

## output\_format\_parquet\_string\_as\_string

<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 по умолчанию в большинстве случаев лучше соответствует ожиданиям пользователей."}]}]} />

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

## output\_format\_parquet\_wide\_integer\_as\_decimal

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "0"},{"label": "Новая настройка для записи значений `Int128`, `UInt128`, `Int256` и `UInt256` как стандартных значений Parquet `DECIMAL`. Предыдущее значение сохраняет устаревшее представление `FIXED_LEN_BYTE_ARRAY` в порядке little-endian."}]}]} />

Записывать значения `Int128`, `UInt128`, `Int256` и `UInt256` как соответствующие стандарту Parquet значения `DECIMAL` с порядком байтов big-endian. Значение по умолчанию сохраняет устаревшее представление `FIXED_LEN_BYTE_ARRAY` без аннотации в порядке little-endian для совместимости со старыми версиями ClickHouse. Десятичное представление обеспечивает совместимость числовой статистики, однако некоторые ридеры Parquet не поддерживают точность свыше 38 или 76.

## output\_format\_parquet\_write\_bloom\_filter

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1"},{"label": "Добавлена поддержка записи bloom-фильтров в файлы Parquet."}]}]} />

Записывать bloom-фильтры в файлы Parquet.

## output\_format\_parquet\_write\_checksums

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

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

Добавляет контрольные суммы CRC32 в заголовки страниц Parquet.

## output\_format\_parquet\_write\_page\_index

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

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

Записывает индекс столбцов и индекс смещений (то есть статистику по каждой странице данных, которую можно использовать для pushdown фильтров при чтении) в файлы Parquet.

## output\_format\_pretty\_color

<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' — включено, если вывод идёт в терминал.

## output\_format\_pretty\_display\_footer\_column\_names

<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](/ru/reference/settings/formats/output-format#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)─┘
```

## output\_format\_pretty\_display\_footer\_column\_names\_min\_rows

<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](/ru/reference/settings/formats/output-format#output_format_pretty_display_footer_column_names).

## output\_format\_pretty\_fallback\_to\_vertical

<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`.

## output\_format\_pretty\_fallback\_to\_vertical\_max\_rows\_per\_chunk

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

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

Переключение на формат Vertical (см. `output_format_pretty_fallback_to_vertical`) будет выполняться только в том случае, если количество записей во фрагменте не превышает указанное значение.

## output\_format\_pretty\_fallback\_to\_vertical\_min\_columns

<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`) произойдёт только в том случае, если количество столбцов больше указанного значения.

## output\_format\_pretty\_fallback\_to\_vertical\_min\_table\_width

<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`) выполняется только если суммарная длина столбцов таблицы не меньше указанного значения либо хотя бы одно значение содержит символ перевода строки.

## output\_format\_pretty\_glue\_chunks

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.5"},{"label": "auto"},{"label": "Новая настройка, которая делает форматы Pretty более удобными для восприятия."}]}]} />

Если данные, отображаемые в форматах Pretty, поступили в нескольких фрагментах, даже с задержкой, но следующий фрагмент имеет ту же ширину столбцов, что и предыдущий, используйте ANSI-последовательности экранирования, чтобы вернуться к предыдущей строке и перезаписать нижний колонтитул предыдущего фрагмента, продолжив его данными из нового фрагмента. Это делает результат визуально более приятным.

0 — отключено, 1 — включено, 'auto' — включено при выводе в терминал.

## output\_format\_pretty\_grid\_charset

<SettingsInfoBlock type="String" default_value="UTF-8" />

Набор символов для отображения границ таблицы. Доступные наборы символов: ASCII, UTF-8 (по умолчанию).

В interactive mode `clickhouse-client` автоматически переключается на `ASCII`, если терминал не поддерживает UTF-8 (это определяется переменными окружения `LC_ALL`, `LC_CTYPE` и `LANG`), если только этот параметр не задан явно.

## output\_format\_pretty\_highlight\_digit\_groups

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "Если параметр включен и вывод осуществляется в терминал, цифры, соответствующие тысячам, миллионам и т. д., подчеркиваются."}]}]} />

Если параметр включен и вывод осуществляется в терминал, цифры, соответствующие тысячам, миллионам и т. д., подчеркиваются.

## output\_format\_pretty\_highlight\_trailing\_spaces

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

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

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

## output\_format\_pretty\_max\_column\_name\_width\_cut\_to

<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`.

## output\_format\_pretty\_max\_column\_name\_width\_min\_chars\_to\_cut

<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`.

## output\_format\_pretty\_max\_column\_pad\_width

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

Максимальная ширина заполнения для всех значений в столбце в форматах Pretty.

## output\_format\_pretty\_max\_rows

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.2"},{"label": "1000"},{"label": "Так удобнее: меньше прокручивать."}]}]} />

Ограничение количества строк для форматов Pretty.

## output\_format\_pretty\_max\_value\_width

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

Максимальная ширина значения, отображаемого в форматах Pretty. Если ширина больше, значение будет обрезано.
Значение 0 означает, что обрезка не выполняется.

## output\_format\_pretty\_max\_value\_width\_apply\_for\_single\_value

<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`) только в том случае, если это не одиночное значение в блоке. В противном случае выводить его полностью, что особенно полезно для запроса `SHOW CREATE TABLE`.

## output\_format\_pretty\_multiline\_fields

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

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

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

## output\_format\_pretty\_named\_tuples\_as\_json

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

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

Определяет, выводятся ли именованные Tuple в формате Pretty в виде красиво отформатированных объектов JSON.

## output\_format\_pretty\_row\_numbers

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1"},{"label": "Это удобнее в использовании."}]}]} />

Добавляет номера перед каждой строкой в формате вывода Pretty

## output\_format\_pretty\_single\_large\_number\_tip\_threshold

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

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

Выводить справа от таблицы понятную числовую подсказку, если блок состоит из одного числа, превышающего это значение (кроме 0)

## output\_format\_pretty\_squash\_consecutive\_ms

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

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

Ожидает следующий блок в течение указанного количества миллисекунд и перед выводом объединяет его с предыдущим.
Это позволяет избежать слишком частого вывода слишком маленьких блоков, сохраняя при этом возможность отображать данные в режиме стриминга.

## output\_format\_pretty\_squash\_max\_wait\_ms

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

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

Выводить отложенный блок в форматах Pretty, если с момента предыдущего вывода прошло больше указанного количества миллисекунд.

## output\_format\_pretty\_use\_nbsp\_for\_padding

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.6"},{"label": "0"},{"label": "Новая настройка. Если включена, дополнение в форматах вывода `Pretty` отображается с помощью `U+00A0`, поэтому оно сохраняется при копировании и вставке через инструменты, которые сжимают последовательности обычных пробелов."}]}]} />

Если включено, дополнение в форматах вывода `Pretty` отображается с помощью `U+00A0` вместо пробела ASCII.
В моноширинном шрифте вывод визуально остается тем же, но дополнение сохраняется при использовании инструментов, которые сжимают или обрезают последовательности обычных пробелов.
Действует только если `output_format_pretty_grid_charset` имеет значение `UTF-8`.

## output\_format\_protobuf\_nullables\_with\_google\_wrappers

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

При сериализации столбцов с типом Nullable с помощью обёрток Google значения по умолчанию сериализуются как пустые обёртки. Если этот параметр отключён, значения по умолчанию и значения NULL не сериализуются

## output\_format\_schema

Путь к файлу, в который будет сохранена автоматически сгенерированная схема в формате [Cap'n Proto](/ru/reference/formats/CapnProto) или [Protobuf](/ru/reference/formats/Protobuf/Protobuf).

## output\_format\_sql\_insert\_include\_column\_names

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

Добавлять имена столбцов в запрос INSERT

## output\_format\_sql\_insert\_max\_batch\_size

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

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

## output\_format\_sql\_insert\_quote\_names

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

Заключать имена столбцов в символы «\`»

## output\_format\_sql\_insert\_table\_name

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

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

## output\_format\_sql\_insert\_use\_replace

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

Использовать оператор REPLACE вместо оператора INSERT

## output\_format\_trim\_fixed\_string

<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`.

## output\_format\_tsv\_crlf\_end\_of\_line

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

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

## output\_format\_values\_escape\_quote\_with\_quote

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

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.2"},{"label": "0"},{"label": "Если true, экранировать ' как '', иначе использовать \\'"}]}]} />

Если true, экранировать ' как '', иначе использовать \\'

## output\_format\_write\_statistics

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

Записывает статистику о количестве прочитанных строк, байтов и затраченном времени в подходящих форматах вывода.

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