Unity Catalog テーブルのシャロー クローン

重要

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

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

重要

Unity Catalog マネージド テーブルから Unity Catalog マネージド テーブルへ、Unity Catalog 外部テーブルから Unity Catalog 外部テーブルへの複製のみを行うことができます。 VACUUM の動作は、マネージドおよび外部のテーブルでそれぞれ異なります。 「Vacuum と Unity Catalog のシャロー クローン」を参照してください。

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

Unity カタログ テーブルの詳細については、「 テーブルとビューとは」を参照してください。

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

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

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 ステートメントと同様に、シャロー クローンを作成するユーザーはターゲット テーブルの所有者です。 ターゲット複製テーブルの所有者は、ソース テーブルとは別に、そのテーブルのアクセス権を制御できます。

Note

複製されたテーブルの所有者は、ソース テーブルの所有者とは異なる場合があります。

Unity Catalog でシャロー クローン テーブルのクエリまたは変更を行う

重要

このセクションの手順では、共有アクセス モードで構成されたコンピューティングに必要な特権について説明します。 シングル ユーザー アクセス モードの場合は、「シングル ユーザー アクセス モードでの簡易複製テーブルの操作」を参照してください。

Unity Catalog でシャロー クローンに対してクエリを実行するには、次の表で詳しく説明するように、テーブルとリソースを含む十分な特権が必要です:

リソース 必要なアクセス許可
カタログ USE CATALOG
[スキーマ] USE SCHEMA
テーブル SELECT

次のアクションを完了するには、複製操作のターゲットに対する MODIFY アクセス許可も必要です:

  • レコードの挿入
  • レコードを削除する
  • Update レコード
  • MERGE
  • CREATE OR REPLACE TABLE
  • DROP TABLE

Vacuum と Unity Catalog のシャロー クローン

重要

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

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

通常、VACUUM で特定の保持しきい値の有効なファイルが識別される場合、現在のテーブルのメタデータのみが考慮されます。 Unity Catalog のシャロー クローン サポートでは、複製されたすべてのテーブルとソース データ ファイルの間のリレーションシップが追跡されるため、有効なファイルが展開され、シャロー クローン テーブルとソース テーブルのクエリを返すために必要なデータ ファイルが含まれます。

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

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

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

Note

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

シングル ユーザー アクセス モードでシャロー クローン テーブルを操作する

シングル ユーザー アクセス モードで Unity Catalog のシャロー クローンを操作する場合は、複製されたテーブル ソースとターゲット テーブルのリソースに対するアクセス許可が必要です。

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

Databricks では、共有アクセス モードのコンピューティングで Unity Catalog クローンを操作することをおすすめします。これにより、Unity Catalog の簡易クローン ターゲットとそのソース テーブルに対するアクセス許可を独立して進化させることができます。

制限事項

  • 外部テーブルのシャロー クローンは、外部テーブルでなければなりません。 マネージド テーブルのシャロー クローンは、マネージド テーブルでなければなりません。
  • 差分共有を使用してシャロー クローンを共有することはできません。
  • シャロー クローンを入れ子にすることはできません。つまり、シャロー クローンからシャロー クローンを作成することはできません。
  • マネージド テーブルの場合、ソース テーブルを削除すると、シャロー クローンのターゲット テーブルが破損します。 外部テーブルをサポートするデータ ファイルは DROP TABLE 操作によって削除されないため、外部テーブルのシャロー クローンはソースの削除による影響を受けません。
  • Unity Catalog を使用すると、ユーザーは DROP TABLE コマンドの実行後約 7 日間マネージド テーブルをUNDROPできます。 Databricks Runtime 13.3 LTS 以降では、ドロップされたマネージド テーブルに基づくマネージド シャロー クローンは、この 7 日間も引き続き機能します。 このウィンドウのソース テーブルをUNDROPしない場合、ソース テーブルのデータ ファイルがガベージ コレクションされると、シャロー クローンは機能しなくなります。