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

RowBinary

入力出力エイリアス

説明

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 出力フォーマットにおいて、型名の文字列の代わりにバイナリエンコーディングを使用してヘッダーに型を記述できるようにします。false
input_format_binary_decode_types_in_binary_formatRowBinaryWithNamesAndTypes 入力フォーマットにおいて、型名の文字列の代わりにバイナリエンコーディングを使用してヘッダーから型を読み取れるようにします。false
output_format_binary_write_json_as_stringRowBinary 出力フォーマットにおいて、JSON データタイプの値を JSON String 値として書き込むことを可能にします。false
input_format_binary_read_json_as_stringRowBinary 入力フォーマットにおいて、JSON データタイプの値を JSON String 値として読み取ることを可能にします。false