RowBinary
Input | Output | Alias |
---|---|---|
✔ | ✔ |
説明
RowBinary
形式は、バイナリ形式でデータを行単位でパースします。
行と値は連続してリストされ、区切りはありません。
バイナリ形式でデータがあるため、FORMAT RowBinary
の後の区切りは次のように厳密に指定されています:
- 任意の数の空白:
' '
(スペース - コード0x20
)'\t'
(タブ - コード0x09
)'\f'
(フォームフィード - コード0x0C
)
- 正確に1つの新しい行シーケンスの後に続く:
- Windowsスタイル
"\r\n"
- またはUnixスタイル
'\n'
- Windowsスタイル
- その直後にバイナリデータが続く。
注記
この形式は行指向であるため、Native 形式と比べて効率が低いです。
以下のデータ型については、次の点に注意することが重要です:
- 整数 は固定長のリトルエンディアン表現を使用します。例えば、
UInt64
は8バイトを使用します。 - DateTime は、Unixタイムスタンプを値として含む
UInt32
として表現されます。 - Date は、
1970-01-01
からの経過日数を値として含む UInt16 オブジェクトとして表現されます。 - String は、可変幅の整数 (varint) (符号なし
LEB128
) として表現され、その後に文字列のバイトが続きます。 - FixedString は、単純にバイトのシーケンスとして表現されます。
- 配列 は、可変幅の整数 (varint) (符号なし LEB128) として表現され、その後に配列の連続した要素が続きます。
NULL サポートのために、各 Nullable 値の前に 1
または 0
を含む追加のバイトが加えられます。
1
の場合、値はNULL
であり、このバイトは別の値として解釈されます。0
の場合、そのバイトの後の値はNULL
ではありません。
RowBinary
形式と RawBlob
形式の比較については、Raw Formats Comparison を参照してください。
使用例
形式設定
以下の設定は、すべての RowBinary
型フォーマットに共通しています。
設定 | 説明 | デフォルト |
---|---|---|
format_binary_max_string_size | RowBinaryフォーマットにおけるStringの最大許容サイズです。 | 1GiB |
output_format_binary_encode_types_in_binary_format | RowBinaryWithNamesAndTypes 出力フォーマットにおいて、型名の文字列の代わりに binary encoding を用いてヘッダーに型を書き込むことを可能にします。 | false |
input_format_binary_decode_types_in_binary_format | RowBinaryWithNamesAndTypes 入力フォーマットにおいて、型名の文字列の代わりに binary encoding を用いてヘッダーから型を読み取ることを可能にします。 | false |
output_format_binary_write_json_as_string | RowBinary 出力フォーマットにおいて、JSON データ型の値を JSON String 値として書き込むことを可能にします。 | false |
input_format_binary_read_json_as_string | RowBinary 入力フォーマットにおいて、JSON データ型の値を JSON String 値として読み取ることを可能にします。 | false |