我的數據呢?

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

操作

位置

UI數據上傳

對象存儲

DBFS文件上傳

對象存儲

上傳數據與自動加載器

對象存儲

上傳數據複製

對象存儲

創建表

對象存儲

使用Apache Spark保存數據

對象存儲

用熊貓保存數據

塊存儲

在筆記本電腦上從網上下載數據

塊存儲

什麼是對象存儲?

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

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

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

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

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

Databricks如何使用對象存儲?

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

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

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

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

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

什麼是塊存儲?

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

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

  • 隻要塊存儲卷存在,安裝到塊存儲卷上的文件和程序就會一直存在。

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

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

Databricks如何使用塊存儲?

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

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

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