磁碟區和工作區檔案中的檔案建議
當您上傳或儲存資料或檔案至 Azure Databricks 時,您可以選擇使用 Unity 目錄磁碟區或工作區檔案來儲存這些檔案。 本文包含使用這些位置的建議和需求。 如需磁碟區和工作區檔案的詳細資料,請參閱什麼是 Unity 目錄磁碟區?和什麼是工作區檔案?。
Databricks 建議使用 Unity 目錄磁碟區來儲存資料、程式庫和組建成品。 將筆記本、SQL 查詢和程式碼檔案儲存為工作區檔案。 您可以將工作區檔案目錄設定為 Git 資料夾,以便與遠端 Git 存放庫同步。 請參閱 Databricks Git 資料夾的 Git 整合。 用於測試案例的小型資料檔案也可以儲存為工作區檔案。
下表提供檔案的特定建議,視您的檔案或特徵需求類型而定。
重要
Databricks 檔案系統 (DBFS) 也可用於檔案儲存空間,但不建議使用,因為所有工作區使用者都可以存取 DBFS 中的檔案。 請參閱 DBFS。
檔案類型
下表提供檔案類型的儲存體建議。 除了此資料表中作為範例提供的檔案格式以外,Databricks 還支援許多檔案格式。
檔案類型 | 建議 |
---|---|
Databricks 物件,例如筆記本和查詢 | 儲存為工作區檔案 |
結構化資料檔案,例如 Parquet 檔案和 ORC 檔案 | 儲存在 Unity 目錄磁碟區中 |
半結構化資料檔案,例如文字檔 (.csv 、.txt ) 和 JSON 檔案 (.json ) |
儲存在 Unity 目錄磁碟區中 |
非結構化資料檔案,例如影像檔案 (.png 、.svg )、音訊檔案 (.mp3 ) 和文件檔案 (.pdf 、.docx ) |
儲存在 Unity 目錄磁碟區中 |
用於臨機操作或早期資料探索的原始資料檔案 | 儲存在 Unity 目錄磁碟區中 |
操作資料,例如記錄檔 | 儲存在 Unity 目錄磁碟區中 |
大型封存檔案,例如 ZIP 檔案 (.zip ) |
儲存在 Unity 目錄磁碟區中 |
原始程式碼檔案,例如 Python 檔案 (.py )、JAVA 檔案 (.java ) 和 Scala 檔案 (.scala ) |
如果適用,請儲存為工作區檔案,並搭配其他相關物件,例如筆記本和查詢。 Databricks 建議在 Git 資料夾中管理這些檔案,以進行版本控制及變更追蹤這些檔案。 |
組建成品和程式庫,例如 Python Wheel (.whl ) 和 JAR 檔案 (.jar ) |
儲存在 Unity 目錄磁碟區中 |
組態檔 | 在 Unity 目錄磁碟區中儲存跨工作區所需的設定檔,但如果它們是 Git 資料夾中的專案檔,則將其儲存為工作區檔案。 |
特徵比較
下表比較工作區檔案和 Unity 目錄磁碟區的特徵供應項目。
功能 | 工作區檔案 | Unity 目錄磁碟區 |
---|---|---|
檔案存取 | 工作區檔案只能在相同的工作區內互相存取。 | 檔案可跨工作區全域存取。 |
程式存取 | 使用下列項目來存取檔案: - Spark API - FUSE - dbutils - REST API - Databricks SDK - Databricks CLI |
使用下列項目來存取檔案: - Spark API - FUSE - dbutils - REST API - Databricks SDK - Databricks SQL 連接器 - Databricks CLI - Databricks Terraform 提供者 |
Databricks Asset Bundles | 根據預設,套件組合中的所有檔案 (包括程式庫和 Databricks 物件,例如筆記本和查詢),都會安全地部署為工作區檔案。 權限會在套件組合組態中定義。 | 當程式庫超過工作區檔案的大小限制時,可以自訂套件組合以包含已在磁碟區中的程式庫。 請參閱 Databricks Asset Bundles 程式庫相依性。 |
檔案權限等級 | 如果檔案位於 Git 資料夾中,則權限位於 Git 資料夾層級,否則權限會在檔案層級設定。 | 權限位於磁碟區層級。 |
權限管理 | 權限是由工作區 ACL 管理,且僅限於包含的工作區。 | 中繼資料和權限是由 Unity 目錄管理的。 這些權限適用於所有可存取目錄的工作區。 |
外部儲存體裝載 | 不支援裝載外部儲存體 | 藉由建立外部磁碟區,提供指向外部儲存體上的既有資料集的選項。 請參閱Unity Catalog 磁碟區是什麼?。 |
UDF 支援 | 不支援 | 使用磁碟區 FUSE 支援從 UDF 撰寫 |
檔案大小 | 儲存小於 500 MB 的較小檔案,例如筆記本所需的原始程式碼檔案 (.py 、.md 、.yml )。 |
依照雲端服務提供者決定的限制,儲存非常大的資料檔案。 |
上傳和下載 | 支援最大 10MB 的上傳和下載。 | 支援最大 5GB 的上傳和下載。 |
資料表建立支援 | 無法使用工作區檔案作為位置來建立資料表。 | 您可以透過執行 COPY INTO 、自動換片器,或將資料內嵌至 Databricks Lakehouse中所述的其他選項,從磁碟區中的檔案建立資料表。 |
目錄結構和檔案路徑 | 檔案會在巢狀目錄中進行組織,每個目錄都有自己的權限模型: - 使用者主目錄,工作區中每個使用者和服務主體各一個 - Git 資料夾 - 共用 |
檔案會在磁碟區內的巢狀目錄中進行組織 請參閱如何在 Unity 目錄中存取資料?。 |
檔案歷程記錄 | 使用工作區內的 Git 資料夾 來追蹤檔案變更。 | 稽核記錄可供使用。 |