Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo descrive come visualizzare la derivazione dei dati usando Esplora cataloghi, le tabelle di sistema di derivazione dei dati e l'API REST.
Panoramica della derivazione dei dati
Unity Catalog acquisisce la derivazione dei dati di runtime tra query eseguite in Azure Databricks. La lineage è supportata per tutte le lingue ed è registrata fino al livello di colonna. I dati di derivazione includono notebook, processi di lavoro e dashboard inerenti alla query. La derivazione può essere visualizzata in Esplora cataloghi quasi in tempo reale e recuperata a livello di codice usando le tabelle di sistema di derivazione e l'API REST di Databricks.
La derivazione viene aggregata in tutte le aree di lavoro collegate a un metastore di Unity Catalog. Ciò significa che la derivazione acquisita in un'area di lavoro è visibile in qualsiasi altra area di lavoro che condivide tale metastore. In particolare, le tabelle e altri oggetti dati registrati nel metastore sono visibili agli utenti che hanno almeno BROWSE
autorizzazioni per tali oggetti, in tutte le aree di lavoro collegate al metastore. Tuttavia, informazioni dettagliate sugli oggetti a livello di area di lavoro, ad esempio notebook e dashboard in altre aree di lavoro, sono mascherate (vedere Limitazioni della derivazione e autorizzazioni di derivazione).
I dati di derivazione vengono conservati per un anno.
La seguente immagine seguente è un grafico di derivazione di esempio.
Per informazioni sul rilevamento della derivazione di un modello di Machine Learning, vedere Tenere traccia della derivazione dei dati di un modello in Unity Catalog.
Requisiti
Per acquisire la derivazione dei dati usando Unity Catalog:
- Le tabelle devono essere registrate in un metastore del catalogo Unity.
- Le query devono usare il dataframe Spark (ad esempio, funzioni SPARK SQL che restituiscono un dataframe) o interfacce SQL di Databricks, ad esempio notebook o editor di query SQL.
Per visualizzare la derivazione dei dati:
- È necessario disporre almeno del privilegio
BROWSE
sul catalogo padre della tabella o della vista. Il catalogo principale deve essere anch'esso accessibile dall'area di lavoro. Vedere Limitare l'accesso al catalogo a aree di lavoro specifiche. - Per notebook, processi o dashboard, è necessario disporre delle autorizzazioni per questi oggetti, come definito dalle impostazioni di controllo di accesso nell'area di lavoro. Per informazioni dettagliate, vedere Autorizzazioni di derivazione.
- Per una pipeline abilitata per Unity Catalog, è necessario disporre dell'autorizzazione CAN VIEW per la pipeline.
Requisiti di calcolo:
- Il monitoraggio della tracciabilità dello streaming tra tabelle Delta richiede Databricks Runtime 11.3 LTS o una versione successiva.
- Il tracciamento della derivazione delle colonne per i workload di Lakeflow Declarative Pipelines richiede Databricks Runtime 13.3 LTS o versioni successive.
Requisiti di rete:
- Potrebbe essere necessario aggiornare le regole del firewall in uscita per consentire la connettività all'endpoint di Hub eventi nel piano di controllo di Azure Databricks. In genere, questo vale se l'area di lavoro di Azure Databricks viene implementata nella propria VNet (nota anche come inserimento di reti virtuali). Per ottenere l'endpoint di Hub eventi per l'area di lavoro, vedere Metastore, archiviazione BLOB degli artefatti, archiviazione delle tabelle di sistema, archiviazione BLOB dei log e indirizzi IP degli endpoint di Hub eventi. Per informazioni sulla configurazione di percorsi definiti dall'utente per Azure Databricks, vedere Impostazioni di percorsi definiti dall'utente per Azure Databricks.
Visualizzare la derivazione dei dati con Esplora cataloghi
Per usare Esplora cataloghi per visualizzare la derivazione della tabella:
Nell'area di lavoro di Azure Databricks fare clic
Catalogo.
Cerca o sfoglia la tua tabella.
Selezionare la scheda Derivazione . Viene visualizzato il pannello di derivazione e vengono visualizzate le tabelle correlate.
Per visualizzare un grafico interattivo della derivazione dei dati, fare clic su Visualizza grafico di derivazione.
Per impostazione predefinita, nel grafico viene visualizzato un livello. Fare clic sull'icona
su un nodo per visualizzare altre connessioni, se disponibili.
Fare clic su una freccia che connette i nodi nel grafico di derivazione per aprire il pannello Connessione derivazione.
Il pannello connessione Lineage mostra i dettagli sulla connessione, incluse le tabelle di origine e di destinazione, i notebook e i processi.
Per visualizzare un notebook associato a una tabella, selezionare il notebook nel pannello Connessione derivazione oppure chiudere il grafico di derivazione e fare clic su Notebook.
Per aprire il notebook in una nuova scheda, fare clic sul nome del notebook.
Per visualizzare la derivazione a livello di colonna, fare clic su una colonna nel grafico per visualizzare i collegamenti alle colonne correlate. Ad esempio, facendo clic sulla
full_menu
colonna in questo grafico di esempio vengono visualizzate le colonne upstream da cui è stata derivata la colonna:
Visualizzare la derivazione del flusso di lavoro (processo)
Per visualizzare la derivazione del flusso di lavoro, passare alla scheda Derivazione di una tabella, fare clic su Flussi di lavoro e selezionare la scheda Downstream . Il nome del processo viene visualizzato in Nome processo come consumer della tabella.
Visualizzare la derivazione del dashboard
Per visualizzare la derivazione del dashboard, passare alla scheda Derivazione di una tabella e fare clic su Dashboard. Il dashboard appare sotto Nome del dashboard come utente della tabella.
Acquisire la derivazione della tabella con Databricks Assistant
Databricks Assistant fornisce informazioni dettagliate sulla storia e analisi delle tabelle.
Per ottenere informazioni sulla derivazione tramite Assistente:
- Nella barra laterale dell'area di lavoro fare clic
Catalogo.
- Sfogliare o cercare il catalogo, fare clic sul nome del catalogo e quindi fare clic
nell'angolo in alto a destra.
- Al prompt dell'Assistente digitare:
- /getTableLineages per visualizzare le dipendenze upstream e downstream.
- /getTableInsights per accedere a informazioni dettagliate basate sui metadati, ad esempio attività utente e modelli di query.
Queste query consentono all'Assistente di rispondere a domande come "mostra i flussi a valle" o "chi interroga più spesso questa tabella".
Eseguire query sui dati di derivazione usando le tabelle di sistema
È possibile usare le tabelle di sistema di derivazione per eseguire query sui dati di derivazione a livello di codice. Per istruzioni dettagliate, vedi Monitorare l'attività dell'account con le tabelle di sistema e Riferimento alle tabelle di sistema Lineage.
Se l'area di lavoro si trova in un'area che non supporta le tabelle di sistema di derivazione, è invece possibile usare l'API REST Derivazione dati per recuperare i dati di derivazione a livello di codice.
Recuperare la tracciabilità dei dati usando la REST API
L'API di derivazione dei dati consente di recuperare la derivazione di tabelle e colonne. Tuttavia, se l'area di lavoro si trova in un'area che supporta le tabelle di sistema di derivazione, è consigliabile usare query di tabella di sistema anziché l'API REST. Le tabelle di sistema sono un'opzione migliore per il recupero programmatico dei dati di derivazione. La maggior parte delle aree supporta le tabelle di sistema di derivazione.
Importante
Per accedere alle API REST di Databricks, è necessario eseguire l'autenticazione.
Recuperare la derivazione della tabella
In questo esempio vengono recuperati i dati di derivazione per la tabella dinner
.
Richiedi
curl --netrc -X GET \
-H 'Content-Type: application/json' \
https://<workspace-instance>/api/2.0/lineage-tracking/table-lineage \
-d '{"table_name": "lineage_data.lineagedemo.dinner", "include_entity_lineage": true}'
Sostituire <workspace-instance>
.
In questo esempio viene usato un file .netrc.
Risposta
{
"upstreams": [
{
"tableInfo": {
"name": "menu",
"catalog_name": "lineage_data",
"schema_name": "lineagedemo",
"table_type": "TABLE"
},
"notebookInfos": [
{
"workspace_id": 4169371664718798,
"notebook_id": 1111169262439324
}
]
}
],
"downstreams": [
{
"notebookInfos": [
{
"workspace_id": 4169371664718798,
"notebook_id": 1111169262439324
}
]
},
{
"tableInfo": {
"name": "dinner_price",
"catalog_name": "lineage_data",
"schema_name": "lineagedemo",
"table_type": "TABLE"
},
"notebookInfos": [
{
"workspace_id": 4169371664718798,
"notebook_id": 1111169262439324
}
]
}
]
}
Recuperare il lineage delle colonne
In questo esempio vengono recuperati i dati delle colonne per la tabella dinner
.
Richiedi
curl --netrc -X GET \
-H 'Content-Type: application/json' \
https://<workspace-instance>/api/2.0/lineage-tracking/column-lineage \
-d '{"table_name": "lineage_data.lineagedemo.dinner", "column_name": "dessert"}'
Sostituire <workspace-instance>
.
In questo esempio viene usato un file .netrc.
Risposta
{
"upstream_cols": [
{
"name": "dessert",
"catalog_name": "lineage_data",
"schema_name": "lineagedemo",
"table_name": "menu",
"table_type": "TABLE"
},
{
"name": "main",
"catalog_name": "lineage_data",
"schema_name": "lineagedemo",
"table_name": "menu",
"table_type": "TABLE"
},
{
"name": "app",
"catalog_name": "lineage_data",
"schema_name": "lineagedemo",
"table_name": "menu",
"table_type": "TABLE"
}
],
"downstream_cols": [
{
"name": "full_menu",
"catalog_name": "lineage_data",
"schema_name": "lineagedemo",
"table_name": "dinner_price",
"table_type": "TABLE"
}
]
}
Autorizzazioni di derivazione.
I grafici di lineage condividono lo stesso modello di autorizzazione di Unity Catalog. Le tabelle e altri oggetti dati registrati nel metastore del catalogo Unity sono visibili solo agli utenti che dispongono almeno di autorizzazioni BROWSE
per tali oggetti. Se un utente non dispone del privilegio BROWSE
o SELECT
per una tabella, non può esplorarne la derivazione. I grafici di derivazione mostrano gli oggetti del Catalogo Unity in tutte le aree di lavoro collegate al metastore, a condizione che l'utente disponga di adeguate autorizzazioni sugli oggetti.
Ad esempio, eseguire i comandi seguenti per userA
:
GRANT USE SCHEMA on lineage_data.lineagedemo to `userA@company.com`;
GRANT SELECT on lineage_data.lineagedemo.menu to `userA@company.com`;
Quando userA
visualizza il grafico di derivazione per la tabella lineage_data.lineagedemo.menu
, verrà visualizzata la tabella menu
. Non saranno in grado di visualizzare informazioni sulle tabelle associate, ad esempio la tabella downstream lineage_data.lineagedemo.dinner
. La tabella dinner
viene visualizzata come nodo masked
nella visualizzazione per userA
e userA
non è in grado di espandere il grafico per visualizzare le tabelle downstream dalle tabelle a cui non dispone dell'autorizzazione per accedere.
Se si esegue il comando seguente per concedere l'autorizzazione BROWSE
a userB
, tale utente può visualizzare il grafico di derivazione per qualsiasi tabella nello lineage_data
schema:
GRANT BROWSE on lineage_data to `userB@company.com`;
Analogamente, gli utenti di derivazione devono disporre di autorizzazioni specifiche per visualizzare oggetti dell'area di lavoro come notebook, processi e dashboard. Inoltre, possono visualizzare solo informazioni dettagliate sugli oggetti dell'area di lavoro quando vengono connessi all'area di lavoro in cui sono stati creati tali oggetti. Le informazioni dettagliate sugli oggetti a livello di area di lavoro in altre aree di lavoro sono mascherate nel grafico di derivazione.
Per altre informazioni sulla gestione dell'accesso a oggetti a protezione diretta in Unity Catalog, vedere Gestire i privilegi in Unity Catalog. Per altre informazioni sulla gestione dell'accesso agli oggetti dell'area di lavoro, ad esempio notebook, processi e dashboard, si veda Elenchi di controllo di accesso.
Limitazioni di derivazione
La derivazione dei dati presenta le limitazioni seguenti:
Sebbene la derivazione sia aggregata per tutte le aree di lavoro collegate allo stesso metastore del catalogo Unity, i dettagli degli oggetti dell'area di lavoro come notebook e dashboard sono visibili solo nell'area di lavoro in cui sono stati creati.
Poiché la derivazione viene calcolata in una finestra mobile di un anno, la derivazione raccolta più di un anno fa non viene visualizzata. Ad esempio, se un processo o una query legge dati dalla tabella A e scrive nella tabella B, il collegamento tra la tabella A e la tabella B viene visualizzato solo per un anno. È possibile filtrare i dati di derivazione in base all'intervallo di tempo all'interno della finestra di un anno.
Le attività che utilizzano la richiesta
runs submit
dell'API Jobs non sono disponibili nelle visualizzazioni di lineage. La derivazione a livello di tabella e colonna viene ancora acquisita quando un processo usa laruns submit
richiesta, ma il collegamento all'esecuzione non viene acquisito.Se una tabella o una vista viene rinominata, la derivazione non viene acquisita per la tabella o la vista rinominata.
Se uno schema o un catalogo viene rinominato, la derivazione non viene acquisita per tabelle e viste nel catalogo o nello schema rinominato.
Se si usa il checkpoint del set di dati Spark SQL, la derivazione non viene acquisita.
Unity Catalog acquisisce il lineage dalle pipeline dichiarative di Lakeflow nella maggior parte dei casi. In alcuni casi, tuttavia, non è possibile garantire una copertura di derivazione completa, ad esempio quando le pipeline usano tabelle PRIVATE.
La derivazione non acquisisce le funzioni stack.
Le visualizzazioni temporanee globali non vengono acquisite in derivazione.
Le tabelle sotto
system.information_schema
non vengono acquisite nel lineage.Il Catalogo Unity acquisisce il tracciamento al livello di colonna il più possibile. Tuttavia, esistono alcuni casi in cui non è possibile acquisire la derivazione a livello di colonna. Questi includono:
Impossibile acquisire la derivazione delle colonne se l'origine o la destinazione viene fatto riferimento come percorso (esempio:
select * from delta."s3://<bucket>/<path>"
). La derivazione delle colonne è supportata solo quando si fa riferimento sia all'origine che alla destinazione in base al nome della tabella (ad esempio:select * from <catalog>.<schema>.<table>
).La derivazione completa a livello di colonna non viene acquisita per impostazione predefinita per le operazioni di
MERGE
.È possibile attivare l'acquisizione della derivazione delle operazioni
MERGE
impostando la proprietà Sparkspark.databricks.dataLineage.mergeIntoV2Enabled
sutrue
. L'abilitazione di questo flag può rallentare le prestazioni delle query, in particolare nei carichi di lavoro che coinvolgono tabelle molto ampie.