Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wichtig
Dieses Feature befindet sich in der Public Preview.
Wichtig
Die Unterstützung für Shallow Clone unterscheidet sich bei verwalteten und externen Tabellen im Unity-Katalog. Für verwaltete Tabellen verwenden Databricks Runtime 13.3 und höher und für externe Tabellen Databricks Runtime 14.2 und höher.
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. Siehe "Verwenden VACUUM mit Flachklonen im Unity-Katalog".
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.
Informationen zum Klonen einer Tabelle finden Sie unter Klonen einer Tabelle in Azure Databricks.
Einen verwalteten Shallow-Clone im Unity-Katalog erstellen
Erstellen Sie einen flachen Klon einer verwalteten Tabelle im Unity-Katalog.
CREATE TABLE <catalog-name>.<schema-name>.<target-table-name>
SHALLOW CLONE <catalog-name>.<schema-name>.<source-table-name>
Um einen verwalteten flachen Klon im Unity-Katalog zu erstellen, müssen Sie über die folgenden Berechtigungen für die Quell- und Zielressourcen verfügen.
| Ressource | Erforderliche Berechtigungen |
|---|---|
| Quellschema | USE SCHEMA |
| Quellkatalog | USE CATALOG |
| Zielschema |
USE SCHEMA, CREATE TABLE |
| Zielkatalog | USE CATALOG |
Wie bei anderen CREATE TABLE-Anweisungen besitzt der Benutzer, der einen shallow Clone erstellt, die Zieltabelle. Der Besitzer einer geklonten Zieltabelle steuert die Zugriffsrechte für diese Tabelle unabhängig von der Quelltabelle. Dies bedeutet, dass sich der Besitzer einer geklonten Tabelle möglicherweise vom Besitzer einer Quelltabelle unterscheidet.
Erstellen eines externen Shallow-Clones im Unity-Katalog
Erstellen Sie einen externen flachen Klon im Unity-Katalog, indem Sie einen externen Speicherort angeben.
CREATE TABLE <catalog-name>.<schema-name>.<target-table-name>
SHALLOW CLONE <catalog-name>.<schema-name>.<source-table-name>
LOCATION 's3://<bucket-name>/<path-name>/<target-table-name>'
Um einen externen flachen Klon im Unity-Katalog zu erstellen, müssen Sie über die folgenden Berechtigungen für die Quell- und Zielressourcen verfügen.
| Ressource | Erforderliche Berechtigungen |
|---|---|
| Quellschema | USE SCHEMA |
| Quellkatalog | USE CATALOG |
| Zielschema |
USE SCHEMA, CREATE TABLE |
| Zielkatalog | USE CATALOG |
| Externer Zielort | CREATE EXTERNAL TABLE |
Arbeiten mit flach geklonten Tabellen im Standardzugriffsmodus
Zum Abfragen eines flachen Klons im Standardzugriffsmodus (früher freigegebener Zugriffsmodus) müssen Sie über die folgenden Berechtigungen für die Tabelle und die enthaltenen Ressourcen verfügen.
| Ressource | Erforderliche Berechtigungen |
|---|---|
| Katalog | USE CATALOG |
| Schema | USE SCHEMA |
| Tabelle | SELECT |
Sie müssen auch über die nötigen Berechtigungen für das Ziel des Klonvorgangs verfügen, um die folgenden Aktionen auszuführen.
- Einfügen von Datensätzen
- Löschen von Datensätzen
- Datensätze aktualisieren
MERGECREATE TABLEDROP TABLE
Arbeiten mit flach geklonten Tabellen im dedizierten Zugriffsmodus
Wenn Sie mit Unity Catalog flachen Klonen im dedizierten Zugriffsmodus (früher einzelbenutzerzugriffsmodus) arbeiten, müssen Sie über Berechtigungen für die Ressourcen für die geklonte Tabellenquelle und die Zieltabelle verfügen.
Dies bedeutet, dass für einfache Abfragen zusätzlich zu den erforderlichen Berechtigungen für die Zieltabelle auch Berechtigungen für den Quellkatalog, das Schema, und USE Berechtigungen für die Quelltabelle erforderlich sind SELECT. 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, mit Unity Catalog-Klonen in einer Computing-Umgebung im Standard-Zugriffsmodus zu arbeiten, da dies die unabhängige Entwicklung von Berechtigungen für die Unity Catalog Shallow-Clones und deren Quelltabellen ermöglicht.
Verwenden Sie VACUUM mit Unity Catalog und flachen Klonen
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 von flachen Klonen für Unity Catalog verfolgt jedoch die Beziehungen zwischen allen geklonten Tabellen und den Quelldatendateien, sodass gültige Dateien erweitert werden, um Datendateien einzuschließen, die für die Rückgabe von Abfragen für jede flache geklonte Tabelle sowie die Quelltabelle 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 verbesserte Nachverfolgung von Metadatenänderungen wirkt sich darauf aus, wie VACUUM Vorgänge die zugrunde liegenden Datendateien für die Delta-Tabellen beeinflussen, 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 eine flache Kopie der Quelle gelten.
- Wenn mehrere flache Klone für eine einzelne Quelltabelle definiert sind, werden bei der Ausführung von
VACUUMin 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 bei flachen Klonen in Unity Catalog von der Interaktion von VACUUM mit anderen geklonten Tabellen in Azure Databricks unterscheidet. Weitere Informationen finden Sie unter Klonen einer Tabelle in Azure Databricks.
Auch wenn eine flach geklonte Tabelle gelöscht wird, benötigen Sie möglicherweise SELECT Zugriff auf diese Tabelle, um eine Aktion auf der Basistabelle VACUUM auszuführen. Databricks liest das Delta-Protokoll des flachen Klons vor, um zu überprüfen, auf welche Basistabellendatendateien der Klon noch verweist, bevor sie vakuumiert werden. Databricks verwaltet diesen Link 7 Tage, nachdem eine flache geklonte Tabelle gelöscht wurde, um den UNDROP Vorgang zu unterstützen. Im Standardzugriffsmodus ist diese Berechtigung jedoch nicht erforderlich.
Löschen der Basistabelle um einen oberflächlichen Klon zu erstellen
Wenn die Basistabelle eines flachen Klons gelöscht wird, wird der Klon unbrauchbar. Standardmäßig blockiert Databricks, dass Sie eine Basistabelle löschen können, wenn es immer noch flache Klone gibt, die darauf verweisen.
Verwenden Sie die DROP TABLE ... FORCE Syntax, um diesen Schutz außer Kraft zu setzen. Wenn Sie FORCE verwenden:
- Die Basistabelle wird sofort gelöscht.
- Alle verweisen auf flache Klonen werden unterbrochen und:
- Fehler bei Vorgängen, die das Lesen von Daten oder Metadaten erfordern (zum Beispiel
SELECT,INSERT,UPDATE,DESCRIBE HISTORY,CLONE). - Sind weiterhin über Vorgänge auf Metadatenebene (zum Beispiel
SHOW TABLES,DROP TABLE) sichtbar, um die Bereinigung zu ermöglichen.
- Fehler bei Vorgängen, die das Lesen von Daten oder Metadaten erfordern (zum Beispiel
Dieses Verhalten gilt nur für verwaltete Tabellen im Unity-Katalog. Weitere Informationen finden Sie unter DROP TABLE.
Begrenzungen
- Flache Klone von externen Tabellen müssen externe Tabellen sein. Flache Klone von verwalteten Tabellen müssen verwaltete Tabellen sein.
- Sie können
REPLACEoderCREATE OR REPLACEnicht verwenden, um einen vorhandenen oberflächlichen Klon zu überschreiben.DROPSie stattdessen den flachen Klon aus, und führen Sie eine neueCREATE-Anweisung aus. - Sie können flache Klone nicht mithilfe von Delta Sharing freigeben.
- Sie können flache Klone nicht schachteln, was bedeutet, dass Sie keine flachen Klone aus flachen Klonen erstellen können.
- Bei verwalteten Tabellen unterbricht das Ablegen der Quelltabelle die Zieltabelle für flache Klonen. Die zugrunde liegenden Datendateien für externe Tabellen werden nicht von
DROP TABLEVorgängen entfernt, sodass flache Klone externer Tabellen durch das Ablegen der Quelle nicht beeinträchtigt werden. - Unity Catalog ermöglicht es Benutzer*innen,
UNDROPauf verwaltete Tabellen noch etwa 7 Tage nach einemDROP TABLE-Befehl anzuwenden. In Databricks Runtime 13.3 LTS und höher funktionieren verwaltete flache Klone einer verworfenen Quelltabelle weiterhin für den Zeitraum von 7 Tagen, in dem der Unity-KatalogUNDROPunterstützt. Wenn die Quelltabelle innerhalb dieses Fensters nicht wiederhergestellt wird, funktioniert der flache Klon nicht mehr, wenn die Quelldatendateien während der Garbage Collection gelöscht werden.