メインコンテンツへスキップ
メインコンテンツへスキップ

RowBinary

入力出力エイリアス

説明

RowBinary フォーマットは、バイナリ形式で行ごとにデータをパースします。 行および値は区切り文字なしで連続して並びます。 データがバイナリ形式であるため、FORMAT RowBinary の後に続く区切り文字は次のように厳密に決められています。

  • 任意数の空白文字:
    • ' ' (スペース - コード 0x20)
    • '\t' (タブ - コード 0x09)
    • '\f' (フォームフィード - コード 0x0C)
  • 続いて、正確に 1 つの改行シーケンス:
    • Windows スタイルの "\r\n"
    • または Unix スタイルの '\n'
  • その直後にバイナリデータが続きます。
注記

このフォーマットは行ベースであるため、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.

SettingDescriptionDefault
format_binary_max_string_sizeRowBinary フォーマットにおける String の最大許容サイズ。1GiB
output_format_binary_encode_types_in_binary_formatRowBinaryWithNamesAndTypes 出力フォーマットで、ヘッダー内の型を型名の文字列ではなく、binary encoding を用いたバイナリ表現で書き出すことを許可します。false
input_format_binary_decode_types_in_binary_formatRowBinaryWithNamesAndTypes 入力フォーマットで、ヘッダー内の型を型名の文字列ではなく、binary encoding を用いたバイナリ表現として読み取ることを許可します。false
output_format_binary_write_json_as_stringRowBinary 出力フォーマットで、JSON データ型の値を JSONString 値として書き出すことを許可します。false
input_format_binary_read_json_as_stringRowBinary 入力フォーマットで、JSON データ型の値を JSONString 値として読み取ることを許可します。false