Skip to content

ClickHouse が Microsoft OneLake への Apache Iceberg テーブル書き込みに対応

melvynimage 512x512 4
2026年9月29日 · 10分で読む

ClickHouse がデータレイクに対応したという発表に続き、オープンデータレイクエコシステムとカタログ連携のサポートをさらに拡充してきました。2026年6月末には、S3 または Microsoft Azure ADLSgen2 のパスを直接指定することで、ClickHouse からオブジェクトストレージへの Iceberg テーブル書き込みがサポートされました。これは機能するものの、制限がありました。それらのテーブルがカタログにも登録されていない限り、組織内の他のツールから検出したりクエリを実行したりできません。

OpenHouse 2026 において、ClickHouse から Microsoft OneLake への Iceberg テーブルの直接書き込みに対応したことを発表しました。クエリ結果は Iceberg REST-based Table APIs を使って OneLake カタログに登録され、OneLake Security で保護され、互換性のあるツールやエンジンからクエリを実行できるようになります。

すべて同じカタログ接続を通じて、OneLake からデータを読み込み、ClickHouse で高速化し、その結果を OneLake に書き戻して組織の他のメンバーが利用できるようにすることが可能です。

ユースケース: 結果を OneLake に書き戻す AI エージェント

AI エージェントが分析ワークフローに深く組み込まれるにつれて、データベースに対して求められる要件があります。リアルタイムで質問に答えるための高速な読み取りと、組織の他のメンバーが利用できる場所に結果を公開する手段です。

たとえば、ClickHouse 内の注文データを監視し、異常(返品の異常な急増、地域ごとの配送遅延、製品ラインごとの売上低下)を検知して、異常スコアと推奨アクションを含む日次サマリーテーブルを生成する AI エージェントがあるとします。カタログへの書き込みに対応する前は、それらの結果は ClickHouse 内にとどまっていました。

OneLake への書き込みがサポートされたことで、エージェントは ClickHouse でクエリを実行し、その結果を OneLake 内の Iceberg テーブルに直接書き込めるようになります。そのテーブルは、OneLake カタログに接続しているすべてのツールに自動的に表示されます。運用チームは Microsoft Power BI で確認でき、データサイエンスチームは Fabric Spark で利用でき、エージェントの出力は他のデータと同じ OneLake Security アクセス制御 によって保護されます。エージェントがインサイトを生み出し、ClickHouse が分析クエリの速度を提供し、OneLake が配信を担います。

これは、Melvyn Peignon が OpenHouse でデモした内容そのものです。ClickHouse が OneLake の Iceberg テーブルにクエリを実行し、分析 AI アシスタントを駆動させました。書き込みサポートにより、アシスタントは読み取り元と同じカタログに結果を書き戻せるようになり、ループが完結します。

ユースケース: ClickHouse 経由で OneLake に直接書き込むアプリケーション

集計されたクエリ結果の書き込みにとどまらず、OneLake に直接データを着地させる必要があるアプリケーションの書き込みパスとして ClickHouse を利用することもできます。別個の取り込みレイヤーを経由させるのではなく、アプリケーションが ClickHouse に書き込むことで、結果は管理された Iceberg テーブルとして OneLake に流れ込み、着地した瞬間からガバナンスが効き、検出可能な状態になります。

仕組み

読み取り用に ClickHouse を OneLake に接続済みであれば、書き込みにも同じ接続を使用します。追加のセットアップは不要です。

接続には DataLakeCatalog エンジンを使用し、ClickHouse を OneLake の Iceberg 互換 Table APIs に接続します。サービスプリンシパルを使用して Microsoft Entra ID(旧 Azure Active Directory)経由で認証を行い、ClickHouse はその ID を使ってカタログ内のテーブルを検出するとともに、OneLake ストレージ内のデータを読み書きします。

接続のセットアップは次のようになります:

SET allow_database_iceberg = 1;

CREATE DATABASE onelake_catalog
ENGINE = DataLakeCatalog('https://onelake.table.fabric.microsoft.com/iceberg')
SETTINGS
    catalog_type = 'onelake',
    warehouse = '<workspace_id>/<lakehouse_id>',
    onelake_tenant_id = '<tenant_id>',
    oauth_server_uri = '<https://login.microsoftonline.com/><tenant_uuid>/oauth2/v2.0/token',
    auth_scope = '<https://storage.azure.com/.default>',
    onelake_client_id = '<client_id>',
    onelake_client_secret = '<client_secret>';

warehouse パラメーターは、Fabric ワークスペース ID とレイクハウス ID を組み合わせたものです。これらは Microsoft Fabric ポータルで確認できます。onelake_client_id と onelake_client_secret は、Entra ID に登録されたサービスプリンシパルのものです。これらの認証情報を収集する手順については、Microsoft のドキュメント を参照してください。

接続が確立されると、OneLake カタログ全体が ClickHouse データベースとして表示されます。ClickHouse 内の他のデータベースと同様に、テーブルの一覧表示、スキーマの確認、データのクエリ実行が可能です:

SHOW TABLES FROM onelake_catalog;

SELECT count(*)
FROM onelake_catalog.`<namespace>.<table_name>`
WHERE region = 'EMEA';

ネームスペースとテーブル名を囲むバックティック構文に注意してください。ClickHouse はネイティブでは複数レベルのネームスペースに対応していないため、完全な namespace.table パスをバックティックで囲みます。

そして、ここからが新機能です。結果の書き戻しには、通常の ClickHouse テーブルで使用するのと同じ INSERT INTO 構文を使用します:

INSERT INTO onelake_catalog.`<namespace>.<output_table>`
SELECT
    region,
    count() AS order_count,
    sum(revenue) AS total_revenue
FROM onelake_catalog.`<namespace>.<source_table>`
GROUP BY region;

生成されたテーブルは OneLake カタログによって管理され、OneLake Security アクセス制御 によって保護されます。同じカタログに接続された Iceberg 互換エンジンであれば、どれでも読み取り可能です。ローカルの MergeTree テーブルから OneLake に書き込むこともでき、これはローカルでデータを高速化し、その結果を書き戻して公開したい場合の一般的なパターンです。

完全なセットアップ手順については、OneLake カタログのドキュメント を参照してください。

OneLake を選ぶ理由

OneLake は Microsoft Fabric の統合レイヤーです。すべてのテナントに自動的にプロビジョニングされた OneLake インスタンスが 1 つだけ割り当てられ、その中のすべてのデータは、リネージ追跡、データ保護、認証、カタログ統合を備えた単一のガバナンスモデルを継承します。ワークスペースレベルの権限設定により、さまざまなチームが独立して自チームのデータを所有しながら、同じレイクに貢献できます。OneLake への書き込みは、結果が着地した瞬間からそのガバナンスモデルの一部となることを意味します。

相互運用性において、さらに興味深い点があります。ショートカット は、データを移動したり複製したりすることなく、S3、Google Cloud Storage、Azure ADLS、または他の OneLake の場所にあるデータを指し示すシンボリックリンクです。ミラーリング は、ゼロ ETL 技術を使用して、データベース(SQL Server、Snowflake、Oracle など)から OneLake へ Delta Lake テーブルとして継続的にレプリケーションを行い、それらは自動的に Apache Iceberg に変換されます。これらを組み合わせることで、OneLake は ETL パイプラインや手動のデータ移動なしに、クラウド間やオンプレミスシステムのデータを 1 か所に集約できます。

また、OneLake は Delta Lake と Iceberg の同期を自動的に維持します。一方の形式で書き込まれたテーブルは、もう一方の形式でも読み取り可能です。そのため、ClickHouse が OneLake に Iceberg テーブルを書き込むと、Delta Lake に対応しているツールを含め、Microsoft Fabric スタック内のすべてのツールからそのデータにアクセスできます。

OpenHouse のセッションでは、Microsoft のエンジニアであり Apache Iceberg PMC メンバーである Kevin Liu が、DuckDB、Spark、PyIceberg、Databricks、Snowflake、Salesforce のすべてが同一の OneLake テーブルから読み取りを行うデモを披露しました。

セキュリティ面では、Microsoft が Build 2026 で OneLake Security の一般提供 (GA) を発表し、プラットフォーム全体でテーブル、行、カラムレベルのセキュリティが適用されるようになりました。また、セキュリティ API がサードパーティのエンジンにも開放されることが発表されました。これは、ClickHouse とのより深い統合に向けて、私たちが積極的に検討している分野です。

今後の展望

OneLake は ClickHouse からの書き込みをサポートする最初のカタログであり、今後数か月でさらに多くのカタログに対応する予定です。また、サードパーティエンジン向けに開放された OneLake の きめ細かなセキュリティ API とのより深い統合にも取り組んでいます。

フォーマット、カタログ、クラウドストレージ全体にわたる ClickHouse のサポート状況の詳細については、データレイクサポートマトリクス をご確認ください。

今すぐ始める

すでに読み取り用に OneLake に接続している場合は、OneLake カタログガイド に書き込みに必要なすべてが記載されています。最初から始める場合は、データレイク入門ガイド を確認し、ClickHouse Cloud を試す ことをおすすめします。


この記事をシェア

  • Y Combinator icon
  • X icon
  • Bluesky icon
  • Facebook icon
  • LinkedIn icon

Subscribe to our newsletter

Stay informed on feature releases, product roadmap, support, and cloud offerings!

Follow us

XBlueskySlackGithubTelegramMeetupRSS