メインコンテンツまでスキップ
メインコンテンツまでスキップ

RowBinary

InputOutputAlias

説明

RowBinary 形式は、バイナリ形式でデータを行単位でパースします。 行と値は連続してリストされ、区切りはありません。 バイナリ形式でデータがあるため、FORMAT RowBinary の後の区切りは次のように厳密に指定されています:

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

この形式は行指向であるため、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_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 データ型の値を JSON String 値として書き込むことを可能にします。false
input_format_binary_read_json_as_stringRowBinary 入力フォーマットにおいて、JSON データ型の値を JSON String 値として読み取ることを可能にします。false