Condividi tramite


Connessione a Microsoft OneLake

Microsoft OneLake offre l'accesso aperto a tutti gli elementi di Fabric tramite le API e gli SDK di Azure Data Lake Storage Gen2 esistenti. È possibile accedere ai dati in OneLake tramite qualsiasi API, SDK o strumento compatibile con ADLS Gen2 usando invece un URI OneLake. È possibile caricare dati in un lakehouse tramite Archiviazione di Azure Explorer oppure leggere una tabella delta tramite un collegamento da Azure Databricks.

Poiché OneLake è un software come servizio (SaaS), alcune operazioni, ad esempio la gestione delle autorizzazioni o l'aggiornamento degli elementi, devono essere eseguite tramite esperienze di Infrastruttura anziché le API DI ADLS Gen2. Per un elenco completo delle modifiche apportate a queste API, vedere Parità dell'API OneLake.

Sintassi URI

Poiché OneLake esiste nell'intero tenant di Microsoft Fabric, è possibile fare riferimento a qualsiasi elemento nel tenant in base all'area di lavoro, all'elemento e al percorso:

https://onelake.dfs.fabric.microsoft.com/<workspace>/<item>.<itemtype>/<path>/<fileName>

Nota

Poiché è possibile riutilizzare i nomi degli elementi in più tipi di elemento, è necessario specificare il tipo di elemento nell'estensione. Ad esempio, .lakehouse per un lakehouse e .datawarehouse per un magazzino.

OneLake supporta anche il riferimento a aree di lavoro ed elementi con identificatori univoci globali (GUID). OneLake assegna GUID e GUID non cambiano, anche se l'area di lavoro o il nome dell'elemento cambia. È possibile trovare il GUID associato per l'area di lavoro o l'elemento nell'URL nel portale di Fabric. È necessario usare i GUID sia per l'area di lavoro che per l'elemento e non è necessario il tipo di elemento.

https://onelake.dfs.fabric.microsoft.com/<workspaceGUID>/<itemGUID>/<path>/<fileName>

Quando si adotta uno strumento per l'uso su OneLake invece di ADLS Gen2, usare il mapping seguente:

  • Il nome dell'account è sempre onelake.
  • Il nome del contenitore è il nome dell'area di lavoro.
  • Il percorso dati inizia dall'elemento. Ad esempio: /mylakehouse.lakehouse/Files/.

OneLake supporta anche il driver del file system BLOB di Azure (ABFS) per una maggiore compatibilità con ADLS Gen2 e Archiviazione BLOB di Azure. Il driver ABFS usa il proprio identificatore abfs di schema e un formato URI diverso per indirizzare file e directory negli account ADLS Gen2. Per usare questo formato URI su OneLake, scambiare l'area di lavoro per il file system e includere l'elemento e il tipo di elemento.

abfs[s]://<workspace>@onelake.dfs.fabric.microsoft.com/<item>.<itemtype>/<path>/<fileName>

L'URI del driver abfs non consente caratteri speciali, ad esempio spazi, nel nome dell'area di lavoro. In questi casi, è possibile fare riferimento a aree di lavoro ed elementi con gli identificatori univoci globali (GUID) come descritto in precedenza in questa sezione.

Autorizzazione

È possibile autenticare le API OneLake usando l'ID Microsoft Entra passando un'intestazione di autorizzazione. Se uno strumento supporta l'accesso all'account Azure per abilitare il pass-through dei token, è possibile selezionare qualsiasi sottoscrizione. OneLake richiede solo il token utente e non si preoccupa della sottoscrizione di Azure.

Quando si chiama OneLake direttamente tramite API DFS, è possibile eseguire l'autenticazione con un token di connessione per l'account Microsoft Entra. Per altre informazioni sulla richiesta e sulla gestione dei token di connessione per l'organizzazione, vedere Microsoft Authentication Library.

Per un test rapido e ad hoc di OneLake usando chiamate API dirette, ecco un semplice esempio che usa PowerShell per accedere all'account Azure, recuperare un token con ambito di archiviazione e copiarlo negli Appunti per un uso semplice altrove. Per altre informazioni sul recupero dei token di accesso tramite PowerShell, vedere Get-AzAccessToken.

Nota

OneLake supporta solo i token nel Storage gruppo di destinatari. Nell'esempio seguente il gruppo di destinatari viene impostato tramite il ResourceTypeName parametro .

Connect-AzAccount
$testToken = Get-AzAccessToken -ResourceTypeName Storage
$testToken.Token | Set-Clipboard

Residenza dei dati

Se si usa l'endpoint globale ('https://onelake.dfs.fabric.microsoft.com) per eseguire query sui dati in un'area diversa dall'area dell'area di lavoro, è possibile che i dati possano lasciare l'area durante il processo di risoluzione degli endpoint. Se si è preoccupati per la residenza dei dati, l'uso dell'endpoint regionale corretto per l'area di lavoro garantisce che i dati rimangano all'interno dell'area corrente e non attraversino alcun limite a livello di area. È possibile individuare l'endpoint a livello di area corretto controllando l'area della capacità a cui è collegata l'area di lavoro.

Gli endpoint a livello di area di OneLake seguono tutti lo stesso formato: https://<region>-onelake.dfs.fabric.microsoft.com. Ad esempio, un'area di lavoro collegata a una capacità nell'area Stati Uniti occidentali sarebbe accessibile tramite l'endpoint https://westus-onelake.dfs.fabric.microsoft.comregionale .

Problemi comuni

Se uno strumento o un pacchetto compatibile con ADLS Gen2 non funziona su OneLake, il problema più comune è la convalida degli URL. Poiché OneLake usa un endpoint diverso (dfs.fabric.microsoft.com) rispetto ad ADLS Gen2 (dfs.core.windows.net), alcuni strumenti non riconoscono l'endpoint OneLake e lo bloccano. Alcuni strumenti consentono di usare endpoint personalizzati, ad esempio PowerShell. In caso contrario, è spesso una semplice correzione per aggiungere l'endpoint di OneLake come endpoint supportato. Se viene rilevato un problema di convalida dell'URL o si verificano altri problemi di connessione a OneLake, segnalarlo.

Esempi

Crea file

Richiedi METTERE https://onelake.dfs.fabric.microsoft.com/{workspace}/{item}.{itemtype}/Files/sample?resource=file
Intestazioni Authorization: Bearer <userAADToken>
Response ResponseCode: 201 Created
Intestazioni:
x-ms-version : 2021-06-08
x-ms-request-id : 272526c7-0995-4cc4-b04a-8ea3477bc67b
x-ms-content-crc64 : OAJ6r0dQWP0=
x-ms-request-server-encrypted : true
ETag : 0x8DA58EE365
Corpo: