カタログ管理コミット
このページでは、カタログ管理のコミットを有効にする方法について説明します。これは、コミット調整をファイル システムからUnity Catalogに移行し、カタログをテーブル状態の唯一の真実のソースにするDeltaテーブル機能です。
概要
従来の Delta Lake トランザクションは、個々のテーブル レベルでコミットを調整します。各テーブルは独自のトランザクション ログと競合検出を個別に管理します。カタログ管理コミットは、この調整をカタログ レベルに移動します。これにより、組織はUnity Catalogを通じてレイクハウスへのすべてのアクセスを一貫して管理できるようになります。 また、Unity Catalog は Delta Lake の ACID 保証を維持しながら、単一のトランザクション境界内で複数のテーブルにわたるコミットを調整することもできます。
利点
カタログ管理コミットは、次の機能を提供します。
- 複数のテーブルにまたがるトランザクション : 複数のテーブルにわたる複数の SQL ステートメントを単一のアトミック コミットとして実行します。すべての変更は同時に成功するか、同時に失敗します。トランザクションを参照してください。
プレビュー
Unity Catalog で管理される Delta テーブルに書き込むトランザクションは、パブリック プレビュー段階にあります。
Unity Catalog で管理される Iceberg テーブルに書き込むトランザクションは、プライベート プレビュー段階です。このプレビューに参加するには、マネージド Iceberg テーブル プレビュー登録フォームを送信してください。
-
管理されたアクセス : 読み取りと書き込みは Unity Catalog を通じて調整されるため、エンジンは最新のコミットされた状態を確認し、ガバナンス ポリシーが適用されます。
-
クエリの計画と書き込みの高速化 : Unity Catalog 、テーブルにアクセスするときにテーブルレベルのメタデータをDeltaクライアントに直接通知し、クラウド ストレージをスキップして、メタデータのレイテンシの主要なソースを排除します。
-
強制可能な制約 : Unity Catalogスキーマと制約の変更を検証または拒否し、データの完全性や下流のワークロードを壊す可能性のある互換性のない更新を防止します。
要件
- テーブルはUnity Catalogマネージドテーブル ( DeltaまたはIceberg ) である必要があります。
- カタログ管理コミットが有効になっているテーブルの読み取り、書き込み、または作成には、Databricks Runtime 16.4 以降が必要です。
- 既存のテーブルでカタログ管理コミットを有効または無効にするには、Databricks Runtime 18.0 以上が必要です。
カタログ管理コミットを有効にする
新しいテーブルと既存のテーブルでカタログ管理コミットを有効にすることができます。
新しいテーブルに対してカタログ管理コミットを有効にする
テーブルを作成するときは、 delta.feature.catalogManagedテーブル プロパティを使用します。
CREATE TABLE sales_data (
sale_id BIGINT,
amount DECIMAL(10,2),
sale_date DATE
)
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');
既存のテーブルに対してカタログ管理コミットを有効にする
既存のテーブルにカタログ管理コミットを追加するには、 ALTER TABLEを使用します。
ALTER TABLE sales_data SET TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');
既存のテーブルでカタログ管理コミットを有効にすると、テーブルの状態がカタログと同期されます。書き込みワークロードが多いテーブルでは、この操作に数分かかることがあります。
カタログ管理コミットが有効になっているかどうかを確認する
テーブルでカタログ管理コミットが有効になっているかどうかを確認するには:
DESCRIBE DETAIL sales_data;
有効にすると、 tableFeatures列にcatalogManagedが表示されます。
カタログ管理コミットを無効にする
Databricks Runtime 18.0 以降を使用して、カタログ管理コミットを無効にすることができます。「Delta Lake テーブル機能の削除とテーブル プロトコルのダウングレード」を参照してください。
ALTERまたはDROPステートメントの実行中は、アップグレードまたはダウングレード操作をキャンセルしないでください。中断により、テーブルが部分的にアップグレードまたはダウングレードされた状態になり、将来のすべての読み取りと書き込みがロックされる可能性があります。元に戻すには、キャンセルするのではなく、適切なコマンドを再度実行します。テーブルがロックされた場合は、Databricks サポートにお問い合わせください。
制限事項
-
CREATE OR REPLACE TABLEまたはREPLACE TABLEを使用してカタログ管理コミットを有効または無効にすることはできません。テーブルの作成時にこれを有効にするには、CREATE TABLEdelta.feature.catalogManagedプロパティと共に使用します。既存のテーブルでこれを有効または無効にするには、ALTER TABLE使用します。 -
カタログ管理コミットが有効になっているテーブルは、クラウド トークンではなく、事前に署名された URL を使用してDelta Sharingを通じて共有されます。
-
カタログ管理のコミットが有効になっているテーブル上のビューは、 Delta共有できません。
-
マテリアライズドビューとストリーミングテーブルでは、カタログ管理のコミットを有効にすることはできません。
-
カタログ管理のコミットが有効になっているテーブルは、 LakeFlowジョブ トリガーのソース テーブルにすることはできません。
-
Zerobus は、カタログ管理コミットが有効になっているテーブルに書き込むことができません。