カタログ・フェデレーションとデータ移動のないAutonomous AI LakehouseでIcebergテーブルを最適化 (2026/10/28)
カタログ・フェデレーションとデータ移動のないAutonomous AI LakehouseでIcebergテーブルを最適化 (2026/10/28)
https://blogs.oracle.com/autonomous-ai-database/optimize-iceberg-tables-ai-lakehouse
投稿者:Alexey Filanovskiy | Product Manager
共有オープンテーブルのためのカタログフェデレーションとOracle SQLインテリジェンス
Oracleは、Oracle AI LakehouseにおけるネイティブApache Icebergのサポートを拡張します。お客様は、共有Icebergテーブルを読み取り、それをOracleの運用データと組み合わせ、Oracle SQLクエリの結果を新しいIcebergテーブルとして公開し、互換性のあるエンジン全体で使用できるようになります。
これらの機能は、オープンスタンダードと顧客の選択肢に対するオラクルの取り組みを反映しています。データは単一のエンジンに縛られることなく、オープンフォーマットでデータレイク内に保持されます。顧客はOracle SQLのインテリジェンスを適用できるだけでなく、他のサポート対象プラットフォームとの連携も自由に行えます。
今回の発表は、以下の4つの進歩によって特徴づけられます。
- シームレスなカタログ連携。AI LakehouseをOracle AI Data Catalogまたはサポートされている外部カタログに接続することで、個別の設定手順なしに、承認済みテーブルを検出できます。
- Icebergの読み取り互換性が向上。機能拡張により、AI Lakehouseは他のエンジンによって作成および管理された、より幅広い種類の共有Icebergテーブルを読み取ることができるようになりました。
- Icebergネイティブ書き込み。Icebergテーブルを作成し、Oracle SQLクエリの結果(Oracleデータとの結合を含む)を直接テーブルに公開します。
- インテリジェントなパフォーマンス。IcebergテーブルはOracleオプティマイザの第一級オブジェクトとして扱われ、Oracleのクエリ最適化機能をIcebergワークロードにもたらします。Icebergメタデータは不要な読み取りを回避し、Lake CacheはキャッシュされたIcebergデータに対してExadataストレージからの読み取りと同等のパフォーマンスを実現し、Data Lake Acceleratorは大規模スキャンにおけるI/Oとコンピューティングを拡張します。
複数のエンジンに対応する単一のオープンテーブル形式
現代のAI Lakehouseでは、単一のエンジンやクラウドを使用することはほとんどありません。企業はDatabricksでデータを準備し、Snowflakeでデータ製品を管理し、AWS Glueをデータレイクに使用し、AI Lakehouseで分析を実行するといったことが可能です。Icebergを使用すると、互換性のあるエンジンが共有テーブルを操作できるため、各テーブルごとに個別のエクスポートを行う必要がなくなります。
データファイルはオブジェクトストレージに保存されます。Icebergメタデータはテーブルのスキーマ、ファイル、スナップショットを記述し、カタログはテーブル名とそのメタデータの場所を提供します。AI Lakehouseは、これらのテーブルをOracleテーブルにロードすることなくクエリを実行できます。

カタログを一度接続すれば、そのテーブルが見つかります。
Icebergテーブルは、単一のクエリエンジンに属する必要はありません。お客様は、Oracle AI Data Catalogまたはサポートされている外部カタログを使用して、共有テーブルを管理できます。Data Studioは、データの検出と操作のためのビジュアルワークスペースを提供し、AI Lakehouseは、読み取り、結合、および新しいIceberg結果の公開のためのOracle SQL処理を提供します。ファイルはオブジェクトストレージに保持され、他の互換性のあるエンジンからアクセスできます。
読書機能でサポートされているカタログ連携は以下のとおりです。

カタログフェデレーションにより、テーブルごとに個別の外部テーブル定義を作成する必要がなくなります。1つの接続で、名前空間をまたいで数百、数千もの承認済みサポート対象テーブルを公開できます。新しいテーブルはカタログの更新後に検出可能になり、個別の外部テーブルも引き続き利用可能です。
@catalog サフィックスを使用すると、1 つの SQL クエリでローカルの Oracle データと、接続された複数のカタログの Iceberg テーブルを組み合わせることができます。Oracle の現在の注文、Oracle AI Data Catalog の顧客、Snowflake Open Catalog の製品、Databricks Unity Catalog の顧客セグメントなど、複数のプラットフォームにデータが分散している小売業者を考えてみましょう。以下のクエリは、4 つのソースすべてを結合します。

SELECT o.order_id, c.customer_name,
p.category, s.segment, o.order_total
FROM current_orders o
JOIN sales.customers@AI_CAT c
ON c.customer_id = o.customer_id
JOIN sales.products@SF_CAT p
ON p.product_id = o.product_id
JOIN sales.customer_segments@DBX_CAT s
ON s.customer_id = o.customer_id;この例では、表形式、列形式、接続形式を使用しています。互換性のあるテーブルが存在し、各カタログが必要なカタログ権限とストレージ権限で接続されていることを前提としています。
Data Studioでは、接続されているカタログとそのテーブルを視覚的に閲覧し、SQLワークシートを開いてクエリを実行できます。SQLでは、namespace.table@catalogで共有テーブルを識別します。アクセス権限は、カタログとストレージに設定されているアクセス許可に従います。

より幅広いIcebergテーブルをご覧ください
Icebergの機能範囲を拡大し、AI Lakehouseが他のエンジンによって作成および管理されたより幅広いテーブルをクエリできるようにしました。タイムトラベル機能により、お客様は過去に保持されたスナップショットをクエリできるようになり、パーティションプルーニング機能により、無関係なデータの読み取りを回避できます。以下の表は、サポートされている機能の概要を示しています。
| 能力 | 顧客にとっての意味とは |
|---|---|
| タイムトラベル | タイムスタンプまたはスナップショットIDで、保持されているスナップショットを照会します。 |
| パーティション剪定 | Icebergのメタデータを使用して、関連性のないパーティションをスキップします。 |
OracleはApache Icebergとオープンスタンダードに全面的に取り組んでいます。今後のリリースに向けてIcebergの幅広い機能拡張に投資しており、仕様とエコシステムの進化に合わせてサポートを継続的に拡大していきます。私たちの目標は、お客様が新しいIceberg機能を導入する際に、データのオープン性と互換性を維持しながら、互換性のあるエンジン間でデータを利用できるように支援することです。
互換性は、テーブルが使用する機能とサポートされているリリースによって決まり、バージョン番号だけでは決まりません。
Oracleの読み取り一貫性がIcebergに搭載される
読み取りの一貫性は、長年にわたりOracleの強みの一つでした。Oracle AI Lakehouseは、ステートメントレベルとトランザクションレベルの一貫性読み取りによって、その強みをIcebergテーブルにもたらします。単一のクエリで一貫性のあるテーブルスナップショットを読み取ることができます。サポートされている読み取り専用トランザクション内の複数のクエリは、別のエンジンが更新を公開している間でも同じスナップショットを保持します。お客様は、データがオープンな共有Icebergテーブルに保持されたまま、信頼性の高いレポート作成と分析のための使い慣れたOracleの機能を利用できます。
トランザクション内で同じクエリを2回実行することを考えてみましょう。2回の読み取りの間に、別のエンジンがIcebergテーブルを更新し、新しいスナップショットを公開します。
トランザクションレベルの読み取り一貫性により、Oracle AI Lakehouseはどちらのクエリでも同じ結果を返します。他のエンジンが共有テーブルの更新を継続している場合でも、両方のクエリは同じスナップショットを読み取ります。

Icebergテーブルを作成し、Oracle SQLの結果を公開する
顧客は、Oracleの既存の注文とIcebergの顧客セグメントを結合し、その結果を新しい共有販売Icebergテーブルとして公開できます。

まず、sales.shared_sales を作成します。この例では、ソーステーブルと sales 名前空間が既に存在し、LAKEHOUSE_CATALOG が必要なカタログおよびストレージ書き込み権限で接続されていることを前提としています。<bucket> を、構成済みの S3 互換ストレージの場所に置き換えてください。
CREATE ICEBERG TABLE sales.shared_sales (
order_id INT,
customer_id INT,
segment STRING,
order_total DECIMAL(12, 2)
)
WITHIN CATALOG LAKEHOUSE_CATALOG
STORAGE LOCATION 's3://<bucket>/sales/shared_sales/';次に、current_ordersとsales.customer_segmentsの結合結果でデータを入力します。選択した列は、宛先スキーマと一致している必要があります。
INSERT INTO sales.shared_sales@LAKEHOUSE_CATALOG
SELECT o.order_id, o.customer_id, c.segment, o.order_total
FROM current_orders o
JOIN sales.customer_segments@LAKEHOUSE_CATALOG c
ON c.customer_id = o.customer_id;
COMMIT;AI Lakehouseは、ParquetファイルとIcebergメタデータをオブジェクトストレージに書き込みます。COMMITコマンドは、互換性のあるエンジンがクエリを実行できるように、カタログを通じて新しいスナップショットを公開します。AI Lakehouseは、他のエンジンからの互換性のある変更を読み取るために、メタデータを更新することもできます。
インテリジェントIcebergのパフォーマンス
AI Lakehouseは、メタデータ認識型読み取りとOracleのクエリプランニング、キャッシュデータ、スケールアウト処理を組み合わせることで、不要な読み取りを回避し、残りの処理をより効率的にします。

- メタデータのプルーニングと述語プッシュダウンにより、不要な処理が回避されます。OracleはIcebergパーティションメタデータを使用して、クエリフィルタを満たせないパーティションをスキップします。また、Icebergマニフェストに格納されているファイルごとの最小値/最大値統計を評価し、ファイルを開く前に不要なデータファイルを除外します。述語プッシュダウンはスキャン中に残りのフィルタを適用し、カタログとメタデータのキャッシュはリモート検索の繰り返しを削減します。
- IcebergテーブルはOracleオプティマイザにとって最上位の要素です。高度な結合プランニング、述語配置、並列実行など、数十年にわたるOracleのクエリ最適化のノウハウを活用できます。オプティマイザはIcebergのメタデータと統計情報を使用して、クエリがIcebergテーブルのみを読み込む場合でも、Oracleテーブルと組み合わせて読み込む場合でも、効率的な実行プランを選択します。
- Lake Cacheは、キャッシュされたIcebergデータに対するクエリにおいて、Exadataと同等のパフォーマンスを実現します。顧客は、ExadataストレージにキャッシュされたIcebergデータに対して頻繁にアクセスするクエリを実行でき、オブジェクトストレージへの繰り返し読み取りやネットワーク遅延を回避しながら、高速なローカルアクセスを利用できます。これにより、共有IcebergテーブルがLake上に保持され、他の互換性のあるエンジンからアクセス可能な状態を維持しながら、繰り返し実行されるダッシュボード、レポート、および分析処理が高速化されます。
- Data Lake Acceleratorは、I/Oとコンピューティングを拡張します。対象となるIcebergスキャンに対して、Oracleが管理するリソースを追加し、オブジェクトストレージファイルを並列で読み取り、処理します。柔軟なI/O帯域幅、コンピューティング、およびネットワーク容量により、顧客が別途管理するエンジンなしで大規模なスキャンをサポートします。
- クラスタリングとコンパクションにより、Icebergデータのレイアウトが最適化されます。これらの機能を追加することで、お客様はOracle AI Lakehouseを使用して、他のエンジンによって書き込まれたデータを含む共有Icebergテーブルを管理できるようになります。効率的なデータレイアウトは、クエリパフォーマンスの鍵となります。クラスタリングは、類似した値を持つ行をグループ化し、マニフェストの最小値/最大値統計をファイルプルーニングに効果的に活用します。コンパクションは、小さなParquetファイルを大きなファイルに結合し、ファイルオープン時のオーバーヘッドを削減し、スキャン効率を向上させます。
運用データとオープンレイクハウスデータを統合する
顧客にとっての価値は、予測、ダッシュボード、AIアプリケーション向けのデータ準備をサポートする共有販売データ製品である。さらに広義には、AI Lakehouseは、Oracleの既存の顧客データや在庫データと、Icebergを通じて公開される履歴データ、行動データ、パートナーデータを組み合わせることができる。

アプリケーションは、共有データセットが必要な場合に、複数のソースをまとめてクエリしたり、公開済みの Iceberg の結果を再利用したりできます。その結果を公開すると、新しい派生テーブルが作成されますが、ソースデータセットはどちらも移動されません。
OracleテーブルとIcebergテーブルは、互いに補完的なニーズに対応します。Oracleテーブルは、トランザクション処理、リレーショナル制約の適用、および常に低遅延のアクセスに適しています。一方、Icebergは、オブジェクトストレージに格納され、複数のエンジン間で共有される分析データに適しています。
顧客は、Oracle SQLを両方のストレージモデルで使用しながら、それぞれのワークロードに適したストレージモデルを選択できます。
Iceberg共有データ製品を使い始めましょう
まず、接続済みでサポートされているカタログと必要なストレージアクセス権限を用意します。Data Studioで、承認済みのIcebergテーブルを参照し、Oracleデータと並行してクエリを実行します。共有結果を公開するには、上記のCREATE、INSERT、COMMITワークフローを使用します。
以下のリソースを使用して、サポートされている構成を確認し、ワークフローを試してみてください。
コメント
コメントを投稿