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 как JSON String значения в формате вывода RowBinary . | false |
input_format_binary_read_json_as_string | Позволяет читать значения типа JSON как JSON String значения в формате ввода RowBinary . | false |