共用方式為


OneLake 和 Azure Data Lake 儲存體 (ADLS) Gen2 API 同位

OneLake 支援與 Azure Data Lake 儲存體 (ADLS) Gen2 相同的 API,讓使用者能夠使用他們目前使用的工具,在 OneLake 中讀取、寫入及管理其資料。 由於 OneLake 是受控、邏輯資料湖,因此某些功能的管理方式與Azure 儲存體不同,而且 OneLake 不支援所有行為。 此頁面詳述這些差異,包括 OneLake 受控資料夾、API 差異,以及開放原始碼相容性。

受控 OneLake 資料夾

Fabric 租使用者中的工作區和資料項目會定義 OneLake 的結構。 透過網狀架構體驗管理工作區和專案 - OneLake 不支援透過 ADLS Gen2 API 建立、更新或刪除工作區或專案。 OneLake 只允許在工作區 (容器) 層級和租使用者 (帳戶) 層級進行 HEAD 呼叫,因為您必須在網狀架構管理入口網站中變更租使用者和工作區。

OneLake 也會針對 Fabric 專案強制執行資料夾結構,保護專案及其受管理的子資料夾,避免透過 ADLS Gen2 API 建立、刪除或重新命名。 網狀架構管理的資料夾包括專案中的最上層資料夾(例如 /MyLakehouse.lakehouse ),以及其中第一層的資料夾(例如 /MyLakehouse.lakehouse/Files /MyLakehouse.lakehouse/Tables )。

您可以在這些受控資料夾內建立的任何資料夾或檔案上執行 CRUD 作業,並在工作區和專案資料夾上執行唯讀作業。

不支援的要求標頭和參數

即使在使用者建立的檔案和資料夾中,OneLake 也會透過 ADLS Gen2 API 限制一些網狀架構管理作業。 您必須使用網狀架構體驗來更新許可權或編輯專案和工作區,而 Fabric 會管理其他選項,例如存取層。

OneLake 幾乎接受與 ADLS Gen2 相同的所有標頭,只忽略與 OneLake 上未省略動作相關的部分標頭。 由於這些標頭不會改變整個呼叫的行為,OneLake 會忽略禁用的標頭,並在新的 'x-ms-rejected-headers' 回應標頭中傳回標頭,並允許其餘的呼叫。 例如,OneLake 會忽略 PUT 呼叫中的 'x-ms-owner' 參數,因為 Fabric 和 OneLake 沒有與Azure 儲存體擁有使用者相同的概念。

OneLake 會拒絕包含未允許查詢參數的要求,因為查詢參數會變更整個呼叫的行為。 例如,使用 'setAccessControl' 參數的 UPDATE 呼叫會遭到封鎖,因為 OneLake 絕不支援透過Azure 儲存體 API 設定存取控制。

OneLake 不允許下列行為及其相關聯的要求標頭和 URI 參數:

  • 設定存取控制
    • URI 參數:
      • action:setAccessControl (要求已拒絕)
      • action:setAccessControlRecursive (要求拒絕)
    • 要求標頭:
      • x-ms-owner (已忽略標頭)
      • x-ms-group (忽略標頭)
      • x-ms-permissions (已忽略標頭)
      • x-ms-group (忽略標頭)
      • x-ms-acls (忽略標頭)
  • 設定加密範圍
    • 要求標頭:
      • x-ms-encryption-key (忽略標頭)
      • x-ms-encryption-key (忽略標頭)
      • x-ms-encryption-algorithm:AES256 (忽略標頭)
  • 設定存取層
    • 要求標頭:
      • x-ms-access-tier (忽略標頭)

回應標頭差異

由於 OneLake 使用與 ADLS Gen2 不同的許可權模型,因此與許可權相關的回應標頭會以不同的方式處理:

  • 'x-ms-owner' 和 'x-ms-group' 一律會傳回 '$superuser',因為 OneLake 沒有擁有使用者或群組
  • 'x-ms-permissions' 一律會傳回 '---------',因為 OneLake 沒有擁有使用者、群組或公用存取權限
  • 'x-ms-acl' 會以 'rwx' 格式傳回呼叫使用者轉換成 POSIX 存取控制清單 (ACL) 的 Fabric 許可權

開放原始碼整合

由於 OneLake 支援與 ADLS Gen2 相同的 API,因此許多與 ADLS Gen2 相容的 開放原始碼程式庫和套件可順暢地與 OneLake 搭配運作。 其他程式庫可能需要小型更新,才能容納 OneLake 端點或其他相容性問題。 由於最近的變更,下列程式庫已確認與 OneLake 相容。 這份清單並不詳盡:

範例

列出工作區中的專案

GET https://onelake.dfs.fabric.microsoft.com/myWorkspace?resource=filesystem&recursive=false

在 Lakehouse 內建立資料夾

PUT https://onelake.dfs.fabric.microsoft.com/myWorkspace/myLakehouse.Lakehouse/Files/newFolder/?resource=directory