Dela via


Referens för härkomstsystemtabeller

Viktigt!

Den här systemtabellen finns i offentlig förhandsversion. För att få åtkomst till tabellen måste schemat vara aktiverat i din system katalog. Mer information finns i Aktivera systemtabellscheman.

Den här artikeln innehåller en översikt över de två ursprungssystemtabellerna. Dessa systemtabeller bygger på Unity Catalogs data härledningsfunktion, vilket gör att du programmeringsmässigt kan fråga om härkomstdata i syfte att understödja beslutsfattande och rapporter.

Kommentar

Båda härkomsttabellerna representerar en delmängd av alla läs- och skrivhändelser, eftersom det inte alltid är möjligt att spåra härkomst. Data poster skapas endast när ursprung kan härledas.

Linjediagram för tabell

Tabellens härkomstsystemtabell innehåller en post för varje läs- eller skrivhändelse på en Unity Catalog-tabell eller sökväg. Detta omfattar men är inte begränsat till jobbkörningar, anteckningsblockskörningar och instrumentpaneler som uppdateras med läs- eller skrivhändelsen.

Tabellsökväg: Den här systemtabellen finns på system.access.table_lineage.

Tabell härstamningsschema

Tabellsystemet för härkomst använder följande schema.

Kolumnnamn Datatyp beskrivning Exempel
account_id sträng ID för Azure Databricks-kontot. 7af234db-66d7-4db3-bbf0-956098224879
metastore_id sträng ID:t för Unity Catalog-metaarkivet. 5a31ba44-bbf4-4174-bf33-e1fa078e6765
workspace_id sträng Arbetsytans ID 123456789012345
entity_type sträng Typen av entitet som linjetransaktionen hämtades från. Värdet är NOTEBOOK, JOB, PIPELINE, DASHBOARD_V3 (Instrumentpanel), DBSQL_DASHBOARD (Äldre instrumentpanel), DBSQL_QUERY eller NULL. NOTEBOOK
entity_id sträng ID för entiteten som släkttransaktionen hämtades från. Om entity_type är NULL, entity_id är NULL.
  • Anteckningsbok: 23098402394234
  • Jobb: 23098402394234
  • Databricks SQL-fråga: e9cd8a31-de2f-4206-adfa-4f6605d68d88
  • Instrumentpanel: 01ef070d110715f2b6d3061b8bda89ea
  • Äldre instrumentpanel: e9cd8a31-de2f-4206-adfa-4f6605d68d88
  • Rörledning: e9cd8a31-de2f-4206-adfa-4f6605d68d88
entity_run_id sträng ID för att beskriva den unika körningen av entiteten, eller NULL. Detta skiljer sig åt för varje entitetstyp:
  • Anteckningsbok: command_run_id
  • Jobb: job_run_id
  • Databricks SQL-fråga: query_run_id
  • Kontrollpanel: query_run_id
  • Äldre instrumentpanel: query_run_id
  • Pipeline: pipeline_update_id

Om entity_type är NULL, entity_run_id är NULL.
  • Anteckningsbok: e3cr5a10-de6f-6206-fdfa-4f5505d68d55
  • Jobb: 51090402394234
  • Databricks SQL-fråga: e9cd8a31-de2f-4206-adfa-4f6605d68d88
  • Instrumentpanel: c3ra5m10-pt6o-6206-mdfa-4f5505d68d55
  • Äldre instrumentpanel: c3ra5m10-pt6o-6206-mdfa-4f5505d68d55
  • Rörledning: c5am1e0r-on2f-4206-adfa-4f6605d68d88
source_table_full_name sträng Namn i tre delar för att identifiera källtabellen. catalog.schema.table
source_table_catalog sträng Källtabellens katalog. catalog
source_table_schema sträng Schemat för källtabellen. schema
source_table_name sträng Namnet på källtabellen. table
source_path sträng Plats i molnlagringen av källtabellen eller sökvägen om den läser direkt från molnlagring. abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
source_type sträng Källans typ. Värdet är TABLE, PATH, VIEWeller STREAMING_TABLE. TABLE
target_table_full_name sträng Namn i tre delar för att identifiera måltabellen. catalog.schema.table
target_table_catalog sträng Katalogen för måltabellen. catalog
target_table_schema sträng Schemat för måltabellen. schema
target_table_name sträng Namnet på måltabellen. table
target_path sträng Plats i molnlagringen av måltabellen. abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
target_type sträng Typ av mål. Värdet är TABLE, PATH, VIEWeller STREAMING TABLE. TABLE
created_by sträng Den användare som genererade denna härstamning. Detta kan vara ett Användarnamn för Azure Databricks, ett huvudnamn för Azure Databricks-tjänsten, "System-User" eller NULL om användarinformationen inte kan samlas in. crampton.rods@email.com
event_time tidsstämpel Tidsstämpeln när härkomsten genererades. Tidszonsinformation registreras i slutet av värdet med +00:00 som representerar UTC. 2023-06-20T19:47:21.194+00:00
event_date datum Dagen då härstamningen genererades. Det här är en partitionerad kolumn. 2023-06-20

Kolumn linjetabell

Kolumnens ursprungstabell innehåller inte händelser som inte har någon källa. Om du till exempel infogar i en kolumn med explicita värden hämtas den inte. Om du läser en kolumn registreras den oavsett om du skriver utdata eller inte. Kolumnlinje stöds inte för DLT.

Tabellsökväg: Den här systemtabellen finns på system.access.column_lineage.

Kolumnlinjeschema

Systemtabellen för kolumn härkomst använder följande schema:

Kolumnnamn Datatyp beskrivning Exempel
account_id sträng ID för Azure Databricks-kontot. 7af234db-66d7-4db3-bbf0-956098224879
metastore_id sträng ID:t för Unity Catalog-metaarkivet. 5a31ba44-bbf4-4174-bf33-e1fa078e6765
workspace_id sträng Arbetsytans ID 123456789012345
entity_type sträng Typen av entitet som linjetransaktionen hämtades från. Värdet är NOTEBOOK, JOB, PIPELINE, DASHBOARD_V3 (instrumentpanel), DBSQL_DASHBOARD (äldre instrumentpanel), DBSQL_QUERY ELLER NULL. NOTEBOOK
entity_id sträng ID för entiteten som släkttransaktionen hämtades från. Om entity_type är NULL, entity_id är NULL.
  • Anteckningsbok: 23098402394234
  • Jobb: 23098402394234
  • Databricks SQL-fråga: e9cd8a31-de2f-4206-adfa-4f6605d68d88
  • Instrumentpanel: 01ef070d110715f2b6d3061b8bda89ea
  • Äldre instrumentpanel: e9cd8a31-de2f-4206-adfa-4f6605d68d88
  • Rörledning: e9cd8a31-de2f-4206-adfa-4f6605d68d88
entity_run_id sträng ID för att beskriva den unika körningen av entiteten, eller NULL. Detta skiljer sig åt för varje entitetstyp:
  • Anteckningsbok: command_run_id
  • Jobb: job_run_id
  • Databricks SQL-fråga: query_run_id
  • Instrumentpanel: query_run_id
  • Äldre instrumentpanel: query_run_id
  • Pipeline: pipeline_update_id

Om entity_type är NULL, entity_run_id är NULL.
  • Anteckningsbok: e3cr5a10-de6f-6206-fdfa-4f5505d68d55
  • Jobb: 51090402394234
  • Databricks SQL-fråga: e9cd8a31-de2f-4206-adfa-4f6605d68d88
  • Instrumentpanel: c3ra5m10-pt6o-6206-mdfa-4f5505d68d55
  • Äldre instrumentpanel: c3ra5m10-pt6o-6206-mdfa-4f5505d68d55
  • Rörledning: c5am1e0r-on2f-4206-adfa-4f6605d68d88
source_table_full_name sträng Namn i tre delar för att identifiera källtabellen. catalog.schema.table
source_table_catalog sträng Källtabellens katalog. catalog
source_table_schema sträng Schemat för källtabellen. schema
source_table_name sträng Namnet på källtabellen. table
source_path sträng Plats i molnlagringen av källtabellen eller sökvägen om den läser direkt från molnlagring. abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
source_type sträng Källans typ. Värdet är TABLE, PATH, VIEWeller STREAMING_TABLE. TABLE
source_column_name sträng Namnet på källkolumnen. date
target_table_full_name sträng Namn i tre delar för att identifiera måltabellen. catalog.schema.table
target_table_catalog sträng Katalogen för måltabellen. catalog
target_table_schema sträng Schemat för måltabellen. schema
target_table_name sträng Namnet på måltabellen. table
target_path sträng Plats i molnlagringen av måltabellen. abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
target_type sträng Typ av mål. Värdet är TABLE, PATH, VIEWeller STREAMING TABLE. TABLE
target_column_name sträng Namnet på målkolumnen. date
created_by sträng Den användare som genererade denna härstamning. Detta kan vara ett Användarnamn för Azure Databricks, ett huvudnamn för Azure Databricks-tjänsten, "System-User" eller NULL om användarinformationen inte kan samlas in. crampton.rods@email.com
event_time tidsstämpel Tidsstämpeln när härkomsten genererades. Tidszonsinformation registreras i slutet av värdet med +00:00 som representerar UTC. 2023-06-20T19:47:21.194+00:00
event_date datum Dagen då härstamningen genererades. Det här är en partitionerad kolumn. 2023-06-20

Läsa systemtabeller för härkomst

Observera följande när du analyserar systemtabeller för ursprung:

  • För entity_typestöder Azure Databricks DLT, anteckningsböcker, jobb, Databricks SQL-frågor och dashboards. Händelser från andra entiteter stöds inte.
  • Om du ser entity_type som nullbetyder det att ingen Azure Databricks-entitet är inblandad i händelsen. Det kan till exempel vara resultatet av en JDBC-fråga eller från en användare som klickar på fliken Exempeldata i Azure Databricks-användargränssnittet.
  • För att avgöra om händelsen var en läsning eller en skrivning kan du visa källtypen och måltypen.
    • Skrivskyddad: Källtypen är inte null, men måltypen är null.
    • Endast skriven: Måltypen har inte värdet null, men källtypen har värdet null.
    • Läs och skriv: Källtypen och måltypen är inte null.

Exempel på härkomstsystemtabell

Som ett exempel på hur ursprung registreras i systemtabeller är här en exempelfråga följt av de härstamningsposter som frågan skapar:

CREATE OR REPLACE TABLE car_features
AS SELECT *,  in1+in2 as premium_feature_set
FROM car_features_exterior
JOIN car_features_interior
USING(id, model);

Posten i system.access.table_lineage skulle se ut så här:

entity_type entity_id source_table_name target_table_name created_by event_time
NOTEBOOK 27080565267 car_features_exterior car_features crampton@email.com 2023-01-25T16:19:58.908+0000
NOTEBOOK 27080565267 car_features_interior car_features crampton@email.com 2023-01-25T16:19:58.908+0000

Posten i system.access.column_lineage ser ut så här:

entity_type entity_id source_table_name target_table_name source_column_name target_column_name event_time
NOTEBOOK 27080565267 car_features_interior car_features in1 premium_feature_set 2023-01-25T16:19:58.908+0000
NOTEBOOK 27080565267 car_features_interior car_features in2 premium_feature_set 2023-01-25T16:19:58.908+0000

Anteckning

Alla linjekolumner visas inte i exemplet ovan. För det fullständiga schemat, se stamtavleschemat ovan .

Felsöka externa tabellfrågor

När du refererar till en extern tabell med hjälp av dess molnlagringssökväg innehåller den associerade informationen om härstamningen endast sökvägens namn och inte tabellnamnet. Till exempel skulle härledningsposten för denna fråga innehålla sökvägens namn och inte tabellnamnet.

SELECT * FROM delta.`abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1`;

Om du försöker fråga efter härkomstposter för en extern tabell med angiven sökväg måste du filtrera frågan med hjälp av source_path eller target_path i stället för source_table_full_name eller target_table_full_name. Till exempel hämtar följande frågeställning alla linjeposter för en externtabell.

SELECT *
FROM system.access.table_lineage
WHERE
  source_path = "abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1" OR
  target_path = "abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1";

Exempel: Hämta ursprungsposter baserat på namnet på den externa tabellen

Om du inte vill hämta molnlagringssökvägen manuellt för att hitta ursprung kan du använda följande funktion för att hämta ursprungsdata med hjälp av tabellnamnet. Du kan också ersätta system.access.table_lineage med system.access.column_lineage i funktionen om du vill fråga kolumnhärstamning.

def getLineageForTable(table_name):
  table_path = spark.sql(f"describe detail {table_name}").select("location").head()[0]

  df = spark.read.table("system.access.table_lineage")
  return df.where(
    (df.source_table_full_name == table_name)
    | (df.target_table_full_name == table_name)
    | (df.source_path == table_path)
    | (df.target_path == table_path)
  )

Använd sedan följande kommando för att anropa funktionen och visa ursprungsposter för den externa tabellen:

display(getLineageForTable("table_name"))