Flacher Klon für Unity Catalog-Tabellen

Wichtig

Die Unterstützung flacher Klone für verwaltete Tabellen in Unity Catalog befindet sich ab Databricks Runtime 13.3 in der Public Preview. Flache Klonunterstützung für die externe Unity Catalog-Tabelle befindet sich in der öffentlichen Vorschau in Databricks Runtime 14.2 und höher.

Sie können flache Klone verwenden, um neue Unity Catalog-Tabellen aus vorhandenen Unity Catalog-Tabellen zu erstellen. Mit der Unterstützung für flache Klone für Unity Catalog können Sie Tabellen mit Zugriffssteuerungsberechtigungen unabhängig von den übergeordneten Tabellen erstellen, ohne zugrunde liegende Datendateien kopieren zu müssen.

Wichtig

Sie können verwaltete Tabellen im Unity Catalog nur mit verwalteten Tabellen im Unity Catalog klonen und externe Unity Catalog-Tabellen zu externen Tabellen des Unity Catalog. Das VACUUM Verhalten unterscheidet sich zwischen verwalteten und externen Tabellen. Einzelheiten finden Sie unter Vacuum und flache Klone für Unity Catalog.

Weitere Informationen zum Deltaklonen finden Sie unter Klonen einer Tabelle in Azure Databricks.

Weitere Informationen zu Unity Catalog-Tabellen finden Sie unter Erstellen von Tabellen in Unity Catalog.

Erstellen eines flachen Klons in Unity Catalog

Sie können einen flachen Klon in Unity Catalog mit der gleichen Syntax erstellen, die für flache Klone im gesamten Produkt verfügbar ist, wie im folgenden Syntaxbeispiel gezeigt:

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

Um einen flachen Klon in Unity Catalog zu erstellen, müssen Sie über ausreichende Berechtigungen für die Quell- und Zielressourcen verfügen, wie in der folgenden Tabelle beschrieben:

Resource Erforderliche Berechtigungen
Quelltabelle SELECT
Quellschema USE SCHEMA
Quellkatalog USE CATALOG
Zielschema USE SCHEMA, CREATE TABLE
Zielkatalog USE CATALOG
Externe Zielspeicherort (nur externe Tabellen) CREATE EXTERNAL TABLE

Wie bei anderen CREATE TABLE-Anweisungen ist der/die Benutzer*in, der einen flachen Klon erstellt, der/die Besitzer*in der Zieltabelle. Der/die Besitzer*in einer geklonten Zieltabelle kann die Zugriffsrechte für diese Tabelle unabhängig von der Quelltabelle steuern.

Hinweis

Ein/e Besitzer*in einer geklonten Tabelle kann sich von dem/der Besitzer*in einer Quelltabelle unterscheiden.

Abfragen oder Ändern einer flach geklonten Tabelle in Unity Catalog

Wichtig

In den Anweisungen in diesem Abschnitt werden die Berechtigungen beschrieben, die für im Modus für gemeinsam genutzten Zugriff konfiguriertes Compute erforderlich sind. Informationen zum Einzelbenutzer-Zugriffsmodus finden Sie unter Arbeiten mit flach geklonten Tabellen im Einzelbenutzer-Zugriffsmodus.

Um einen flachen Klon in Unity Catalog abzufragen, müssen Sie über ausreichende Berechtigungen für die Tabelle und die enthaltenen Ressourcen verfügen, wie in der folgenden Tabelle beschrieben:

Resource Erforderliche Berechtigungen
Katalog USE CATALOG
Schema USE SCHEMA
Tabelle SELECT

Sie müssen auch über die Berechtigung MODIFY für das Ziel des Klonvorgangs verfügen, um die folgenden Aktionen ausführen zu können:

  • Einfügen von Datensätzen
  • Löschen von Datensätzen
  • Updatedatensätze
  • MERGE
  • CREATE OR REPLACE TABLE
  • DROP TABLE

VACUUM und flache Klone für Unity Catalog

Wichtig

Dieses Verhalten befindet sich in Databricks Runtime 13.3 LTS und höher für verwaltete Tabellen und in Databricks Runtime 14.2 und höher für externe Tabellen in der Public Preview.

Wenn Sie Unity Catalog-Tabellen für die Quelle und das Ziel eines flachen Klonvorgangs verwenden, verwaltet Unity Catalog die zugrunde liegenden Datendateien zum Verbessern der Zuverlässigkeit für die Quelle und das Ziel des Klonvorgangs. Durch das Ausführen von VACUUM auf die Quelle eines flachen Klons wird die geklonte Tabelle nicht beschädigt.

Wenn VACUUM gültige Dateien für einen bestimmten Aufbewahrungsschwellenwert identifiziert, werden normalerweise nur die Metadaten für die aktuelle Tabelle berücksichtigt. Die Unterstützung flacher Klone für Unity Catalog verfolgt die Beziehungen zwischen allen geklonten Tabellen und den Quelldatendateien nach. Gültige Dateien werden somit erweitert, sodass sie Datendateien enthalten, die zum Zurückgeben von Abfragen für flache geklonte Tabellen sowie die Quelltabellen erforderlich sind.

Dies bedeutet, dass für die Semantik von VACUUM für flache Klonen in Unity Catalog eine gültige Datendatei eine beliebige Datei innerhalb des angegebenen Aufbewahrungsschwellenwerts für die Quelltabelle oder eine beliebige geklonte Tabelle ist. Verwaltete Tabellen und externe Tabellen weisen geringfügig unterschiedliche Semantik auf.

Diese erweiterte Nachverfolgung von Metadaten ändert die Auswirkungen von VACUUM-Vorgängen auf die den Delta-Tabellen zugrunde liegenden Datendateien mit der folgenden Semantik:

  • Bei verwalteten Tabellen können VACUUM-Vorgänge an der Quelle oder am Ziel eines flachen Klonvorgangs Datendateien aus der Quelltabelle löschen.
  • Bei externen Tabellen entfernen VACUUM-Vorgänge nur Datendateien aus der Quelltabelle, wenn sie für die Quelltabelle ausgeführt werden.
  • Es werden nur Datendateien entfernt, die nicht als gültig für die Quelltabelle oder irgendeinen flachen Klon für die Quelle gelten.
  • Wenn mehrere flache Klone für eine einzelne Quelltabelle definiert sind, werden bei der Ausführung von VACUUM in einer der geklonten Tabellen keine gültigen Datendateien für andere geklonte Tabellen entfernt.

Hinweis

Databricks empfiehlt, VACUUM niemals mit einer Aufbewahrungseinstellung von weniger als 7 Tagen auszuführen, um zu vermeiden, dass laufende Transaktionen mit langer Ausführungszeit beschädigt werden. Wenn Sie VACUUM mit einem niedrigeren Aufbewahrungsschwellenwert ausführen müssen, stellen Sie sicher, dass Sie verstehen, wie sich VACUUM auf flache Klone in Unity Catalog von der Interaktion von VACUUM mit anderen geklonten Tabellen in Azure Databricks unterscheidet. Siehe Klonen einer Tabelle in Azure Databricks.

Arbeiten mit flach geklonten Tabellen im Einzelbenutzer-Zugriffsmodus

Wenn Sie mit flachen Unity Catalog-Klonen im Einzelbenutzer-Zugriffsmodus arbeiten, müssen Sie über Berechtigungen für die Ressourcen der geklonten Quelltabelle und die Zieltabelle verfügen.

Dies bedeutet, dass Sie für einfache Abfragen zusätzlich zu den erforderlichen Berechtigungen für die Zieltabelle über die Berechtigung USE für den Quellkatalog und das Schema und die Berechtigung SELECT für die Quelltabelle verfügen müssen. Für Abfragen, die Datensätze in der Zieltabelle aktualisieren oder in diese einfügen, müssen Sie auch über die Berechtigung MODIFY für die Quelltabelle verfügen.

Databricks empfiehlt die Arbeit mit Unity Catalog-Klonen für Compute mit freigegebenem Zugriff, da dies eine unabhängige Weiterentwicklung der Berechtigungen für Unity Catalog-Ziele für flache Klone als Ziel sowie deren Quelltabellen ermöglicht.

Begrenzungen

  • Flache Klone in externen Tabellen müssen externe Tabellen sein. Flache Klone in verwalteten Tabellen müssen verwaltete Tabellen sein.
  • Sie können flache Klone nicht mithilfe von Delta Sharing freigeben.
  • Sie können flache Klone nicht schachteln und somit keine flachen Klone aus flachen Klonen erstellen.
  • Bei verwalteten Tabellen unterbricht das Ablegen der Quelltabelle die Zieltabelle für flache Klonen. Datendateien, die externe Tabellen sichern, werden nicht von DROP TABLE-Vorgängen entfernt, sodass flache Klone externer Tabellen durch Ablegen der Quelle nicht beeinträchtigt werden.
  • Unity Catalog ermöglicht es Benutzer*innen, ein UNDROP von verwalteten Tabellen noch etwa 7 Tage nach einem DROP TABLE-Befehl auszuführen. In Databricks Runtime 13.3 LTS und höher funktionieren verwaltete flache Klone, die auf einer verworfenen verwalteten Tabelle basieren, während dieses 7-Tage-Zeitraums weiterhin. Wenn Sie in diesem Zeitfenster kein UNDROP für die Quelltabelle ausführen, funktioniert der flache Klon nicht mehr, sobald eine Garbage Collection für die Datendateien der Quelltabelle stattgefunden hat.