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.
Important
Dieses Feature befindet sich in der Public Preview.
Important
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 LTS und höher und für externe Tabellen Databricks Runtime 14.3 LTS 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".
Verwenden Sie flachen Klon, um Unity Catalog-Tabellen mit Zugriffssteuerungsberechtigungen unabhängig von ihren Quelltabellen zu erstellen, ohne die zugrunde liegenden Datendateien zu kopieren. Shallow Clone in Unity Catalog wird nur bei Delta-Lake-Tabellen unterstützt. Sie können keinen flachen Klon eines Icebergs oder einer anderen Nicht-Delta-Tabelle erstellen.
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 | Berechtigungen sind erforderlich |
|---|---|
| Quellschema | USE SCHEMA |
| Quellkatalog | USE CATALOG |
| Zielschema |
USE SCHEMA, CREATE TABLE |
| Zielkatalog | USE CATALOG |
Wie bei anderen CREATE TABLE-Anweisungen gehört Ihnen die Zieltabelle, wenn Sie SHALLOW CLONE ausführen. Der Besitzer einer geklonten Zieltabelle steuert die Zugriffsrechte für diese Tabelle unabhängig von der Quelltabelle. Der Besitzer einer geklonten Tabelle unterscheidet sich möglicherweise vom Besitzer einer Quelltabelle.
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 | Berechtigungen sind erforderlich |
|---|---|
| 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
Um einen flachen Klon im Standardzugriffsmodus (früher gemeinsamer Zugriffsmodus) abzufragen, müssen Sie über die folgenden Berechtigungen für die Tabelle und die enthaltenden Ressourcen verfügen:
| Ressource | Berechtigungen sind erforderlich |
|---|---|
| Catalog | USE CATALOG |
| Schema | USE SCHEMA |
| Table | SELECT |
Sie müssen außerdem über MODIFY-Berechtigungen für das Ziel des Klonvorgangs verfügen, um die folgenden Vorgänge auszuführen:
INSERTDELETEUPDATEMERGECREATE TABLEDROP TABLE
Arbeiten mit flach geklonten Tabellen im dedizierten Zugriffsmodus
Beim Arbeiten mit Flachklonen im Unity-Katalog im dedizierten Zugriffsmodus (vormals Einzelbenutzerzugriffsmodus) müssen Sie über Berechtigungen für die Ressourcen für die geklonte Tabellenquelle und die Zieltabelle verfügen.
Für einfache Abfragen müssen Sie zusätzlich zu den erforderlichen Berechtigungen für die Zieltabelle über USE Berechtigungen für den Quellkatalog und das Quellschema sowie über SELECT Berechtigungen für die Quelltabelle verfügen. Bei Abfragen, die Datensätze in die Zieltabelle aktualisieren oder einfügen, müssen Sie auch über Berechtigungen für die Quelltabelle verfügen MODIFY .
Databricks empfiehlt die Verwendung von Unity-Katalogklonen auf der Berechnung mit standardem Zugriffsmodus, da dies unabhängige Änderungen von Berechtigungen für Unity Catalog-Flachklonziele 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. Wird VACUUM auf der Quelle eines flachen Klons ausgeführt, wird die geklonte Tabelle nicht abgebrochen.
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 sowohl für flache geklonte Tabellen als auch für die Quelltabelle erforderlich sind.
Bei VACUUM einem flachen Klon im Unity-Katalog ist eine gültige Datendatei eine beliebige Datei innerhalb des angegebenen Aufbewahrungsschwellenwerts für die Quelltabelle oder eine geklonte Tabelle. Verwaltete Tabellen und externe Tabellen weisen geringfügig unterschiedliche Verhaltensweisen auf.
Diese verbesserte Nachverfolgung von Änderungen an Metadaten verändert, wie VACUUM-Vorgänge die zugrunde liegenden Datendateien der Delta-Lake-Tabellen beeinflussen, mit folgendem Verhalten:
- Bei verwalteten Tabellen können
VACUUMVorgänge an der Quelle oder am Ziel eines Shallow-Clone-Vorgangs 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 noch laufende Transaktionen mit langer Laufzeit beschädigt werden. Wenn Sie einen niedrigeren Schwellenwert für die Aufbewahrung benötigen, sollten Sie berücksichtigen, wie VACUUM bei flachen Klonen im Unity Catalog sich davon unterscheidet, wie VACUUM andere geklonte Tabellen in Azure Databricks beeinflusst. Weitere Informationen finden Sie unter Klonen einer Tabelle in Azure Databricks.
Auch wenn Sie eine flach geklonte Tabelle löschen, benötigen Sie möglicherweise SELECT Zugriff auf diese flach geklonte Tabelle, um VACUUM für die Basistabelle 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 nach dem Ablegen einer flach geklonten Tabelle zur Unterstützung des UNDROP Vorgangs. Im Standardzugriffsmodus ist diese Berechtigung jedoch nicht erforderlich.
Löschen der Basistabelle um einen oberflächlichen Klon zu erstellen
Wenn Sie die Basistabelle eines flachen Klons löschen, 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:
- Flache Klone scheitern bei Vorgängen, die das Lesen von Daten oder Metadaten erfordern (zum Beispiel
SELECT,INSERT,UPDATE,DESCRIBE HISTORY,CLONE). - Um die Bereinigung zu ermöglichen, sind flache Klone bei Vorgängen auf Metadatenebene weiterhin sichtbar (zum Beispiel
SHOW TABLES,DROP TABLE).
- Flache Klone scheitern 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.
Einschränkungen
- Shallow Clone wird nur für Delta-Lake-Tabellen unterstützt. Sie können keinen flachen Klon eines Icebergs oder einer anderen Nicht-Delta-Tabelle erstellen.
- Flache Klone von externen Tabellen müssen externe Tabellen sein. Flache Klone von verwalteten Tabellen müssen verwaltete Tabellen sein.
- Sie können flache Klonen nicht mit OpenSharing teilen.
- 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.