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