Skip to main content
REST カタログ とのインテグレーションは、Iceberg テーブルでのみ利用できます。 このインテグレーションは、AWS S3 とその他の Cloud ストレージプロバイダーの両方をサポートします。
ClickHouse は複数のカタログ (Unity、Glue、REST、Polaris など) とのインテグレーションをサポートしています。このガイドでは、ClickHouse と REST カタログ 仕様を使用してデータをクエリする手順を説明します。 REST カタログ は Iceberg カタログ向けの標準化された API 仕様で、以下を含むさまざまなプラットフォームでサポートされています。
  • ローカル開発環境 (docker-compose 構成を使用)
  • Tabular.io などのマネージドサービス
  • セルフホストの REST カタログ実装
この機能はベータであるため、次を使用して有効にする必要があります。 SET allow_database_iceberg = 1;

ローカル開発環境のセットアップ

ローカルでの開発やテストには、コンテナー化された REST カタログ構成を利用できます。この方法は、学習、プロトタイピング、開発用途に適しています。

前提条件

  1. Docker と Docker Compose: Docker がインストールされ、起動していることを確認してください
  2. サンプル環境のセットアップ: 各種 docker-compose セットアップを利用できます (以下の「Alternative Docker Images」を参照)

ローカル REST カタログのセットアップ

各種のコンテナー化された REST カタログ実装を利用できます。たとえば Databricks docker-spark-iceberg は、docker-compose を使って Spark + Iceberg + REST カタログの一式がそろった環境を提供しており、Iceberg インテグレーションのテストに最適です。 ステップ 1: まず、サンプルを実行するための新しいフォルダーを作成し、Databricks docker-spark-iceberg の設定を使って docker-compose.yml ファイルを作成します。 ステップ 2: 次に、docker-compose.override.yml ファイルを作成し、以下の ClickHouse コンテナー設定をそこに記述します。
ステップ 3: サービスを起動するには、次のコマンドを実行します:
ステップ 4: すべてのサービスが準備完了になるまで待ちます。ログは次のように確認できます:
REST カタログのセットアップでは、あらかじめサンプルデータが Iceberg テーブルにロードされている必要があります。ClickHouse 経由でこれらのテーブルにクエリを実行する前に、Spark 環境でテーブルが作成され、データが投入されていることを確認してください。利用可能なテーブルは、使用する docker-compose の構成やサンプルデータのロード用スクリプトによって異なります。

ローカル REST カタログに接続する

ClickHouse コンテナーに接続します。
次に、REST カタログへの接続用データベースを作成します。

ClickHouse を使用した REST カタログテーブルのクエリ

接続が確立されたので、REST カタログ経由でクエリを実行できます。たとえば、次のとおりです。
セットアップにサンプルデータ (タクシーデータセットなど) が含まれている場合は、次のようなテーブルが表示されます。
テーブルがまったく表示されない場合、通常は次のいずれかが原因です。
  1. Spark 環境でまだサンプルテーブルが作成されていない
  2. REST カタログサービスの初期化がまだ完了していない
  3. サンプルデータの読み込み処理がまだ完了していない
テーブル作成の進捗を確認するには、Spark のログを確認してください。
テーブルをクエリするには (利用可能な場合) :
バッククォートは必須ですClickHouse は複数のネームスペースをサポートしていないため、バッククォートが必要です。
テーブルの DDL を確認するには:

データレイクから ClickHouse にデータを読み込む

REST カタログから ClickHouse にデータを読み込む必要がある場合は、まずローカルの ClickHouse テーブルを作成します。
次に、INSERT INTO SELECT を使用して、REST カタログのテーブルからデータを読み込みます。
最終更新日 2026年7月3日