適用於:
Databricks SQL
Databricks Runtime 13.3 LTS 和更新版本
僅限 Unity Catalog
儲存體是 Unity Catalog 的物件,代表雲端物件儲存位置中的邏輯儲存體。 磁碟區提供存取、儲存、控管和組織檔案的功能。 雖然數據表提供表格式數據集的控管,但磁碟區提供非表格式數據集的控管。 您可以使用磁碟區,以任何格式儲存和存取檔案,包括結構化、半結構化和非結構化數據。
在 Unity Catalog 架構中,Volume 和表格、視圖及其他物件同屬於一個架構下的對等結構。
磁碟區可以是可管理的或外部的。
如需詳細資訊和限制,請參閱 什麼是 Unity 目錄磁碟區?。
管理的磁碟區
受管控的磁碟區是在包含架構的受控儲存位置內建立的,由 Unity 目錄進行控管的儲存磁碟區。 受控磁碟區允許建立受控記憶體以處理檔案,而不需要外部位置和記憶體認證的額外負荷。 建立受控磁碟區時,您不需要指定位置,而且受控磁碟區中數據的所有檔案存取都是透過 Unity 目錄所管理的路徑。
外部音量
外部儲存磁碟區是 Unity Catalog 控管的儲存磁碟區,並在外部位置中的目錄中註冊。
磁碟區命名和引用
磁碟區名稱 是 識別符號,可以在 SQL 命令中以目錄和架構名稱加以限定。
存取磁碟區中檔案的路徑會使用下列格式:
/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 存取外部磁碟區中的數據。
管理磁碟區中的檔案
適用於:
Databricks SQL 連接器
使用 Databricks SQL 連接器,您可以使用下列命令來管理磁碟區中的檔案:
範例
--- 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