Volumes
Gilt für: Databricks SQL Databricks Runtime 13.3 LTS und höher Nur Unity Catalog
Volumes sind Unity Catalog-Objekte, die ein logisches Speichervolume an einem Speicherort für Cloudobjekte darstellen. Volumes bieten Funktionen zum Zugreifen auf Dateien sowie zum Speichern, Verwalten und Organisieren von Dateien. Tabellen bieten zwar Governance über tabellarische Datasets, Volumes unterstützen jedoch zusätzlich Governance für nicht tabellarische Datasets. Sie können Volumes verwenden, um Dateien in einem beliebigen Format zu speichern und darauf zuzugreifen, einschließlich strukturierter, semistrukturierter und unstrukturierter Daten.
Volumes befinden sich auf der gleichen Ebene wie Tabellen, Sichten und andere Objekte, die in einem Schema in Unity Catalog organisiert sind.
Eine Tabelle kann verwaltet oder extern sein.
Weitere Details und Einschränkungen finden Sie unter Was sind Unity Catalog-Volumes?.
Verwaltetes Volume
Ein verwaltetes Volume ist ein von Unity Catalog verwaltetes Speichervolume, das am verwalteten Speicherort des enthaltenden Schemas erstellt wird. Verwaltete Volumes ermöglichen die Erstellung von verwaltetem Speicher für die Arbeit mit Dateien ohne den Mehraufwand durch externe Speicherorte und Speicheranmeldeinformationen. Sie müssen beim Erstellen eines verwalteten Volumes keinen Speicherort angeben, und der gesamte Dateizugriff auf Daten in verwalteten Volumes erfolgt über Pfade, die von Unity Catalog verwaltet werden.
Externes Volume
Ein externes Volume ist ein von Unity Catalog verwaltetes Speichervolume, das bei einem Verzeichnis an einem externen Speicherort registriert ist.
Benennen von Volumes und Verweisen auf Volumes
Ein Volumename ist ein Bezeichner, der mit einem Katalog- und Schemanamen in SQL-Befehlen qualifiziert werden kann.
Für den Pfad für den Zugriff auf Dateien in Volumes wird das folgende Format verwendet:
/Volumes/<catalog_identifier>/<schema_identifier>/<volume_identifier>/<path>/<file_name>
Beachten Sie, dass Azure Databricks die Bezeichner zu Kleinbuchstaben normalisiert.
Azure Databricks unterstützt auch ein optionales dbfs:/
-Schema, sodass auch der folgende Pfad funktioniert:
dbfs:/Volumes/<catalog_identifier>/<schema_identifier>/<volume_identifier>/<path>/<file_name>
Hinweis
Sie können auch auf Daten in externen Volumes zugreifen, indem Sie Cloudspeicher-URIs verwenden.
Verwalten von Dateien in Volumes
Gilt für: SQL-Connector für Databricks
Mit einem SQL-Connector für Databricks können Sie Dateien in Volumes mithilfe der folgenden Befehle verwalten:
- PUT INTO, um eine Datei aus Ihrem lokalen Speicher in ein Volume zu kopieren.
- GET, um eine Datei aus einem Volume in Ihren lokalen Speicher zu kopieren.
- REMOVE, um eine Datei aus einem Volume zu entfernen.
Beispiele
--- Create an external volume under the directory “my-path”
> CREATE EXTERNAL VOLUME IF NOT EXISTS myCatalog.mySchema.myExternalVolume
COMMENT 'This is my example external volume'
LOCATION 's3://my-bucket/my-location/my-path'
OK
--- Set the current catalog
> USE CATALOG myCatalog;
OK
--- Set the current schema
> USE SCHEMA mySchema;
OK
--- Create a managed volume; it is not necessary to specify a location
> CREATE VOLUME myManagedVolume
COMMENT 'This is my example managed volume';
OK
--- List the files inside the volume, all names are lowercase
> LIST '/Volumes/mycatalog/myschema/myexternalvolume'
sample.csv
> LIST 'dbfs:/Volumes/mycatalog/myschema/mymanagedvolume'
sample.csv
--- Print the content of a csv file
> SELECT * FROM csv.`/Volumes/mycatalog/myschema/myexternalvolume/sample.csv`
20
> SELECT * FROM csv.`dbfs:/Volumes/mycatalog/myschema/mymanagedvolume/sample.csv`
20