Condividi tramite


Parità api OneLake e Azure Data Lake Archiviazione (ADLS) Gen2

OneLake supporta le stesse API di Azure Data Lake Archiviazione (ADLS) Gen2, consentendo agli utenti di leggere, scrivere e gestire i dati in OneLake con gli strumenti già usati oggi. Poiché OneLake è un data lake gestito e logico, alcune funzionalità vengono gestite in modo diverso rispetto a in Archiviazione di Azure e non tutti i comportamenti sono supportati su OneLake. Questa pagina descrive in dettaglio queste differenze, tra cui cartelle gestite di OneLake, differenze api e compatibilità open source.

Cartelle di OneLake gestite

Le aree di lavoro e gli elementi di dati nel tenant di Fabric definiscono la struttura di OneLake. La gestione di aree di lavoro ed elementi viene eseguita tramite esperienze di infrastruttura: OneLake non supporta la creazione, l'aggiornamento o l'eliminazione di aree di lavoro o elementi tramite le API di ADLS Gen2. OneLake consente solo chiamate HEAD a livello di area di lavoro (contenitore) e tenant (account), perché è necessario apportare modifiche al tenant e alle aree di lavoro nel portale di amministrazione dell'infrastruttura.

OneLake applica anche una struttura di cartelle per gli elementi di Fabric, proteggendo gli elementi e le relative sottocartelle gestite dalla creazione, dall'eliminazione o dalla ridenominazione tramite le API di ADLS Gen2. Le cartelle gestite dall'infrastruttura includono la cartella di primo livello in un elemento (ad esempio, /MyLakehouse.lakehouse) e il primo livello di cartelle al suo interno (ad esempio, /MyLakehouse.lakehouse/Files e /MyLakehouse.lakehouse/Tables).

È possibile eseguire operazioni CRUD su qualsiasi cartella o file creato all'interno di queste cartelle gestite ed eseguire operazioni di sola lettura sulle cartelle dell'area di lavoro e degli elementi.

Intestazioni e parametri di richiesta non supportati

Anche nei file e nelle cartelle creati dall'utente, OneLake limita alcune operazioni di gestione dell'infrastruttura tramite le API di ADLS Gen2. È necessario usare le esperienze di Infrastruttura per aggiornare le autorizzazioni o modificare elementi e aree di lavoro e Fabric gestisce altre opzioni, ad esempio i livelli di accesso.

OneLake accetta quasi tutte le stesse intestazioni di ADLS Gen2, ignorando solo alcune intestazioni correlate alle azioni non eseguite in OneLake. Poiché queste intestazioni non modificano il comportamento dell'intera chiamata, OneLake ignora le intestazioni escluse, le restituisce in una nuova intestazione di risposta "x-ms-rejected-headers" e consente il resto della chiamata. Ad esempio, OneLake ignora il parametro "x-ms-owner" in una chiamata PUT perché Fabric e OneLake non hanno lo stesso concetto di proprietario degli utenti come Archiviazione di Azure.

OneLake rifiuta le richieste contenenti parametri di query non allocato perché i parametri di query modificano il comportamento dell'intera chiamata. Ad esempio, le chiamate UPDATE con il parametro 'setAccessControl' vengono bloccate perché OneLake non supporta mai l'impostazione del controllo di accesso tramite le API di Archiviazione di Azure.

OneLake non consente i comportamenti seguenti e le intestazioni di richiesta e i parametri URI associati:

  • Impostare il controllo di accesso
    • Parametro URI:
      • action: setAccessControl (Richiesta rifiutata)
      • action: setAccessControlRecursive (Richiesta rifiutata)
    • Intestazioni della richiesta:
      • x-ms-owner (intestazione ignorata)
      • x-ms-group (intestazione ignorata)
      • x-ms-permissions (intestazione ignorata)
      • x-ms-group (intestazione ignorata)
      • x-ms-acls (intestazione ignorata)
  • Impostare l'ambito di crittografia
    • Intestazioni della richiesta:
      • x-ms-encryption-key (intestazione ignorata)
      • x-ms-encryption-key (intestazione ignorata)
      • x-ms-encryption-algorithm:AES256 (intestazione ignorata)
  • Impostare il livello di accesso
    • Intestazioni della richiesta:
      • x-ms-access-tier (intestazione ignorata)

Differenze di intestazione della risposta

Poiché OneLake usa un modello di autorizzazione diverso da ADLS Gen2, le intestazioni di risposta correlate alle autorizzazioni vengono gestite in modo diverso:

  • 'x-ms-owner' e 'x-ms-group' restituisce sempre '$superuser' perché OneLake non dispone di utenti o gruppi proprietari
  • 'x-ms-permissions' restituisce sempre '---------' perché OneLake non dispone di autorizzazioni di accesso pubblico, gruppi o utenti proprietari
  • 'x-ms-acl' restituisce le autorizzazioni fabric per l'utente chiamante convertito in un elenco di controllo di accesso POSIX (ACL), nel formato 'rwx'

Integrazione open source

Poiché OneLake supporta le stesse API di ADLS Gen2, molte librerie e pacchetti open source compatibili con ADLS Gen2 funzionano perfettamente con OneLake. Altre librerie possono richiedere aggiornamenti di piccole dimensioni per supportare gli endpoint OneLake o altri problemi di compatibilità. Le librerie seguenti sono confermate compatibili con OneLake a causa di modifiche recenti. Questo elenco non è esaustivo:

Esempi

Elencare gli elementi all'interno di un'area di lavoro

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

Creare una cartella all'interno di una lakehouse

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