Share via


Volumes

Van toepassing op:vinkje als ja aan Alleen Databricks SQL vinkje als ja aan Databricks Runtime 13.3 LTS en hoger vinkje als ja aan dan Unity Catalog

Volumes zijn Unity Catalog-objecten die een logisch opslagvolume in een opslaglocatie voor cloudobjecten vertegenwoordigen. Volumes bieden mogelijkheden voor het openen, opslaan, beheren en ordenen van bestanden. Hoewel tabellen governance bieden voor gegevenssets in tabelvorm, voegen volumes governance toe boven niet-tabellaire gegevenssets. U kunt volumes gebruiken om bestanden op te slaan en te openen in elke indeling, waaronder gestructureerde, semi-gestructureerde en ongestructureerde gegevens.

Volumes zijn gekoppeld aan tabellen, weergaven en andere objecten die zijn geordend onder een schema in Unity Catalog.

Een volume kan worden beheerd of extern.

Zie Maken en werken met volumes voor meer informatie en beperkingen.

Beheerd volume

Een beheerd volume is een door de Unity Catalog beheerde opslagvolume dat is gemaakt binnen de beheerde opslaglocatie van het schema dat het bevat. Beheerde volumes maken het mogelijk om beheerde opslag te maken voor het werken met bestanden zonder overhead van externe locaties en opslagreferenties. U hoeft geen locatie op te geven bij het maken van een beheerd volume en alle bestandstoegang voor gegevens in beheerde volumes verloopt via paden die worden beheerd door Unity Catalog.

Extern volume

Een extern volume is een door Unity Catalog beheerd opslagvolume dat is geregistreerd bij een map op een externe locatie.

Volumenaam en -verwijzing

Een volumenaam is een id die kan worden gekwalificeerd met een catalogus- en schemanaam in SQL-opdrachten.

Het pad naar toegang tot bestanden in volumes gebruikt de volgende indeling:

/Volumes/<catalog_identifier>/<schema_identifier>/<volume_identifier>/<path>/<file_name>

Houd er rekening mee dat Azure Databricks de id's normaliseert in kleine letters.

Azure Databricks ondersteunt ook een optioneel dbfs:/ schema, dus het volgende pad werkt ook:

dbfs:/Volumes/<catalog_identifier>/<schema_identifier>/<volume_identifier>/<path>/<file_name>

Notitie

U kunt ook toegang krijgen tot gegevens in externe volumes met behulp van cloudopslag-URI's.

Voorbeelden

--- 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