Volumes
適用於: Databricks SQL Databricks Runtime 13.3 LTS 和更新版本, Unity Catalog 相關版本。
Volumes 是 Unity Catalog 物件,代表雲端物件儲存位置中記憶體的邏輯磁碟區。 Volumes 提供存取、儲存、控管及組織檔案的功能。 雖然 tables 提供表格式數據集的控管,volumes 新增非表格式數據集的治理。 您可以使用 volumes 以任何格式儲存和存取檔案,包括結構化、半結構化和非結構化數據。
Volumes 是 tables、views和其他在 Unity Catalog中被組織在 schema 下的物件的同層級。
磁碟區可以管理或外部。
如需詳細資訊和限制,請參閱 什麼是 Unity Catalogvolumes?。
受控磁碟區
受控磁碟區是 Unity Catalog控管的記憶體磁碟區,該磁碟區是在包含 schema的受控儲存位置內建立的。 受控 volumes 允許建立控管的儲存空間,以使用檔案,而不需要外部位置和儲存空間 credentials的額外負擔。 建立受控磁碟區時,您不需要指定位置,而且受控 volumes 中數據的所有檔案存取都是透過 Unity 管理的路徑 Catalog。
外部磁碟區
外部儲存磁碟區是在外部位置的目錄中註冊的,由 Unity Catalog控管的儲存磁碟區。
磁碟區命名和參考
磁碟區名稱 是 identifier,可在 SQL 命令中使用 catalog 和 schema 名稱來限定。
volumes 存取檔案的路徑會使用下列格式:
/Volumes/<catalog_identifier>/<schema_identifier>/<volume_identifier>/<path>/<file_name>
請注意,Azure Databricks 會將標識符正規化為小寫。
Azure Databricks 也支持選擇性 dbfs:/
配置,因此下列路徑也有效:
dbfs:/Volumes/<catalog_identifier>/<schema_identifier>/<volume_identifier>/<path>/<file_name>
注意
您也可以使用雲端記憶體 URI 存取外部 volumes 中的數據。
在 volumes 中管理檔案
適用於: Databricks SQL 連接器
使用 Databricks SQL 連接器,您可以使用下列命令來管理 volumes 中的檔案:
範例
--- 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