注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Iceberg テーブルとデータセットは、どちらも Foundry で表形式のデータを表現できるリソースタイプです。Iceberg テーブルは、幅広い Iceberg エコシステムとの相互運用性に加え、行レベルの編集や変更履歴などの機能を提供します。一方、データセットは現在、より多くの Foundry 機能に対応しています。
Foundry では現在、Iceberg テーブルの次の利点を利用できます。
DELETE、UPDATE、MERGE INTO ステートメントに対応しており、スナップショットを再作成せずに条件に応じて行を変更できます。Iceberg テーブルの履歴を表示するインターフェースを、次のスクリーンショットに示します。

現在、Iceberg テーブルでは、次のような Foundry 機能を利用できません。
きめ細かなアクセス制御に対応する方法は、ユーザーがどこでデータにアクセスするかによって異なります。
Iceberg テーブルは、テーブル全体のアクセス制御に使用するマーキングにも対応しています。Iceberg テーブルのマーキングを参照してください。
管理対象の Iceberg テーブルを Marketplace 製品にパッケージ化し、対象環境にその製品をインストールできます。インストールする各テーブルは、パッケージ化済みのテーブルと同じストレージの種類、つまり Foundry 管理ストレージまたは bring-your-own-bucket (BYOB) ストレージを使用する必要があります。たとえば、Foundry 管理ストレージを使用するテーブルを、BYOB ストレージを使用するテーブルとしてインストールすることはできません。その逆も同様です。
Iceberg テーブルと Foundry データセットの動作には、次のような重要な違いがあります。
main、Foundry のメインブランチは master という名前です。Foundry と Iceberg の統合では、main と master は同じものとして扱われます。そのため、master で実行される Foundry ジョブは、Iceberg テーブルの main に書き込みます。Foundry がブランチごとにスキーマの変更を分離する仕組みについては、ブランチを参照してください。ALTER TABLE などの明示的なスキーマ進化コマンドや設定が必要です。Foundry のトランスフォーム API および Pipeline Builder を通じて書き込む場合、インクリメンタルでない実行では、Foundry がテーブルの置き換えを使用してこの処理を行います。インクリメンタルなスキーマ進化など、ほかのワークフローでは、処理に失敗して手動での解決が必要になる場合があります。詳細については、スキーマ進化に関する Apache Iceberg ドキュメント ↗を参照してください。Iceberg で導入されている用語には、Foundry に直接対応する用語がないものもあります。
| Iceberg の用語 | 意味 | Foundry との意味の違い |
|---|---|---|
| テーブルメタデータ ↗ | Iceberg テーブルの構造、スキーマ、状態を記述するメタデータです。 | Foundry もすべての形式のテーブルとデータセットのメタデータを追跡しますが、このメタデータは Foundry サービスによって内部的に管理されます。Iceberg テーブルの場合、Foundry は Iceberg ネイティブのメタデータを、Iceberg カタログを通じて JSON ファイルとして明示的に公開します。 |
| スナップショット ↗ | 特定の時点におけるテーブルの状態の記録です。Iceberg は、データが変更されるたびに新しいスナップショットを作成します。 | Iceberg スナップショットは、Foundry のトランザクションにほぼ相当します。ただし、Foundry では「スナップショット」という用語を別の意味でも使用します。Foundry の「スナップショット」は、データセット内のすべてのデータを完全に置き換えるトランザクションを指します。一方、Iceberg スナップショットは、インクリメンタルな変更を含む、あらゆる種類のデータ操作を記録します。Foundry カタログのデータセットトランザクションの種類と Iceberg スナップショットの種類の意味の違いについては、Iceberg スナップショットの種類を参照してください。 |