メインコンテンツへスキップ
ArrowFlight テーブルエンジンを使用すると、ClickHouse は Apache Arrow Flight プロトコル経由でリモートのデータセットの読み取りと書き込みを行えます。 このインテグレーションにより、ClickHouse は外部の Flight 対応サーバーと、列指向の Arrow フォーマットで高性能にやり取りできます。

テーブルの作成

CREATE TABLE [IF NOT EXISTS] [db.]table_name (name1 [type1], name2 [type2], ...)
    ENGINE = ArrowFlight('host:port', 'dataset_name' [, 'username', 'password']);
エンジンパラメータ
  • host:port — リモート Arrow Flight サーバー のアドレス。ポートが省略された場合は、デフォルトのポート 8815 が使用されます。String
  • dataset_name — Flight server 上のデータセットの識別子 (arrow_flight_request_descriptor_type 設定に応じて、PATH ディスクリプタとして、または SELECT * クエリで使用されます) 。String
  • username — HTTP Basic 認証で使用するユーザー名。String
  • password — HTTP Basic 認証で使用するパスワード。String
usernamepassword が省略された場合、認証は使用されません (これは Arrow Flight サーバー 側で認証なしのアクセスが許可されている場合にのみ機能します) 。 カラム一覧は省略可能です — 省略した場合、スキーマは GetSchema を介してリモート Arrow Flight サーバー から推論されます。

名前付きコレクション

このエンジンは、接続パラメータを保存するための名前付きコレクションに対応しています。
CREATE TABLE remote_flight_data
    ENGINE = ArrowFlight(named_collection_name);
名前付きコレクション のパラメータ:
ParameterRequiredDefaultDescription
host or hostnameいいえ""サーバーのホスト名。
portはいサーバーのポート。
datasetはいデータセット名またはディスクリプタ。
use_basic_authenticationいいえtrueBasic認証を有効にします。
user or username認証が有効な場合認証に使用する username。
passwordいいえ""認証に使用するパスワード。
enable_sslいいえfalseTLS 暗号化を有効にします。
ssl_caいいえ""TLS 検証用の CA証明書ファイルのパス。
ssl_override_hostnameいいえ""TLS 検証時に確認するホスト名を上書きします。

設定

  • arrow_flight_request_descriptor_type — データセット名を Flight server にどの形式で送信するかを制御します。設定可能な値: path (デフォルト。PATH ディスクリプタとして送信) または command (SELECT * FROM <dataset> を含む CMD ディスクリプタとして送信) 。SQL コマンドを受け取る Flight server (例: Dremio) の場合は、command を使用してください。

使用例

リモートの Arrow Flight サーバーからのデータの読み取り:
CREATE TABLE remote_flight_data
(
    id UInt32,
    name String,
    value Float64
) ENGINE = ArrowFlight('127.0.0.1:9005', 'sample_dataset');

SELECT * FROM remote_flight_data ORDER BY id;
┌─id─┬─name────┬─value─┐
│  1 │ foo     │ 42.1  │
│  2 │ bar     │ 13.3  │
│  3 │ baz     │ 77.0  │
└────┴─────────┴───────┘
リモートの Arrow Flight サーバーにデータを挿入する:
INSERT INTO remote_flight_data VALUES (4, 'qux', 99.9);

注記

  • CREATE TABLE ステートメントでカラムを指定する場合は、Flight server が返すスキーマと一致している必要があります。
  • カラムを省略した場合、スキーマはリモートサーバーから自動的に推論されます。
  • 読み取り (SELECT) と書き込み (INSERT) の両方をサポートしています。
  • arrow_flight_request_descriptor_type 設定では、データセット名を PATH ディスクリプタとして送信するか、SELECT * クエリをラップした CMD ディスクリプタとして送信するかを制御します。

関連項目

最終更新日 2026年6月29日