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

RowBinary

InputOutputAlias

説明

RowBinaryフォーマットは、バイナリフォーマットで行ごとにデータを解析します。 行と値は連続してリストされ、区切り文字はありません。 データがバイナリフォーマットであるため、FORMAT RowBinaryの後の区切り文字は次のように厳密に指定されます:

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

このフォーマットは、行ベースであるため、Nativeフォーマットより効率が低いです。

次のデータ型については、注意が必要です:

  • 整数は固定長のリトルエンディアン表現を使用します。例えば、UInt64は8バイトを使用します。
  • DateTimeはUnixタイムスタンプを値として持つUInt32として表現されます。
  • Date1970-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