カタログコミット
このページでは、カタログ コミットを有効にする方法について説明します。これは、コミット調整をファイル システムから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 TABLEとdelta.feature.catalogManagedプロパティを併用してください。既存のテーブルで有効または無効にするには、ALTER TABLEを使用してください。 -
カタログコミットが有効になっているテーブルは、クラウドの代わりに事前署名された URL を使用するDelta Sharingを通じて共有されます。
-
カタログコミットが有効になっているテーブル上のビューはDelta共有できません。
-
マテリアライズドビューとストリーミングテーブルでは、カタログコミットを有効にすることはできません。
-
カタログコミットが有効になっているテーブルを、 LakeFlowジョブトリガーのソーステーブルにすることはできません。
-
Zerobusは、カタログコミットが有効になっているテーブルには書き込むことができません。