Apache Arrow Flight Interface
ClickHouseは、効率的な列指向データの転送のために設計された高性能RPCフレームワークであるApache Arrow Flightプロトコルとの統合をサポートしています。このプロトコルは、Arrow IPC形式を使用してgRPCを介してデータを転送します。
このインターフェースにより、Flight SQLクライアントはClickHouseをクエリでき、結果をArrow形式で取得でき、分析ワークロードに対して高いスループットと低いレイテンシを提供します。
Features
- Arrow Flight SQLプロトコルを介してSQLクエリを実行
- Apache Arrow形式でクエリ結果をストリーム配信
- Arrow FlightをサポートするBIツールやカスタムデータアプリケーションとの統合
- gRPCを介した軽量で高性能な通信
Limitations
Arrow Flightインターフェースは現在実験的で、アクティブな開発中です。既知の制限には以下が含まれます:
- ClickHouse特有の複雑なSQL機能のサポートが限られている
- すべてのArrow Flight SQLメタデータ操作がまだ実装されていない
- リファレンス実装にビルトインの認証やTLS構成がない
互換性の問題が発生した場合や貢献したい場合は、issueを作成してください。
Running the Arrow Flight Server
セルフマネージドのClickHouseインスタンスでArrow Flightサーバーを有効にするには、サーバー設定に以下の構成を追加します:
ClickHouseサーバーを再起動します。正常に起動すると、以下のようなログメッセージが表示されます:
Connecting to ClickHouse via Arrow Flight SQL
Arrow Flight SQLをサポートする任意のクライアントを使用できます。例えば、pyarrow
を使用する場合:
Compatibility
Arrow Flightインターフェースは、以下のようなArrow Flight SQLをサポートするツールと互換性があります:
- Python(
pyarrow
) - Java(
arrow-flight
) - C++および他のgRPC互換言語
ツールにネイティブなClickHouseコネクタ(例:JDBC、ODBC)が利用可能な場合、パフォーマンスやフォーマットの互換性のためにArrow Flightが特に要求されない限り、それを使用することをお勧めします。
Query Cancellation
長時間実行されるクエリは、クライアント側からgRPC接続を閉じることでキャンセルできます。より高度なキャンセル機能のサポートが計画されています。
詳細については、以下を参照してください: