Attivare la disponibilità di OneLake per una eventhouse

È possibile creare una copia logica dei dati del database KQL in una eventhouse attivando disponibilità di OneLake. Quando si attiva la disponibilità OneLake, è possibile eseguire query sui dati nel database KQL in formato Delta Lake tramite altri motori di Fabric, ad esempio la modalità Direct Lake in Power BI, Warehouse, Lakehouse, Notebooks e altro ancora. Delta Lake è il formato di tabella data lake unificato che rende possibile l'accesso ai dati senza problemi in tutti i motori di calcolo in Fabric.

Questo articolo illustra come attivare la disponibilità dei dati del database KQL in OneLake.

Quando la sincronizzazione dello schema e della disponibilità di OneLake è abilitata, è anche possibile usare Analizza dati con>endpoint SQL a livello di database per eseguire query sulla rappresentazione Delta Lake quasi in tempo reale tramite motori basati su SQL.

Quando la sincronizzazione dello schema e della disponibilità di OneLake è abilitata, è anche possibile usare Analizza dati con>endpoint SQL a livello di database per eseguire query sulla rappresentazione Delta Lake quasi in tempo reale tramite motori basati su SQL.

Funzionamento della disponibilità di OneLake per i database KQL

È possibile attivare la disponibilità di OneLake a livello di database o tabella. Se abilitata a livello di database, tutte le nuove tabelle e i relativi dati vengono resi disponibili in OneLake. Quando si attiva la funzionalità, è anche possibile scegliere di applicare questa opzione alle tabelle esistenti selezionando l'opzione applica alle tabelle esistenti per includere il riempimento cronologico. L'attivazione a livello di tabella rende disponibile solo la tabella e i relativi dati in OneLake. I criteri di conservazione dei dati del database KQL vengono applicati anche ai dati in OneLake. I dati rimossi dal database KQL alla fine del periodo di conservazione vengono rimossi anche da OneLake. Se si disattiva la disponibilità di OneLake, i dati vengono eliminati softmente da OneLake.

La sincronizzazione dello schema back-end mantiene la rappresentazione Delta Lake allineata al database KQL, consentendo l'esecuzione di query quasi in tempo reale tramite l'endpoint e i notebook SQL. Per il comportamento previsto di latenza e invio in batch, vedere Comportamento adattivo.

Quando la disponibilità di OneLake è attiva, non è possibile eseguire le azioni seguenti:

  • Rinominare le tabelle.
  • Modificare un tipo di colonna. È supportata l'aggiunta o l'eliminazione di una colonna.
  • Applica la sicurezza a livello di riga alle tabelle.
  • Eliminare, troncare o cancellare definitivamente i dati.

Se è necessario eseguire una di queste attività, seguire questa procedura:

  1. Disattivare la disponibilità di OneLake .
  2. Eseguire l'attività.
  3. Attivare la disponibilità di OneLake .

Importante

Disattivando la disponibilità di OneLake elimina temporaneamente i tuoi dati da OneLake. Quando si riattiva la disponibilità, tutti i dati sono disponibili in OneLake, incluso il riempimento cronologico.

Nota

Per informazioni sul tempo necessario per la visualizzazione dei dati in OneLake, vedere Comportamento adattivo. Non sono previsti costi di archiviazione aggiuntivi per attivare disponibilità di OneLake. Per maggiori informazioni, vedere Consumo di risorse.

Prerequisiti

Attivare la disponibilità di OneLake per un database o una tabella KQL

È possibile attivare la disponibilità di OneLake per un database KQL o una tabella.

  1. Selezionare un database o una tabella.

  2. Nella sezione OneLake del riquadro dei dettagli impostare Disponibilità su Abilitato.

    Schermata della sezione OneLake del riquadro dei dettagli del database che mostra l'opzione Disponibilità evidenziata.

  3. Nella finestra Abilita disponibilità OneLake selezionare Abilita.

    Schermata della finestra di abilitazione della disponibilità di OneLake che mostra l'opzione Applica alle tabelle esistenti.

  4. I dettagli del database o della tabella vengono aggiornati automaticamente.

    Screenshot della sezione OneLake dopo che la disponibilità è impostata su Abilitato. L'opzione per esporre i dati a OneLake è attivata.

Quando si attiva la disponibilità di OneLake nel database o nella tabella KQL, è possibile accedere a tutti i dati nel percorso OneLake specificato in formato Delta Lake. È anche possibile creare un collegamento OneLake a partire da una lakehouse o da un warehouse, oppure interrogare direttamente i dati tramite la modalità Direct Lake di Power BI. Con il di disponibilità di OneLake nel database KQL o nella tabella attivata, è ora possibile accedere a tutti i dati nel percorso OneLake specificato in formato Delta Lake. È anche possibile creare un collegamento OneLake da lakehouse, data warehouse o eseguire query sui dati direttamente tramite la modalità Direct Lake di Power BI.

Usa con le opzioni Analizzare i dati con

Quando la disponibilità di OneLake è abilitata, gli elementi del database Eventhouse e KQL espongono Analizza dati con opzioni a livello di database:

  • Endpoint SQL: disponibile quando la disponibilità di OneLake e la sincronizzazione dello schema sono abilitate.
  • Notebook: apre l'analisi basata su notebook per il database selezionato.

Se si disattiva la disponibilità di OneLake, l'opzione endpoint SQL viene rimossa da questo menu fino a quando non viene nuovamente abilitata.

Gestione adattiva dell'elaborazione in batch dei file Parquet

Un eventhouse raggruppa in modo intelligente i flussi di dati in ingresso in uno o più file Parquet strutturati per l'analisi. Raggruppare in batch i flussi di dati è importante quando si ha a che fare con dati che arrivano a piccoli incrementi, perché scrivere molti file Parquet di piccole dimensioni nel data lake può essere inefficiente. Questa inefficienza comporta costi più elevati e prestazioni di query scarse.

Il meccanismo adattivo dell'eventhouse può ritardare le operazioni di scrittura in OneLake se non sono presenti dati sufficienti per creare file Parquet ottimali. Questo comportamento garantisce che i file Parquet siano di dimensioni ottimali e rispettino le procedure consigliate di Delta Lake. Bilancia la necessità di richiedere la disponibilità dei dati con considerazioni sui costi e sulle prestazioni.

Latenza di scrittura predefinita e configurabile per la disponibilità di OneLake:

Setting Valore predefinito Intervallo consentito
Ritardo dell'operazione di scrittura (TargetLatencyInMinutes) Fino a 3 ore o fino a quando non vengono creati file di dimensioni sufficienti (in genere 200-256 MB) Da 5 minuti a 3 ore

Ad esempio, usare il comando Kusto seguente per impostare il ritardo di scrittura su 5 minuti per una singola tabella:

.alter-merge table <TableName> policy mirroring dataformat=parquet with (IsEnabled=true, TargetLatencyInMinutes=5);

Attenzione

La regolazione del ritardo in un periodo più breve potrebbe comportare una tabella delta non ottimale con un numero elevato di file di piccole dimensioni, che può causare prestazioni inefficienti delle query. La tabella risultante in OneLake è di sola lettura e non può essere ottimizzata dopo la creazione.

È possibile monitorare quanto tempo fa sono stati aggiunti nuovi dati nel lake controllando la latenza dei dati usando il .show table mirroring operations comando .

I risultati vengono misurati dall'ultima volta in cui sono stati aggiunti i dati. Quando la latenza restituisce 00:00:00, tutti i dati nel database KQL sono disponibili in OneLake.

Visualizzare i file Delta Lake in OneLake

Quando si abilita la disponibilità di OneLake su una tabella, il processo crea una cartella del log delta insieme agli eventuali file JSON e Parquet corrispondenti. È possibile visualizzare i file disponibili in OneLake e le relative proprietà rimanendo all'interno di Real-Time Intelligence.

  • Per visualizzare i file, passare il puntatore del mouse su una tabella nel riquadro Explorer e quindi selezionare il menu Altro [...]>Visualizza file.

    Screenshot del riquadro Explorer che mostra il menu a tendina Altro di una tabella.

  • Per visualizzare le proprietà della cartella del log delta o dei singoli file, passare il puntatore del mouse sulla cartella o sul file e quindi selezionare il menù Altro [...]>Proprietà.

  • Per visualizzare i file nella cartella di log delta:

    1. Selezionare la cartella _delta_log.
    2. Selezionare un file per visualizzare i metadati e lo schema della tabella. L'editor aperto è in formato di sola lettura.

Accedere ai criteri di mirroring di OneLake

Per impostazione predefinita, quando si attiva la disponibilità di OneLake per un database o una tabella KQL, il sistema abilita un criterio di mirroring. È possibile usare i criteri di mirroring per monitorare la latenza dei dati o modificarla in tabelle differenziali di partizione.

Nota

Se si disattiva la disponibilità di OneLake, la proprietà del criterio di mirroring IsEnabled è impostata su false (IsEnabled=false).

Partizionare le tabelle Delta in OneLake

È possibile partizionare le tabelle delta per migliorare la velocità delle query. Per informazioni su quando partizionare i file OneLake, vedere Quando partizionare le tabelle. Ogni partizione è rappresentata come colonna separata utilizzando l'oggetto PartitionName elencato nell'elenco Partitions . Questa rappresentazione indica che la copia di OneLake contiene più colonne rispetto alla tabella di origine.

Per partizionare le tabelle delta, usare il .alter-merge table policy mirroring comando .

Eseguire query sulle tabelle Delta da un notebook di Fabric

È possibile usare Fabric Notebook per leggere i dati di OneLake usando il frammento di codice seguente.

Tip

È possibile avviare un notebook di Fabric nuovo o esistente direttamente da Analizza i dati con>Notebook su un database Eventhouse o KQL. Il notebook si collega automaticamente al contesto del database selezionato. Usare l'esempio di codice seguente quando si vuole l'accesso manuale basato sul percorso.

Nel frammento di codice sostituire <workspaceGuid>, <workspaceGuid>e <tableName> con i propri valori.

delta_table_path = 'abfss://<workspaceGuid>@onelake.dfs.fabric.microsoft.com/<eventhouseGuid>/Tables/<tableName>'

df = spark.read.format("delta").load(delta_table_path)

df.show()

Nota

Per un database di Esplora dati di Azure, usare questo codice:

delta_table_path = 'abfss://<workspaceName>@onelake.dfs.fabric.microsoft.com/<itemName>.KustoDatabase/Tables/<tableName>'