共用方式為


音量

適用於:檢查標示為 [是] 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 連接器,您可以使用下列命令來管理磁碟區中的檔案:

  • PUT INTO 將檔案從本機記憶體複製到磁碟區。
  • GET 將檔案從磁碟區複製到本機記憶體。
  • REMOVE 從磁碟區中移除檔案。

範例

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