Condividi tramite


Parità dell'API OneLake e Azure Data Lake Storage (ADLS)

OneLake supporta le stesse API di Azure Data Lake Storage (ADLS) e Archiviazione BLOB di Azure, 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 infrastruttura: OneLake non supporta la creazione, l'aggiornamento o l'eliminazione di aree di lavoro o elementi tramite le API ADLS. 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 ADLS e LE API BLOB. 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 dell'infrastruttura tramite le API ADLS. È 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 Storage, 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)
  • 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)
  • 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, 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 e archiviazione BLOB, molte librerie e pacchetti open source compatibili con ADLS e Archiviazione BLOB funzionano perfettamente con OneLake( ad esempio, Azure Storage Explorer). 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 (ADLS)

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

Elencare gli elementi all'interno di un'area di lavoro (BLOB)

GET  https://onelake.blob.fabric.microsoft.com/myWorkspace?restype=container&comp=list&delimiter=%2F

Creare una cartella all'interno di una lakehouse (ADLS)

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

Ottenere le proprietà del BLOB (BLOB)

HEAD  https://onelake.blob.fabric.microsoft.com/myWorkspace/myLakehouse.Lakehouse/Files/file.txt