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-Katalogtabellen finden Sie unter Was sind Tabellen und Ansichten?.
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 einemDROP 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 keinUNDROP
für die Quelltabelle ausführen, funktioniert der flache Klon nicht mehr, sobald eine Garbage Collection für die Datendateien der Quelltabelle stattgefunden hat.