Arrow
| Input | Output | Alias |
|---|---|---|
| ✔ | ✔ |
説明
Apache Arrow には、組み込みのカラムナ型ストレージフォーマットが 2 つ用意されています。ClickHouse はこれらのフォーマットに対する読み書き処理をサポートしています。
Arrow は Apache Arrow の「ファイルモード」フォーマットです。メモリ上でのランダムアクセス向けに設計されています。
データ型の対応関係
次の表は、サポートされているデータ型と、それらが INSERT および SELECT クエリで ClickHouse の データ型 にどのように対応するかを示しています。
Arrow data type (INSERT) | ClickHouse data type | Arrow data type (SELECT) |
|---|---|---|
BOOL | Bool | BOOL |
UINT8, BOOL | UInt8 | UINT8 |
INT8 | Int8/Enum8 | INT8 |
UINT16 | UInt16 | UINT16 |
INT16 | Int16/Enum16 | INT16 |
UINT32 | UInt32 | UINT32 |
INT32 | Int32 | INT32 |
UINT64 | UInt64 | UINT64 |
INT64 | Int64 | INT64 |
FLOAT, HALF_FLOAT | Float32 | FLOAT32 |
DOUBLE | Float64 | FLOAT64 |
DATE32 | Date32 | UINT16 |
DATE64 | DateTime | UINT32 |
TIMESTAMP, TIME32, TIME64 | DateTime64 | TIMESTAMP |
STRING, BINARY | String | BINARY |
STRING, BINARY, FIXED_SIZE_BINARY | FixedString | FIXED_SIZE_BINARY |
DECIMAL | Decimal | DECIMAL |
DECIMAL256 | Decimal256 | DECIMAL256 |
LIST | Array | LIST |
STRUCT | Tuple | STRUCT |
MAP | Map | MAP |
UINT32 | IPv4 | UINT32 |
FIXED_SIZE_BINARY, BINARY | IPv6 | FIXED_SIZE_BINARY |
FIXED_SIZE_BINARY, BINARY | Int128/UInt128/Int256/UInt256 | FIXED_SIZE_BINARY |
配列は入れ子(ネスト)にすることができ、引数として Nullable 型の値を持つことができます。Tuple 型および Map 型も入れ子にすることができます。
DICTIONARY 型は INSERT クエリでサポートされており、SELECT クエリに対しては、LowCardinality 型を DICTIONARY 型として出力できるようにする output_format_arrow_low_cardinality_as_dictionary 設定があります。
サポートされていない Arrow データ型は次のとおりです:
FIXED_SIZE_BINARYJSONUUIDENUM.
ClickHouse テーブル列のデータ型は、対応する Arrow データフィールドと一致している必要はありません。データを挿入する際、ClickHouse はまず上記の表に従ってデータ型を解釈し、その後、ClickHouse テーブル列に設定されているデータ型へデータをキャストします。
使用例
データの挿入
次のコマンドを使用して、ファイルから ClickHouse テーブルに Arrow 形式のデータを挿入できます。
データの選択
次のコマンドを使用して、ClickHouse のテーブルからデータを抽出し、Arrow 形式のファイルに保存できます。
フォーマット設定
| 設定 | 説明 | デフォルト |
|---|---|---|
input_format_arrow_allow_missing_columns | Arrow 入力フォーマットの読み取り時に列の欠落を許可する | 1 |
input_format_arrow_case_insensitive_column_matching | Arrow の列と 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_method | Arrow 出力フォーマットの圧縮方式。サポートされるコーデック: lz4_frame, zstd, none (非圧縮) | lz4_frame |
output_format_arrow_fixed_string_as_fixed_byte_array | FixedString 列に対して Binary 型の代わりに Arrow の FIXED_SIZE_BINARY 型を使用する | 1 |
output_format_arrow_low_cardinality_as_dictionary | LowCardinality 型を Dictionary Arrow 型として出力することを有効にする | 0 |
output_format_arrow_string_as_string | String 列に対して Binary 型の代わりに Arrow の String 型を使用する | 1 |
output_format_arrow_use_64_bit_indexes_for_dictionary | Arrow フォーマットのディクショナリインデックスに常に 64 ビット整数を使用する | 0 |
output_format_arrow_use_signed_indexes_for_dictionary | Arrow フォーマットのディクショナリインデックスに符号付き整数を使用する | 1 |