RowBinary
入力 | 出力 | エイリアス |
---|---|---|
✔ | ✔ |
説明
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 出力フォーマットにおいて、型名の文字列の代わりにバイナリエンコーディング を使用してヘッダーに型を記述できるようにします。 | false |
input_format_binary_decode_types_in_binary_format | RowBinaryWithNamesAndTypes 入力フォーマットにおいて、型名の文字列の代わりにバイナリエンコーディング を使用してヘッダーから型を読み取れるようにします。 | 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 |