Collegamenti a OneLake

I collegamenti in Microsoft OneLake consentono di unificare i dati tra domini, cloud e account creando un singolo data lake virtuale per l'intera azienda. Tutte le esperienze di Infrastruttura e i motori analitici possono connettersi direttamente alle origini dati esistenti, ad esempio Azure, Amazon Web Services (AWS) e OneLake tramite uno spazio dei nomi unificato. OneLake gestisce tutte le autorizzazioni e le credenziali, quindi non è necessario configurare separatamente ogni esperienza di Infrastruttura per connettersi a ogni origine dati. Inoltre, è possibile usare i tasti di scelta rapida per eliminare le copie perimetrali dei dati e ridurre la latenza dei processi associati alle copie dei dati e alla gestione temporanea.

Che cosa sono i tasti di scelta rapida?

I collegamenti sono oggetti in OneLake che puntano ad altre posizioni di archiviazione. La posizione può essere interna o esterna a OneLake. La posizione a cui punta un collegamento è nota come percorso di destinazione del collegamento. Il percorso in cui viene visualizzato il collegamento è noto come percorso di collegamento. I collegamenti vengono visualizzati come cartelle in OneLake e qualsiasi esperienza o servizio che ha accesso a OneLake può usarli. I collegamenti si comportano come collegamenti simbolici. Sono un oggetto indipendente dalla destinazione. Se si elimina un collegamento, la destinazione rimane invariata. Se si sposta, si rinomina o si elimina un percorso di destinazione, il collegamento può interrompersi.

Diagramma che mostra come un collegamento connette file e cartelle archiviati in altri percorsi.

Dove è possibile creare collegamenti?

È possibile creare collegamenti in lakehouse e database Linguaggio di query Kusto (KQL). Inoltre, i collegamenti creati all'interno di questi elementi possono puntare ad altre posizioni di OneLake, Azure Data Lake Archiviazione (ADLS) Gen2, account di archiviazione Amazon S3 o Dataverse.

È possibile usare l'interfaccia utente di Fabric per creare collegamenti in modo interattivo ed è possibile usare l'API REST per creare collegamenti a livello di codice.

Lakehouse

Quando si creano collegamenti in un lakehouse, è necessario comprendere la struttura di cartelle dell'elemento. I lakehouse sono costituiti da due cartelle di primo livello: la cartella Tables e la cartella Files . La cartella Tables rappresenta la parte gestita del lakehouse, mentre la cartella Files è la parte non gestita della lakehouse. Nella cartella Tabelle è possibile creare collegamenti solo al livello superiore. I collegamenti non sono supportati in altre sottodirectory della cartella Tabelle . Se la destinazione del collegamento contiene dati nel formato Delta\Parquet, il lakehouse sincronizza automaticamente i metadati e riconosce la cartella come tabella. Nella cartella File non sono previste restrizioni sulla posizione in cui è possibile creare collegamenti. È possibile crearli a qualsiasi livello della gerarchia di cartelle. L'individuazione tabelle non viene eseguita nella cartella File .

Diagramma che mostra la visualizzazione Lake e la visualizzazione Tabella affiancata.

Database KQL

Quando si crea un collegamento in un database KQL, viene visualizzato nella cartella Collegamenti del database. Il database KQL gestisce collegamenti come tabelle esterne. Per eseguire una query sul collegamento, usare la external_table funzione del Linguaggio di query Kusto.

Screenshot dei collegamenti all'interno di un database KQL.

Dove è possibile accedere ai collegamenti?

Qualsiasi servizio Fabric o non Fabric in grado di accedere ai dati in OneLake può usare i collegamenti. I collegamenti sono trasparenti per qualsiasi servizio che accede ai dati tramite l'API OneLake. I collegamenti vengono visualizzati come un'altra cartella nel lago. Spark, SQL, Analisi in tempo reale e Analysis Services possono usare tutti i collegamenti per l'esecuzione di query sui dati.

Spark

I notebook Spark e i processi Spark possono usare i collegamenti creati in OneLake. I percorsi di file relativi possono essere usati per leggere direttamente i dati dai collegamenti. Inoltre, se si crea un collegamento nella sezione Tabelle del lakehouse e si trova nel formato Delta, è possibile leggerlo come tabella gestita usando la sintassi Spark SQL.

df = spark.read.format("delta").load("Tables/MyShortcut")
display(df)
df = spark.sql("SELECT * FROM MyLakehouse.MyShortcut LIMIT 1000")
display(df)

Nota

Il formato Delta non supporta tabelle con spazi nel nome. Qualsiasi collegamento contenente uno spazio nel nome non verrà individuato come tabella Delta nella lakehouse.

SQL

È anche possibile leggere i collegamenti nella sezione Tabelle di una lakehouse tramite l'endpoint di analisi SQL per il lakehouse. È possibile accedere all'endpoint di analisi SQL tramite il selettore di modalità del lakehouse o tramite SQL Server Management Studio (SSMS).

SELECT TOP (100) *
FROM [MyLakehouse].[dbo].[MyShortcut]

Analisi in tempo reale

I collegamenti nei database KQL vengono riconosciuti come tabelle esterne. Per eseguire una query sul collegamento, usare la external_table funzione del Linguaggio di query Kusto.

external_table('MyShortcut')
| take 100

Analysis Services

È possibile creare modelli semantici per i lakehouse contenenti collegamenti nella sezione Tabelle della lakehouse. Quando il modello semantico viene eseguito in modalità Direct Lake, Analysis Services può leggere i dati direttamente dal collegamento.

Non-Fabric

Le applicazioni e i servizi all'esterno di Fabric possono anche accedere ai collegamenti tramite l'API OneLake. OneLake supporta un subset delle API di archiviazione BLOB e ADLS Gen2. Per altre informazioni sull'API OneLake, vedere Accesso a OneLake con le API.

https://onelake.dfs.fabric.microsoft.com/MyWorkspace/MyLakhouse/Tables/MyShortcut/MyFile.csv

Tipi di tasti di scelta rapida

I collegamenti OneLake supportano più origini dati del file system. Sono incluse le posizioni interne di OneLake, Azure Data Lake Archiviazione (ADLS) Gen2, Amazon S3 e Dataverse.

Collegamenti interni a OneLake

I collegamenti interni di OneLake consentono di fare riferimento ai dati all'interno di elementi di Infrastruttura esistenti. Questi elementi includono lakehouse, database KQL e data warehouse. Il collegamento può puntare a una posizione della cartella all'interno dello stesso elemento, tra gli elementi all'interno della stessa area di lavoro o anche tra elementi in aree di lavoro diverse. Quando si crea un collegamento tra gli elementi, i tipi di elemento non devono corrispondere. Ad esempio, è possibile creare un collegamento in una lakehouse che punta ai dati in un data warehouse.

Quando un utente accede ai dati tramite un collegamento a un'altra posizione di OneLake, l'identità dell'utente chiamante viene usata per autorizzare l'accesso ai dati nel percorso di destinazione del collegamento*. L'utente deve disporre delle autorizzazioni nel percorso di destinazione per leggere i dati.

Importante

Quando si accede ai collegamenti tramite modelli semantici di Power BI o T-SQL, l'identità dell'utente chiamante non viene passata alla destinazione di scelta rapida. L'identità del proprietario dell'elemento chiamante viene invece passata, delegando l'accesso all'utente chiamante.

Collegamenti ADLS

È anche possibile creare collegamenti agli account di archiviazione di ADLS Gen2. Quando si creano collegamenti ad ADLS, il percorso di destinazione può puntare a qualsiasi cartella all'interno dello spazio dei nomi gerarchico. Come minimo, il percorso di destinazione deve includere un nome di contenitore.

Accesso

I collegamenti ADLS devono puntare all'endpoint DFS per l'account di archiviazione. Esempio: https://accountname.dfs.core.windows.net/

Se l'account di archiviazione è protetto da un firewall di archiviazione, è possibile configurare l'accesso al servizio attendibile. Vedere Accesso all'area di lavoro attendibile

Autorizzazione

I collegamenti ADLS usano un modello di autorizzazione delegato. In questo modello, l'autore dei collegamenti specifica una credenziale per il collegamento ADLS e tutto l'accesso a tale collegamento è autorizzato usando tale credenziale. I tipi delegati supportati sono account dell'organizzazione, chiave dell'account, firma di accesso condiviso e entità servizio.

  • Account aziendale: deve avere Archiviazione lettore di dati BLOB, Archiviazione Collaboratore dati BLOB o Archiviazione ruolo Proprietario dati BLOB nell'account di archiviazione
  • Firma di accesso condiviso : deve includere almeno le autorizzazioni seguenti: Lettura, Elenco ed Esecuzione
  • Entità servizio: deve avere Archiviazione lettore di dati BLOB, Archiviazione Collaboratore ai dati BLOB o Archiviazione ruolo Proprietario dati BLOB nell'account di archiviazione

Nota

È necessario che gli spazi dei nomi gerarchici siano abilitati nell'account di archiviazione di ADLS Gen 2.

Scelte rapide da S3

È anche possibile creare collegamenti agli account Amazon S3. Quando si creano collegamenti ad Amazon S3, il percorso di destinazione deve contenere almeno un nome di bucket. S3 non supporta in modo nativo gli spazi dei nomi gerarchici, ma è possibile usare i prefissi per simulare una struttura di directory. È possibile includere prefissi nel percorso di collegamento per restringere ulteriormente l'ambito dei dati accessibili tramite il collegamento. Quando si accede ai dati tramite un collegamento S3, i prefissi vengono rappresentati come cartelle.

Accesso

I collegamenti S3 devono puntare all'endpoint https per il bucket S3.

Esempio: https://bucketname.s3.region.amazonaws.com/

Nota

Non è necessario disabilitare l'impostazione Blocca accesso pubblico S3 per l'account S3 per il funzionamento del collegamento S3.

L'accesso all'endpoint S3 non deve essere bloccato da un firewall di archiviazione o da un cloud privato virtuale.

Autorizzazione

I collegamenti S3 usano un modello di autorizzazione delegato. In questo modello, l'autore dei collegamenti specifica una credenziale per il collegamento S3 e tutto l'accesso a tale collegamento è autorizzato usando tale credenziale. Le credenziali delegate supportate sono chiave e segreto per un utente IAM.

L'utente IAM deve disporre delle autorizzazioni seguenti per il bucket a cui punta il collegamento.

  • S3:GetObject
  • S3:GetBucketLocation
  • S3:ListBucket

Nota

I collegamenti S3 sono di sola lettura. Non supportano operazioni di scrittura indipendentemente dalle autorizzazioni per l'utente IAM.

Collegamenti a Google Cloud Archiviazione (anteprima)

È possibile creare collegamenti a Google Cloud Archiviazione (GCS) usando l'API XML per GCS. Quando si creano collegamenti a Google Cloud Archiviazione, il percorso di destinazione deve contenere almeno un nome di bucket. È anche possibile limitare l'ambito del collegamento specificando ulteriormente il prefisso o la cartella da puntare all'interno della gerarchia di archiviazione.

Accesso

Quando si configura la connessione per un collegamento GCS, è possibile specificare l'endpoint globale per il servizio di archiviazione o usare un endpoint specifico del bucket.

  • Esempio di endpoint globale: https://storage.googleapis.com
  • Esempio di endpoint specifico del bucket: https://<BucketName>.storage.googleapis.com

Autorizzazione

I collegamenti GCS usano un modello di autorizzazione delegato. In questo modello, l'autore dei collegamenti specifica una credenziale per il collegamento GCS e tutto l'accesso a tale collegamento è autorizzato usando tale credenziale. Le credenziali delegate supportate sono una chiave HMAC e un segreto per un account del servizio o un account utente.

L'account deve disporre dell'autorizzazione per accedere ai dati all'interno del bucket GCS. Se l'endpoint specifico del bucket è stato usato nella connessione per il collegamento, l'account deve disporre delle autorizzazioni seguenti:

  • storage.objects.get
  • stoage.objects.list

Se l'endpoint globale è stato usato nella connessione per il collegamento, l'account deve disporre anche dell'autorizzazione seguente:

  • storage.buckets.list

Nota

I tasti di scelta rapida GCS sono di sola lettura. Non supportano operazioni di scrittura indipendentemente dalle autorizzazioni per l'account usato.

Scelte rapide da dataverse

L'integrazione diretta di Dataverse con Microsoft Fabric consente alle organizzazioni di estendere le applicazioni aziendali e i processi aziendali di Dynamics 365 in Fabric. Questa integrazione viene eseguita tramite collegamenti, che possono essere creati in due modi: tramite il portale di PowerApps maker o direttamente tramite Fabric.

Creazione di collegamenti tramite il portale di PowerApps Maker

Gli utenti autorizzati di PowerApps possono accedere al portale di powerApps maker e usare la funzionalità Collega a Microsoft Fabric . Da questa singola azione, viene creato un lakehouse in Infrastruttura e i collegamenti vengono generati automaticamente per ogni tabella nell'ambiente Dataverse. Per altre informazioni, vedere Integrazione diretta di Dataverse con Microsoft Fabric.

Creazione di collegamenti tramite Infrastruttura

Gli utenti dell'infrastruttura possono anche creare collegamenti a Dataverse. Dall'esperienza utente crea collegamenti gli utenti possono selezionare Dataverse, specificare l'URL dell'ambiente e esplorare le tabelle disponibili. Questa esperienza consente agli utenti di scegliere in modo selettivo quali tabelle inserire in Fabric anziché inserire in tutte le tabelle.

Nota

Le tabelle di Dataverse devono essere disponibili prima di tutto in Dataverse Managed Lake prima che siano visibili nell'esperienza utente di creazione collegamenti di Fabric. Se le tabelle non sono visibili da Fabric, usare la funzionalità Collega a Microsoft Fabric dal portale di PowerApps maker.

Autorizzazione

I collegamenti a Dataverse usano un modello di autorizzazione delegato. In questo modello, l'autore dei collegamenti specifica una credenziale per il collegamento a Dataverse e tutto l'accesso a tale collegamento è autorizzato usando tale credenziale. Il tipo di credenziale delegato supportato è Account aziendale (OAuth2). L'account aziendale deve disporre dell'autorizzazione di amministratore di sistema per accedere ai dati in Dataverse Managed Lake.

Nota

Le entità servizio non sono attualmente supportate per l'autorizzazione del collegamento dataverse.

Memorizzazione nella cache

La memorizzazione nella cache dei collegamenti può essere usata per ridurre i costi di uscita associati all'accesso ai dati tra cloud. Man mano che i file vengono letti tramite un collegamento esterno, i file vengono archiviati in una cache per l'area di lavoro Infrastruttura. Le richieste di lettura successive vengono gestite dalla cache anziché dal provider di archiviazione remoto. I file memorizzati nella cache hanno un periodo di conservazione di 24 ore. Ogni volta che si accede al file, viene reimpostato il periodo di conservazione. Se il file nel provider di archiviazione remota è più recente del file nella cache, la richiesta viene servita dal provider di archiviazione remoto e il file aggiornato verrà archiviato nella cache. Se non è stato eseguito l'accesso a un file per più di 24 ore, viene eliminato dalla cache. I singoli file di dimensioni superiori a 1 GB non vengono memorizzati nella cache.

Nota

La memorizzazione nella cache dei collegamenti è attualmente supportata solo per i collegamenti compatibili con GCS, S3 e S3.

Per abilitare la memorizzazione nella cache per i collegamenti, aprire il pannello Impostazioni area di lavoro. Scegliere la scheda OneLake . Attivare o disattivare l'impostazione della cache su Sì e fare clic su Salva.

Screenshot del pannello delle impostazioni dell'area di lavoro con la scheda OneLake selezionata.

Utilizzo delle connessioni cloud da parte dei collegamenti

L'autorizzazione del collegamento ADLS e S3 viene delegata tramite connessioni cloud. Quando si crea un nuovo collegamento ADLS o S3, creare una nuova connessione o selezionare una connessione esistente per l'origine dati. L'impostazione di una connessione per un collegamento è un'operazione di associazione. Solo gli utenti con autorizzazione per la connessione possono eseguire l'operazione di associazione. Se non si dispone delle autorizzazioni per la connessione, non è possibile creare nuovi collegamenti usando tale connessione.

Autorizzazioni

Una combinazione delle autorizzazioni nel percorso di scelta rapida e il percorso di destinazione regolano le autorizzazioni per i collegamenti. Quando un utente accede a un collegamento, viene applicata l'autorizzazione più restrittiva delle due posizioni. Pertanto, un utente con autorizzazioni di lettura/scrittura nella lakehouse, ma solo le autorizzazioni di lettura nella destinazione del collegamento non possono scrivere nel percorso di destinazione del collegamento. Analogamente, un utente che dispone solo di autorizzazioni di lettura nella lakehouse, ma di lettura/scrittura nella destinazione del collegamento non può scrivere anche nel percorso di destinazione del collegamento.

Ruoli dell'area di lavoro

La tabella seguente illustra le autorizzazioni relative ai collegamenti per ogni ruolo dell'area di lavoro. Per altre informazioni, vedere Ruoli dell'area di lavoro.

Funzionalità Amministratore Member Collaboratore Visualizzatore
Creare un collegamento 1 1 1 -
Leggere il contenuto di file/cartelle di collegamento 2 2 2 -
Scrivere nella posizione di destinazione del collegamento 3 3 3 -
Leggere i dati dai collegamenti nella sezione della tabella del lakehouse tramite l'endpoint TDS

1 Gli utenti devono avere un ruolo che fornisce l'autorizzazione di scrittura per il percorso del collegamento e almeno l'autorizzazione di lettura nella posizione di destinazione.

2 Gli utenti devono avere un ruolo che fornisce l'autorizzazione di lettura sia nella posizione di collegamento che nella posizione di destinazione.

3 Gli utenti devono avere un ruolo che fornisce l'autorizzazione di scrittura sia nella posizione di collegamento che nella posizione di destinazione.

Ruoli di accesso ai dati OneLake (anteprima)

I ruoli di accesso ai dati di OneLake sono una nuova funzionalità che consente di applicare il controllo degli accessi in base al ruolo ai dati archiviati in OneLake. È possibile definire ruoli di sicurezza che concedono l'accesso in lettura a cartelle specifiche all'interno di un elemento di Fabric e assegnarli a utenti o gruppi. Le autorizzazioni di accesso determinano le cartelle visualizzate dagli utenti quando accedono alla visualizzazione lake dei dati, tramite l'esperienza utente, i notebook o le API OneLake di lakehouse. Per gli elementi con la funzionalità di anteprima abilitata, i ruoli di accesso ai dati di OneLake determinano anche l'accesso di un utente a un collegamento.

Gli utenti nei ruoli Amministrazione, Membro e Collaboratore hanno accesso completo alla lettura dei dati da un collegamento indipendentemente dai ruoli di accesso ai dati di OneLake definiti. Tuttavia, devono comunque accedere sia all'origine che alla destinazione del collegamento, come indicato in Ruoli dell'area di lavoro.

Gli utenti nel ruolo Visualizzatore o che avevano condiviso direttamente un lakehouse hanno accesso limitato in base a se l'utente ha accesso tramite un ruolo di accesso ai dati OneLake. Per altre informazioni sul modello di controllo di accesso con collegamenti, vedere Data Controllo di accesso Model in OneLake.

In che modo i collegamenti gestiscono le eliminazioni?

I collegamenti non eseguono eliminazioni a catena. Quando si esegue un'operazione di eliminazione su un collegamento, si elimina solo l'oggetto collegamento. I dati nella destinazione di scelta rapida rimangono invariati. Tuttavia, se si esegue un'operazione di eliminazione in un file o in una cartella all'interno di un collegamento e si dispone delle autorizzazioni nella destinazione di collegamento per eseguire l'operazione di eliminazione, i file e/o le cartelle vengono eliminati nella destinazione. Nell'esempio seguente viene illustrato questo argomento.

Esempio di eliminazione

L'utente A ha una lakehouse con il percorso seguente:

MyLakehouse\Files\MyShortcut\Foo\Bar

MyShortcut è un collegamento che punta a un account ADLS Gen2 che contiene le directory Foo\Bar .

Eliminazione di un oggetto collegamento

L'utente A esegue un'operazione di eliminazione nel percorso seguente:

MyLakehouse\Files\MyShortcut

In questo caso, MyShortcut viene eliminato dalla lakehouse. I collegamenti non eseguono eliminazioni a catena, pertanto i file e le directory nell'account ADLS Gen2 Foo\Bar rimangono invariati.

Eliminazione del contenuto a cui fa riferimento un collegamento

L'utente A esegue un'operazione di eliminazione nel percorso seguente:

MyLakehouse\Files\MyShortcut\Foo\Bar

In questo caso, se l'utente A dispone delle autorizzazioni di scrittura nell'account ADLS Gen2, la directory Barra viene eliminata dall'account ADLS Gen2.

Visualizzazione derivazione dell'area di lavoro

Quando si creano collegamenti tra più elementi di Infrastruttura all'interno di un'area di lavoro, è possibile visualizzare le relazioni di scelta rapida tramite la visualizzazione derivazione dell'area di lavoro. Selezionare il pulsante Visualizzazione derivazione ( ) nell'angolo superiore destro di Esplora aree di lavoro.

Screenshot della schermata di visualizzazione derivazione.

Nota

La visualizzazione di derivazione ha come ambito una singola area di lavoro. I collegamenti alle posizioni esterne all'area di lavoro selezionata non verranno visualizzati.

Limitazioni e considerazioni

  • Il numero massimo di collegamenti per ogni elemento di Fabric è 100.000. In questo contesto, il termine articolo si riferisce a: app, lakehouse, magazzini, report e altro ancora.
  • Il numero massimo di collegamenti in un singolo percorso di OneLake è 10.
  • Il numero massimo di collegamenti diretti ai collegamenti è 5.
  • I percorsi di destinazione dei collegamenti ADLS e S3 non possono contenere caratteri riservati dalla sezione 2.2 di RFC 3986. Per i caratteri consentiti, vedere la sezione 2.3 di RFC 3968.
  • I nomi dei collegamenti OneLake, i percorsi padre e i percorsi di destinazione non possono contenere caratteri "%" o "+".
  • I collegamenti non supportano caratteri non latini.
  • L'API Di copia BLOB non è supportata per i collegamenti ADLS o S3.
  • La funzione Copy non funziona sui collegamenti che puntano direttamente ai contenitori ADLS. È consigliabile creare collegamenti ADLS a una directory di almeno un livello inferiore a un contenitore.
  • Non è possibile creare collegamenti aggiuntivi all'interno di ADLS o S3.
  • La derivazione per i collegamenti ai data warehouse e ai modelli semantici non è attualmente disponibile.