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

Arrow

InputOutputAlias

説明

Apache Arrow には、2 つの組み込みの列指向ストレージフォーマットがあります。 ClickHouse は、これらのフォーマットの読み取りおよび書き込み操作をサポートしています。 Arrow は Apache Arrow の「ファイルモード」フォーマットです。これは、インメモリのランダムアクセス向けに設計されています。

データ型の対応

以下の表は、サポートされているデータ型と、それらが INSERT および SELECT クエリにおける ClickHouse の データ型 にどのように対応するかを示しています。

Arrow データ型 (INSERT)ClickHouse データ型Arrow データ型 (SELECT)
BOOLBoolBOOL
UINT8, BOOLUInt8UINT8
INT8Int8/Enum8INT8
UINT16UInt16UINT16
INT16Int16/Enum16INT16
UINT32UInt32UINT32
INT32Int32INT32
UINT64UInt64UINT64
INT64Int64INT64
FLOAT, HALF_FLOATFloat32FLOAT32
DOUBLEFloat64FLOAT64
DATE32Date32UINT16
DATE64DateTimeUINT32
TIMESTAMP, TIME32, TIME64DateTime64TIMESTAMP
STRING, BINARYStringBINARY
STRING, BINARY, FIXED_SIZE_BINARYFixedStringFIXED_SIZE_BINARY
DECIMALDecimalDECIMAL
DECIMAL256Decimal256DECIMAL256
LISTArrayLIST
STRUCTTupleSTRUCT
MAPMapMAP
UINT32IPv4UINT32
FIXED_SIZE_BINARY, BINARYIPv6FIXED_SIZE_BINARY
FIXED_SIZE_BINARY, BINARYInt128/UInt128/Int256/UInt256FIXED_SIZE_BINARY

配列はネストでき、Nullable 型の値を引数として持つことができます。 TupleMap 型もネスト可能です。

DICTIONARY 型は INSERT クエリでサポートされており、SELECT クエリには output_format_arrow_low_cardinality_as_dictionary 設定があり、LowCardinality 型を DICTIONARY 型として出力することができます。

サポートされていない Arrow データ型:

  • FIXED_SIZE_BINARY
  • JSON
  • UUID
  • ENUM.

ClickHouse テーブルカラムのデータ型は、対応する Arrow データフィールドと一致する必要はありません。 データを挿入するとき、ClickHouse は上記の表に従ってデータ型を解釈し、その後 casts して ClickHouse テーブルカラムに設定されたデータ型にデータを変換します。

使用例

データの挿入

ファイルから Arrow データを ClickHouse テーブルに挿入するには、次のコマンドを使用します:

データの選択

ClickHouse テーブルからデータを選択し、Arrow フォーマットのいずれかのファイルに保存するには、次のコマンドを使用します:

フォーマット設定

設定説明デフォルト
input_format_arrow_allow_missing_columnsArrow 入力フォーマットを読み込む際に欠損しているカラムを許可する1
input_format_arrow_case_insensitive_column_matchingArrow カラムと CH カラムの一致の際に大文字小文字を無視する。0
input_format_arrow_import_nested廃止された設定、何もしない。0
input_format_arrow_skip_columns_with_unsupported_types_in_schema_inferenceフォーマット Arrow のスキーマ推論中にサポートされていない型のカラムをスキップする0
output_format_arrow_compression_methodArrow 出力フォーマット用の圧縮方法。サポートされているコーデック:lz4_frame、zstd、none(未圧縮)lz4_frame
output_format_arrow_fixed_string_as_fixed_byte_arrayFixedString カラムに対して Arrow FIXED_SIZE_BINARY 型を使用する。1
output_format_arrow_low_cardinality_as_dictionaryLowCardinality 型を Arrow 型の Dictionary として出力するのを有効にする0
output_format_arrow_string_as_stringString カラムに対して Arrow String 型を使用する。1
output_format_arrow_use_64_bit_indexes_for_dictionaryArrow フォーマットの辞書インデックスに対して常に 64 ビット整数を使用する0
output_format_arrow_use_signed_indexes_for_dictionaryArrow フォーマットの辞書インデックスに対して符号付き整数を使用する1