Arrow
Input | Output | Alias |
---|---|---|
✔ | ✔ |
説明
Apache Arrow には、2 つの組み込みの列指向ストレージフォーマットがあります。 ClickHouse は、これらのフォーマットの読み取りおよび書き込み操作をサポートしています。
Arrow
は Apache Arrow の「ファイルモード」フォーマットです。これは、インメモリのランダムアクセス向けに設計されています。
データ型の対応
以下の表は、サポートされているデータ型と、それらが INSERT
および SELECT
クエリにおける ClickHouse の データ型 にどのように対応するかを示しています。
Arrow データ型 (INSERT ) | ClickHouse データ型 | Arrow データ型 (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
クエリには 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_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 カラムに対して Arrow FIXED_SIZE_BINARY 型を使用する。 | 1 |
output_format_arrow_low_cardinality_as_dictionary | LowCardinality 型を Arrow 型の Dictionary として出力するのを有効にする | 0 |
output_format_arrow_string_as_string | String カラムに対して 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 |