Skip to main content

説明

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 データ型:
  • JSON
  • ENUM.
ClickHouse テーブルのカラムのデータ型は、対応する Arrow のデータフィールドと一致している必要はありません。データを挿入する際、ClickHouse はまず上の表に従ってデータ型を解釈し、その後、データを ClickHouse テーブルのカラムに設定されたデータ型に キャスト します。

使用例

以下の例では、ClickHouse SQL playground で利用可能な forex データセットを使用します。

データの選択

Playground から EUR/USD の為替レートの 1 日分を取得し、 ローカルの forex_eurusd.arrow ファイルに保存します。HTTP インターフェイス経由で Playground にクエリを送信します。ホストは sql-clickhouse.clickhouse.com、ユーザーは demo (パスワードなし) です:

ファイルを読み戻す

これで、clickhouse-localfile テーブル関数を使って、ローカルの Arrow ファイルを読み戻せます。このファイルは 自己記述型なので、Arrow フォーマットがスキーマを自動的に推論します。
Response

データの挿入

Arrow ファイルを ClickHouse テーブルに読み込むには、FORMAT Arrow を指定して clickhouse-client にパイプして渡します:

フォーマット設定

最終更新日 2026年7月23日