RowBinary
| Вход | Выход | Псевдоним | 
|---|---|---|
| ✔ | ✔ | 
Описание
Формат RowBinary разбирает данные по строкам в бинарном формате.
Строки и значения перечислены последовательно, без разделителей.
Поскольку данные находятся в бинарном формате, разделитель после FORMAT RowBinary строго определяется следующим образом:
- Любое количество пробелов:
- ' '(пробел - код- 0x20)
- '\t'(табуляция - код- 0x09)
- '\f'(разделитель страницы - код- 0x0C)
 
- За которым следует ровно одна новая строка:
- В стиле Windows "\r\n"
- или в стиле Unix '\n'
 
- В стиле Windows 
- Сразу за этим следует бинарные данные.
примечание
Этот формат менее эффективен, чем формат Native, поскольку он основан на строках.
Для следующих типов данных важно отметить, что:
- Целые числа используют фиксированное представление в формате little-endian. Например, UInt64использует 8 байт.
- DateTime представлен как UInt32, содержащий Unix timestamp в качестве значения.
- Дата представлена как объект UInt16, который содержит количество дней с 1970-01-01в качестве значения.
- Строка представлена как целое число переменной длины (varint) (беззнаковое LEB128), за которым следуют байты строки.
- FixedString представляется просто как последовательность байтов.
- Массивы представлены как целое число переменной длины (varint) (беззнаковое LEB128), за которым следуют последующие элементы массива.
Для поддержки NULL добавляется дополнительный байт, содержащий 1 или 0, перед каждым Nullable значением.
- Если 1, то значение являетсяNULL, и этот байт интерпретируется как отдельное значение.
- Если 0, значение после байта не являетсяNULL.
Для сравнения формата RowBinary и формата RawBlob см. Сравнение сырьевых форматов
Пример использования
Настройки формата
Следующие настройки общие для всех форматов типа RowBinary.
| Настройка | Описание | По умолчанию | 
|---|---|---|
| format_binary_max_string_size | Максимально допустимый размер для String в формате RowBinary. | 1GiB | 
| output_format_binary_encode_types_in_binary_format | Позволяет записывать типы в заголовке, используя бинарное кодирование, вместо строк с названиями типов в формате выводаRowBinaryWithNamesAndTypes. | false | 
| input_format_binary_decode_types_in_binary_format | Позволяет читать типы в заголовке, используя бинарное кодирование, вместо строк с названиями типов в формате вводаRowBinaryWithNamesAndTypes. | false | 
| output_format_binary_write_json_as_string | Позволяет записывать значения типа JSONкакJSONString значения в формате выводаRowBinary. | false | 
| input_format_binary_read_json_as_string | Позволяет читать значения типа JSONкакJSONString значения в формате вводаRowBinary. | false | 
