Skip to main content
Nessie Catalog とのインテグレーションは、Iceberg テーブルでのみ利用できます。 このインテグレーションは、AWS S3 とその他のクラウドストレージプロバイダーの両方をサポートしています。
ClickHouse は、複数のカタログ (Unity、Glue、REST、Polaris など) とのインテグレーションをサポートしています。このガイドでは、ClickHouse と Nessie Catalog を使用してデータをクエリする手順を説明します。 Nessie は、データレイク向けのオープンソースのトランザクション対応カタログで、次の機能を提供します。
  • Git に着想を得た ブランチとコミットによるデータのバージョン管理
  • 複数テーブルにまたがるトランザクション と可視性の保証
  • Iceberg REST カタログ仕様への REST API 準拠
  • Hive、Spark、Dremio、Trino などをサポートする オープンなデータレイク アプローチ
  • Docker または Kubernetes への 本番環境対応の デプロイ
この機能は実験的機能のため、次を使用して有効にする必要があります。 SET allow_experimental_database_iceberg = 1;

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

ローカルでの開発やテストには、コンテナー化された Nessie 環境を利用できます。この方法は、学習、プロトタイピング、開発環境に最適です。

前提条件

  1. Docker and Docker Compose: Docker がインストールされ、起動していることを確認してください
  2. サンプルセットアップ: 公式の Nessie 用 docker-compose セットアップを使用できます

ローカル Nessie Catalog のセットアップ

Nessie、インメモリのバージョンストア、オブジェクトストレージ用の MinIO を含む完全な環境を提供する公式の Nessie 用 docker-compose セットアップ を使用できます。 ステップ 1: 例を実行するための新しいフォルダーを作成し、続いて以下の内容で docker-compose.yml ファイルを作成します。
ステップ 2: サービスを起動するには、次のコマンドを実行します。
ステップ 3: すべてのサービスの準備が完了するまで待ちます。ログを確認できます。
Nessie のセットアップではインメモリのバージョンストアを使用するため、最初にサンプルデータを Iceberg テーブルに読み込んでおく必要があります。ClickHouse 経由でそれらにクエリを実行する前に、環境内でテーブルが作成され、データが投入されていることを確認してください。

ローカルの Nessie Catalog に接続する

ClickHouse コンテナに接続します:
次に、Nessie Catalog へのデータベース接続を作成します。

ClickHouseでNessie Catalogのテーブルをクエリする

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

お使いのデータレイクからClickHouseにデータを読み込む

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