Freigeben über


Wie funktionieren Pfade für Daten, die von Unity Catalog verwaltet werden?

In diesem Artikel werden Einschränkungen zu Pfadüberschneidungen in Unity Catalog erklärt und pfadbasierte Zugriffsmuster für Datendateien in Unity Catalog-Objekten erläutert. Außerdem wird die Verwaltung von Pfaden für Tabellen und Volumes durch Unity Catalog beschrieben.

Hinweis

Volumes werden erst ab Databricks Runtime 13.3 LTS unterstützt. In Databricks Runtime 12.2 LTS und früheren Versionen können Vorgänge für /Volumes-Pfade zwar erfolgreich sein, aber möglicherweise Daten auf kurzlebige Speicherdatenträger schreiben, die an Computecluster angefügt sind, anstatt Daten wie erwartet auf Unity Catalog-Volumes zu speichern.

Pfade für Unity Catalog-Objekte dürfen sich nicht überschneiden.

Zur Erzwingung von Datengovernance verhindert Unity Catalog, dass sich verwaltete Datenverzeichnisse überschneiden. Unity Catalog erzwingt folgende Regeln:

  • Externe Speicherorte dürfen sich nicht mit anderen externen Speicherorten überschneiden.
  • Tabellen und Volumes speichern Datendateien an externen Speicherorten oder am Metastore-Stammspeicherort.
  • Volumes dürfen sich nicht mit anderen Volumes überschneiden.
  • Tabellen dürfen sich nicht mit anderen Tabellen überschneiden.
  • Tabellen und Volumes dürfen sich nicht überschneiden.
  • Verwaltete Speicherorte dürfen sich nicht überschneiden. Weitere Informationen finden Sie unter Verwalteter Speicher.
  • Externe Volumes dürfen sich nicht mit verwalteten Speicherorten überschneiden.
  • Externe Tabellen dürfen sich nicht mit verwalteten Speicherorten überschneiden.

Aufgrund dieser Regeln gibt es in Unity Catalog folgende Einschränkungen:

  • Sie können keinen externen Standort innerhalb eines anderen externen Speicherorts definieren.
  • Sie können kein Volume innerhalb eines anderen Volumes definieren.
  • Sie können keine Tabelle innerhalb einer anderen Tabelle definieren.
  • Sie können keine Tabelle für Datendateien oder Verzeichnisse innerhalb eines Volumes definieren.
  • Sie können kein Volume für ein Verzeichnis innerhalb einer Tabelle definieren.

Hinweis

Sie können jederzeit pfadbasierten Zugriff verwenden, um Datendateien von Volumes (einschließlich Delta Lake) zu schreiben oder zu lesen. Sie können diese Datendateien nicht als Tabellen im Unity Catalog-Metastore registrieren.

Pfade für verwaltete Tabellen und verwaltete Volumes werden vollständig von Unity Catalog verwaltet.

Wenn Sie eine verwaltete Tabelle oder ein verwaltetes Volume erstellen, erstellt Unity Catalog ein neues Verzeichnis am von Unity Catalog konfigurierten Speicherort, der dem enthaltenden Schema zugeordnet ist. Der Name dieses Verzeichnisses wird nach dem Zufallsprinzip generiert, um potenzielle Konflikte mit bereits vorhandenen Verzeichnissen zu vermeiden.

Dieses Verhalten unterscheidet sich von der Erstellung verwalteter Tabellen durch den Hive-Metastore. Databricks empfiehlt, mit verwalteten Unity Catalog-Tabellen immer unter Verwendung von Tabellennamen und mit verwalteten Unity Catalog-Volumes unter Verwendung von Volumepfaden zu interagieren.

Pfade für externe Tabellen und externe Volumes werden von Unity Catalog gesteuert.

Wenn Sie eine externe Tabelle oder ein externes Volume erstellen, geben Sie einen Pfad innerhalb eines externen Speicherorts an, der von Unity Catalog gesteuert wird.

Wichtig

Databricks empfiehlt, niemals ein externes Volume oder eine externe Tabelle im Stammverzeichnis eines externen Speicherorts zu erstellen. Erstellen Sie stattdessen externe Volumes und externe Tabellen in Unterverzeichnissen an einem externen Speicherort. Diese Empfehlungen tragen dazu bei, versehentliche Pfadüberschneidungen zu vermeiden. Weitere Informationen finden Sie unter Pfade für Unity Catalog-Objekte dürfen sich nicht überschneiden.

Der Einfachheit halber empfiehlt Databricks, mit externen Unity Catalog-Tabellen unter Verwendung von Tabellennamen und mit externen Unity Catalog-Volumes unter Verwendung von Volumepfaden zu interagieren.

Wichtig

Unity Catalog verwaltet alle Berechtigungen für den Zugriff mithilfe von Cloud-URIs für Daten, die externen Tabellen oder externen Volumes zugeordnet sind. Diese Berechtigungen setzen alle Berechtigungen außer Kraft, die externen Speicherorten zugeordnet sind. Weitere Informationen finden Sie unter Unity Catalog-Berechtigungen und sicherungsfähige Objekte.

Wie können Sie auf Daten in Unity Catalog zugreifen?

Unity Catalog-Objekte bieten Zugriff auf Daten über Objektbezeichner, Volumepfade oder Cloud-URIs. Bei einigen Objekten können Sie mit mehreren Methoden auf die zugeordneten Daten zugreifen.

Auf Unity Catalog-Tabellen kann mithilfe eines dreiteiligen Bezeichners mit folgendem Muster zugegriffen werden:

<catalog_name>.<schema_name>.<table_name>

Volumes bieten einen Dateipfad für den Zugriff auf Datendateien mit folgendem Muster:

/Volumes/<catalog_name>/<schema_name>/<volume_name>/<path_to_file>

Bei Cloud-URIs müssen Benutzer*innen den Treiber, den Speichercontainerbezeichner und den vollständigen Pfad zu den Zieldateien angeben, wie im folgenden Beispiel zu sehen:

abfss://<container_name>@<storage_account>.dfs.core.windows.net/<path>

In der folgenden Tabelle sind die zulässigen Zugriffsmethoden für Unity Catalog-Objekte aufgeführt:

Object Objektbezeichner Dateipfad Cloud-URI
Externer Speicherort Nein nein ja
Verwaltete Tabelle ja nein Nein
Externe Tabelle ja Nein ja
Verwaltetes Volume Nein Ja Nein
Externes Volume Nein ja ja

Hinweis

Unity Catalog-Volumes verwenden dreistufige Objektbezeichner mit folgendem Muster für Verwaltungsbefehle (z. B CREATE VOLUME und DROP VOLUME):

<catalog_name>.<schema_name>.<volume_name>

Um tatsächlich mit Dateien in Volumes zu arbeiten, müssen Sie den pfadbasierten Zugriff verwenden.