メインコンテンツまでスキップ

シャロークローン for Unity Catalog tables

important

Unity Catalog で管理されるテーブルのシャロークローンのサポートは、Databricks Runtime 13.3 以降でパブリック プレビュー段階にあります。 Unity Catalog 外部テーブルのシャロークローンのサポートは、Databricks Runtime 14.2 以降でパブリック プレビュー段階にあります。

シャロークローンを使用して、既存の Unity Catalog テーブルから新しい Unity Catalog テーブルを作成できます。 Unity Catalog のシャロークローンのサポートにより、基になるデータファイルをコピーすることなく、親テーブルから独立したアクセス制御特権を持つテーブルを作成できます。

important

マネージドテーブルUnity CatalogUnity Catalogマネージドテーブルにクローンでき、外部テーブルUnity Catalog外部テーブルUnity Catalog外部テーブルにのみクローンできます。VACUUM 動作は、管理テーブルと外部テーブルで異なります。 浅いクローンのvacuumとUnity Catalogを参照してください。

Delta clone の詳細については、「 Databricks でテーブルを複製する」を参照してください。

Unity Catalog テーブルの詳細については、「 テーブルとは」を参照してください。

Unity Catalog でシャロークローンを作成する

次の構文例に示すように、製品全体のシャロークローンに使用できるのと同じ構文を使用して、Unity Catalog でシャロークローンを作成できます。

SQL
CREATE TABLE <catalog-name>.<schema-name>.<target-table-name> SHALLOW CLONE <catalog-name>.<schema-name>.<source-table-name>

Unity Catalog 上にシャロークローンを作成するには、次の表に示すように、ソース・リソースとターゲット・リソースの両方に対する十分な権限が必要です。

リソース

権限が必要です

ソーステーブル

SELECT

ソーススキーマ

USE SCHEMA

ソースカタログ

USE CATALOG

ターゲットスキーマ

USE SCHEMA, CREATE TABLE

ターゲットカタログ

USE CATALOG

ターゲットの外部ロケーション (外部テーブルのみ)

CREATE EXTERNAL TABLE

他の create table ステートメントと同様に、シャロークローンを作成するユーザーはターゲット表の所有者です。 ターゲット・クローン表の所有者は、ソーステーブルとは無関係に、そのテーブルのアクセス権を制御できます。

注記

クローンテーブルの所有者は、ソーステーブルの所有者とは異なる場合があります。

Unity Catalog で浅いクローン テーブルをクエリまたは変更する

important

このセクションの手順では、標準アクセス モード (以前の共有アクセス モード) で構成されたコンピュートに必要な特権について説明します。 専用アクセス・モード (以前のシングル・ユーザー・アクセス・モード) については、 専用アクセス・モードでの浅いクローン・テーブルの操作を参照してください。

Unity Catalogでシャロークローンを作成するには、次の表に示すように、テーブルおよび格納リソースに対する十分な権限が必要です。

リソース

権限が必要です

CATALOG

USE CATALOG

SCHEMA

USE SCHEMA

TABLE

SELECT

次のアクションを完了するには、クローン操作の対象に対する MODIFY 権限も必要です。

  • レコードの挿入
  • レコードを削除する
  • レコードの更新
  • MERGE
  • CREATE TABLE
  • DROP TABLE

浅いクローンのvacuumとUnity Catalog

important

この動作は、マネージドテーブルが Databricks Runtime 13.3 LTS 以降、外部テーブルが Databricks Runtime 14.2 以降でパブリック プレビュー段階です。

シャロークローン操作のソースとターゲットに Unity Catalog テーブルを使用すると、Unity Catalog によって基になるデータ ファイルが管理され、複製操作のソースとターゲットの信頼性が向上します。 シャロークローンのソースで VACUUM を実行しても、クローンされたテーブルは壊れません。

通常、 VACUUM が特定の保持しきい値に対して有効なファイルを識別すると、現在のテーブルのメタデータのみが考慮されます。 Unity Catalog のシャロークローンのサポートは、すべてのクローンテーブルとソースデータファイル間の関係を追跡するため、有効なファイルは、シャロークローンテーブルとソーステーブルのクエリーを返すために必要なデータファイルを含むように拡張されます。

つまり、Unity Catalog のシャロークローン VACUUM セマンティクスの場合、有効なデータ ファイルは、ソース テーブルまたは複製されたテーブルに対して指定された保有期間のしきい値内の任意のファイルです。 マネージ テーブルと外部テーブルでは、セマンティクスが若干異なります。

このメタデータの強化された追跡により、 VACUUM 操作が Delta テーブルをバックアップするデータ ファイルに与える影響が、次のセマンティクスで変更されます。

  • マネージドテーブルの場合、シャロークローン操作のソースまたはターゲットに対する VACUUM 操作によって、ソース テーブルからデータ ファイルが削除される可能性があります。
  • 外部テーブルの場合、 VACUUM 操作は、ソース テーブルに対して実行される場合にのみ、ソース テーブルからデータ ファイルを削除します。
  • ソース表に対して有効と見なされないデータ・ファイル、またはソースに対するシャロークローンのみが削除されます。
  • 1 つのソーステーブルに対して複数のシャロークローンが定義されている場合、いずれかのクローンテーブルで VACUUM を実行しても、他のクローンテーブルの有効なデータ・ファイルは削除されません。
注記

Databricks では、実行時間の長い進行中のトランザクションが破損するのを避けるために、保持設定が 7 日未満の VACUUM を実行しないことをお勧めします。 リテンション期間のしきい値を低くして VACUUM を実行する必要がある場合は、Unity Catalog の浅いクローンの VACUUM と、Databricks 上の他のクローン テーブルと VACUUM の相互作用がどのように異なるかを理解しておく必要があります。 「Databricks でテーブルを複製する」を参照してください

専用アクセスモードでの浅いクローンテーブルの操作

Unity Catalog の浅いクローンを専用アクセス モードで使用する場合は、クローンされたテーブル ソースとターゲット テーブルのリソースに対するアクセス許可が必要です。

つまり、単純なクエリの場合は、 ターゲット テーブルに対する必要なアクセス許可に加えて、ソース カタログとスキーマに対する USE アクセス許可と、ソース テーブルに対する SELECT アクセス許可が必要です。 ターゲット テーブルに対してレコードを更新または挿入するクエリの場合は、ソース テーブルに対する MODIFY アクセス許可も必要です。

Databricks 標準アクセス・モードでコンピュート上の Unity Catalog クローンを操作することを推奨します。これにより、 Unity Catalog シャロークローン・ターゲットとそのソース テーブルのパーミッションを個別に進化させることができます。

制限

  • 外部テーブルのシャロー・クローンは、外部テーブルである必要があります。 マネージド テーブルのシャロー クローンは、マネージド テーブルである必要があります。
  • REPLACE または CREATE OR REPLACE を使用して、既存のシャロークローンを上書きすることはできません。代わりに、シャロークローンを DROP し、新しい CREATE ステートメントを実行します。
  • Delta Sharingを使用してシャロークローンを共有することはできません。
  • シャロークローンをネストすることはできません。つまり、シャロークローンからシャロークローンを作成することはできません。
  • マネージドテーブルの場合、ソーステーブルを削除すると、浅いクローンのターゲットテーブルが中断されます。 外部テーブルをバックアップするデータファイルは DROP TABLE 操作によって削除されないため、外部テーブルの浅いクローンはソースを削除しても影響を受けません。
  • Unity Catalog では、DROP TABLEコマンドの実行後、約7日間、マネージドテーブルをUNDROPすることができます。 Databricks Runtime 13.3 LTS 以降では、ドロップされたマネージドテーブルに基づいて管理された浅いクローンは、この 7 日間の期間中も引き続き機能します。このウィンドウでソース テーブルを UNDROP しない場合、ソース テーブルのデータ ファイルがガベージ コレクションされると、シャロークローンは機能を停止します。