説明
Apache Arrow には、組み込みの列指向ストレージフォーマットが 2 種類あります。 ClickHouse はこれらのフォーマットの読み書きをサポートしています。Arrow は Apache Arrow の「ファイルモード」フォーマットで、メモリ内でのランダムアクセス向けに設計されています。
データ型の対応
以下の表は、サポートされているデータ型と、INSERT クエリおよび SELECT クエリでそれらが ClickHouse の data types にどのように対応するかを示しています。
Array はネストでき、引数として
Nullable 型の値を取ることもできます。Tuple 型と Map 型もネストできます。
DICTIONARY 型は INSERT クエリでサポートされています。SELECT クエリでは、output_format_arrow_low_cardinality_as_dictionary 設定により、LowCardinality 型を DICTIONARY 型として出力できます。LowCardinality の Dictionary には未使用の値が含まれる場合があり、その結果、出力される Arrow の DICTIONARY にも未使用の値が含まれる可能性がある点に注意してください。
サポートされていない Arrow データ型:
JSONENUM.
使用例
以下の例では、ClickHouse SQL playground で利用可能なforex データセットを使用します。
データの選択
Playground からEUR/USD の為替レートの 1 日分を取得し、
ローカルの forex_eurusd.arrow ファイルに保存します。HTTP
インターフェイス経由で Playground にクエリを送信します。ホストは
sql-clickhouse.clickhouse.com、ユーザーは
demo (パスワードなし) です:
ファイルを読み戻す
これで、clickhouse-local と
file テーブル関数を使って、ローカルの Arrow ファイルを読み戻せます。このファイルは
自己記述型なので、Arrow フォーマットがスキーマを自動的に推論します。
Response
データの挿入
Arrow ファイルを ClickHouse テーブルに読み込むには、FORMAT Arrow を指定して clickhouse-client にパイプして渡します: