Freigeben über


Volumes

Gilt für: Häkchen ja Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime 13.3 LTS und höher durch Häkchen mit „Ja“ markiert 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: Häkchen gesetzt ja 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