Parità dell'API OneLake e Azure Data Lake Storage (ADLS) Gen2
OneLake supporta le stesse API di Azure Data Lake Storage (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 ad 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 Fabric: 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 da Fabric 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 della richiesta non supportati
Anche nei file e nelle cartelle creati dall'utente, OneLake limita alcune operazioni di gestione di Fabric tramite le API di ADLS Gen2. È necessario usare le esperienze di Fabric 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 vietate, le restituisce in una nuova intestazione della 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 utenti proprietari di Archiviazione di Azure.
OneLake rifiuta le richieste contenenti parametri di query non consentiti 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:
- Configurare il controllo di accesso
- Parametro URI:
- azione: setAccessControl (Richiesta rifiutata)
- azione: 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)
- Parametro URI:
- Impostare 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)
- Intestazioni della richiesta:
- Impostare il livello di accesso
- Intestazioni della richiesta:
- x-ms-access-tier (intestazione ignorata)
- Intestazioni della richiesta:
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' restituiscono 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 convertite 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
Elemento dell'elenco 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 un lakehouse
PUT https://onelake.dfs.fabric.microsoft.com/myWorkspace/myLakehouse.Lakehouse/Files/newFolder/?resource=directory