RowBinary
| 入力 | 出力 | エイリアス |
|---|---|---|
| ✔ | ✔ |
説明
RowBinary フォーマットは、バイナリ形式で行ごとにデータをパースします。
行および値は区切り文字なしで連続して並びます。
データがバイナリ形式であるため、FORMAT RowBinary の後に続く区切り文字は次のように厳密に決められています。
- 任意数の空白文字:
' '(スペース - コード0x20)'\t'(タブ - コード0x09)'\f'(フォームフィード - コード0x0C)
- 続いて、正確に 1 つの改行シーケンス:
- Windows スタイルの
"\r\n" - または Unix スタイルの
'\n'
- Windows スタイルの
- その直後にバイナリデータが続きます。
注記
このフォーマットは行ベースであるため、Native フォーマットより効率が劣ります。
以下のデータ型については、次の点が重要です。
- Integers は固定長のリトルエンディアン表現を使用します。たとえば、
UInt64は 8 バイトを使用します。 - DateTime は、値として Unix タイムスタンプを含む
UInt32で表現されます。 - Date は、
1970-01-01からの日数を値として含むUInt16として表現されます。 - String は可変長整数 (varint) (符号なし
LEB128) で長さを表し、その後に文字列のバイト列が続きます。 - FixedString は単にバイト列として表現されます。
- Arrays は可変長整数 (varint) (符号なし LEB128) で要素数を表し、その後に配列要素が順に続きます。
NULL をサポートするために、各 Nullable 値の前に 1 または 0 を含む追加の 1 バイトが挿入されます。
1の場合、その値はNULLであり、このバイトは別個の値として解釈されます。0の場合、そのバイトの後の値はNULLではありません。
RowBinary フォーマットと RawBlob フォーマットの比較については、Raw Formats Comparison を参照してください。
使用例
フォーマット設定
The following settings are common to all RowBinary type formats.
| Setting | Description | Default |
|---|---|---|
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 |