我的數據呢?

Databricks使用共享責任模型來創建、配置和訪問雲帳戶中的塊存儲卷和對象存儲位置。將數據加載到Databricks或使用Databricks保存數據會導致文件存儲在塊存儲或對象存儲中。下麵的矩陣提供了一個快速參考:

操作

位置

用戶界麵數據上傳

對象存儲

DBFS文件上傳

對象存儲

上傳數據與自動加載器

對象存儲

上傳數據複製

對象存儲

創建表

對象存儲

使用Apache Spark保存數據

對象存儲

用pandas保存數據

塊存儲

從網上下載數據在一個筆記本

塊存儲

什麼是對象存儲?

在雲計算中,對象存儲或blob存儲是指將數據作為對象維護的存儲容器,每個對象由數據、元數據和全局唯一資源標識符(URI)組成。對象存儲中的數據操作操作通常僅限於通過REST API接口創建、讀取、更新和刪除(CRUD)。一些對象存儲產品包括版本控製和生命周期管理等特性。對象存儲具有以下優點:

  • 高可用性、持久性和可靠性。

  • 與大多數其他存儲選項相比,存儲成本更低。

  • 無限可擴展(受雲的給定區域中可用存儲總量的限製)。

大多數基於雲的數據湖都是建立在雲對象存儲中的開源數據格式之上的。

Databricks如何使用對象存儲?

對象存儲是Databricks用於大多數操作的主要存儲形式。Databricks文件係統(DBFS)允許Databricks用戶與對象存儲中的文件進行交互,就像他們在任何其他文件係統中進行交互一樣。除非您專門針對類配置表外部數據係統,所有在Databricks中創建的表都將數據存儲在雲對象存儲中。

存儲在雲對象存儲中的Delta Lake文件為Databricks Lakehouse提供了數據基礎。

如何為Databricks配置雲對象存儲?

Databricks使用雲對象存儲來存儲數據文件和數據表。在工作空間部署期間,Databricks配置一個雲對象存儲位置,稱為DBFS根。您可以在您的帳戶中配置與其他雲對象存儲位置的連接。

在幾乎所有情況下,在Databricks上使用Apache Spark與之交互的數據文件都存儲在雲對象存儲中。有關配置連接的指導,請參閱以下文章:

什麼是塊存儲?

在雲計算中,塊存儲或磁盤存儲是指與傳統硬盤驅動器(hdd)或固態驅動器(ssd)相對應的存儲卷,也簡稱為“硬盤”。在雲計算環境中部署塊存儲時,通常部署一個或多個物理驅動器的邏輯分區。不同產品和雲供應商之間的實現略有不同,但在不同的實現中通常可以發現以下特征:

  • 所有虛擬機都需要掛載塊存儲卷。

  • 安裝到塊存儲卷上的文件和程序會隨著該塊存儲卷的存在而持續存在。

  • 塊存儲卷通常用於臨時數據存儲。

  • 虛擬機掛載的塊存儲卷通常會隨虛擬機一起被刪除。

Databricks如何使用塊存儲?

當您開啟計算資源時,Databricks負責虛擬機的配置部署和塊存儲卷的掛載。此塊存儲用於存儲計算生命周期內的臨時數據文件。這些文件包括操作係統和已安裝的庫,以及程序使用的數據磁盤高速緩存。雖然Apache Spark在後台使用塊存儲來實現高效的並行化和數據加載,但在Databricks上運行的大多數代碼並不直接將數據保存或加載到塊存儲中。

您可以運行任意代碼,例如Python或Bash命令,它們使用附加到驅動程序節點的塊存儲。看到訪問驅動文件係統上的文件

在啟用了工作區文件的工作區中,Python用戶可以保存和加載與筆記本一起存儲的數據和文件,而不需要與驅動程序上的塊存儲進行交互。看到以編程方式與工作空間文件交互