Referenční dokumentace systémových tabulek rodokmenu

Tato stránka obsahuje odkaz na dvě systémové tabulky rodokmenu. Tyto systémové tabulky vycházejí z funkce datové linie v Unity Catalog, která umožňuje programově dotazovat údaje o linii, abyste mohli využívat rozhodování a tvorbu sestav. Aby bylo možné přistupovat k tabulkám, musí být schémata povolená v system katalogu. Další informace naleznete v tématu Povolení systémových tabulek.

Note

Obě tabulky rodokmenu představují podmnožinu všech událostí čtení a zápisu, protože není vždy možné zachytit rodokmen. Záznamy se generují pouze v případech, kdy je možné odvodit rodokmen. Omezení rodokmenu dat popsaná v omezeních platí také pro systémové tabulky rodokmenu.

Uchovávání dat

Systémové tabulky rodokmenu uchovávají 1letý interval dat. Události starší než jeden rok se postupně odeberou. Pro historii rodokmenu nad rámec jednoho roku použijte Průzkumníka katalogu nebo rozhraní API rodokmenu, které po 1. září 2024 trvale zachovávají rodokmen.

Tabulka s rodokmenem datových tabulek

Systémová tabulka původu tabulky obsahuje záznam pro každou událost čtení nebo zápisu na tabulce nebo cestě katalogu Unity. To zahrnuje mimo jiné spuštění úloh, spuštění poznámkového bloku a řídicí panely aktualizované událostí čtení nebo zápisu.

Cesta k tabulce: Tato systémová tabulka se nachází na system.access.table_lineageadrese .

schéma rodokmenu tabulky

Tabulka liniového systému používá následující schéma.

Název sloupce Datový typ Description Example
account_id řetězec ID účtu Azure Databricks. 7af234db-66d7-4db3-bbf0-956098224879
metastore_id řetězec ID metastoru katalogu Unity. 5a31ba44-bbf4-4174-bf33-e1fa078e6765
workspace_id řetězec ID pracovního prostoru 123456789012345
entity_type řetězec Typ entity přidružené k záznamu rodokmenu( pokud existuje). Hodnota je NOTEBOOK, , JOB, PIPELINE, DASHBOARD_V3DBSQL_DASHBOARD (zastaralé), DBSQL_QUERYnebo NULL.
Poznámka: Informace o všech entitách zahrnutých v záznamu rodokmenu najdete entity_metadata ve sloupci.
JOB
entity_id řetězec ID entity přidružené k záznamu rodokmenu nebo NULL.
Poznámka: Informace o všech entitách zahrnutých v záznamu rodokmenu najdete entity_metadata ve sloupci.
417306252667357
entity_run_id řetězec Jedinečné ID spuštění entity přidružené k záznamu rodokmenu nebo NULL.
Poznámka: Informace o všech entitách zahrnutých v záznamu rodokmenu najdete entity_metadata ve sloupci.
688612062233399
source_table_full_name řetězec Název tří částí pro identifikaci zdrojové tabulky catalog.schema.table
source_table_catalog řetězec Katalog zdrojové tabulky. catalog
source_table_schema řetězec Schéma zdrojové tabulky schema
source_table_name řetězec Název zdrojové tabulky. table
source_path řetězec Umístění v cloudovém úložišti zdrojové tabulky nebo cesta, pokud se čte přímo z cloudového úložiště. abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
source_type řetězec Typ zdroje. Hodnota je TABLE, , PATHVIEW, MATERIALIZED_VIEW, METRIC_VIEWnebo STREAMING_TABLE. TABLE
target_table_full_name řetězec Třídílný název k identifikaci cílové tabulky catalog.schema.table
target_table_catalog řetězec Katalog cílové tabulky. catalog
target_table_schema řetězec Schéma cílové tabulky schema
target_table_name řetězec Název cílové tabulky. table
target_path řetězec Umístění v cloudovém úložišti cílové tabulky abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
target_type řetězec Typ cíle. Hodnota je TABLE, , PATHVIEW, MATERIALIZED_VIEW, METRIC_VIEWnebo STREAMING_TABLE. TABLE
created_by řetězec Uživatel, který tento rodokmen vygeneroval. Může to být Azure Databricks uživatelské jméno, ID instančního objektu Azure Databricks, název skupiny Azure Databricks, system-user nebo NULL, pokud informace o uživateli nelze zachytit. crampton.rods@email.com
event_time časové razítko Časové razítko při vygenerování rodokmenu. Informace o časovém pásmu se zaznamenávají na konci hodnoty, kde +00:00 označuje UTC. 2025-04-20T19:47:21.194+00:00
event_date date Datum vygenerování rodokmenu. Jedná se o dělený sloupec. 2025-04-20
record_id řetězec Jedinečné ID záznamu rodokmenu. Tato hodnota se automaticky vygeneruje a nelze ji spojit s žádnými tabulkami. 3c5c8eed-87bb-3aa6-8a86-80d00d48299e
event_id řetězec Jedinečné ID jedné události rodokmenu. Více řádků může sdílet stejný event_id, pokud byly generovány stejnou událostí. Tato hodnota se automaticky vygeneruje a nelze ji spojit s žádnými tabulkami. ca123ff3-f3f8-332b-a832-0154a6327353
statement_id řetězec Jedinečné ID příkazu dotazu, který vygeneroval událost rodokmenu. Jedná se o cizí klíč pro spojení se systémovou tabulkou historie dotazů. Tato hodnota se nastaví pouze při spuštění dotazu ze služby SQL Warehouse. 1234526f-a6ac-475c-8601-e8637f8ee039
entity_metadata struktura Metadata o entitě zodpovědné za událost rodokmenu Zobrazit metadata entity
direct_access Boolean Určuje, jestli je zdroj přímo odkazován cílem dotazu. Pokud trueje zdroj přímo připojený k cíli dotazu. Pokud falseje zdrojem mezilehá závislost zjištěná prostřednictvím rozšíření zobrazení. Pokud například dotaz čte ze zobrazení, záznam rodokmenu podkladové základní tabulky zobrazení se zaznamená pomocí direct_access = false. true

Tabulka rodokmenu sloupců

Tabulka rodokmenu sloupců neobsahuje události, které nemají zdroj. Pokud například vložíte do sloupce pomocí explicitních hodnot, nezachytí se. Pokud přečtete sloupec, zachytí se bez ohledu na to, jestli zapíšete výstup.

Cesta k tabulce: Tato systémová tabulka se nachází na system.access.column_lineageadrese .

schéma rodokmenu sloupců

Systémová tabulka rodokmenu sloupců používá následující schéma:

Název sloupce Datový typ Description Example
account_id řetězec ID účtu Azure Databricks. 7af234db-66d7-4db3-bbf0-956098224879
metastore_id řetězec ID metastoru katalogu Unity. 5a31ba44-bbf4-4174-bf33-e1fa078e6765
workspace_id řetězec ID pracovního prostoru 123456789012345
entity_type řetězec Typ entity přidružené k záznamu rodokmenu( pokud existuje). Hodnota je NOTEBOOK, , JOB, PIPELINE, DASHBOARD_V3DBSQL_DASHBOARD (zastaralé), DBSQL_QUERYnebo NULL.
Poznámka: Informace o všech entitách zahrnutých v záznamu rodokmenu najdete entity_metadata ve sloupci.
JOB
entity_id řetězec ID entity přidružené k záznamu rodokmenu nebo NULL.
Poznámka: Informace o všech entitách zahrnutých v záznamu rodokmenu najdete entity_metadata ve sloupci.
417306252667357
entity_run_id řetězec Jedinečné ID spuštění entity přidružené k záznamu rodokmenu nebo NULL.
Poznámka: Informace o všech entitách zahrnutých v záznamu rodokmenu najdete entity_metadata ve sloupci.
688612062233399
source_table_full_name řetězec Název tří částí pro identifikaci zdrojové tabulky catalog.schema.table
source_table_catalog řetězec Katalog zdrojové tabulky. catalog
source_table_schema řetězec Schéma zdrojové tabulky schema
source_table_name řetězec Název zdrojové tabulky. table
source_path řetězec Umístění v cloudovém úložišti zdrojové tabulky nebo cesta, pokud se čte přímo z cloudového úložiště. abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
source_type řetězec Typ zdroje. Hodnota je TABLE, , PATHVIEW, MATERIALIZED_VIEW, METRIC_VIEWnebo STREAMING_TABLE. TABLE
source_column_name řetězec Název zdrojového sloupce. date
target_table_full_name řetězec Třídílný název k identifikaci cílové tabulky catalog.schema.table
target_table_catalog řetězec Katalog cílové tabulky. catalog
target_table_schema řetězec Schéma cílové tabulky schema
target_table_name řetězec Název cílové tabulky. table
target_path řetězec Umístění v cloudovém úložišti cílové tabulky abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
target_type řetězec Typ cíle. Hodnota je TABLE, , PATHVIEW, MATERIALIZED_VIEW, METRIC_VIEWnebo STREAMING_TABLE. TABLE
target_column_name řetězec Název cílového sloupce date
created_by řetězec Uživatel, který tento rodokmen vygeneroval. Může to být Azure Databricks uživatelské jméno, ID instančního objektu Azure Databricks, název skupiny Azure Databricks, system-user nebo NULL, pokud informace o uživateli nelze zachytit. crampton.rods@email.com
event_time časové razítko Časové razítko při vygenerování rodokmenu. Informace o časovém pásmu se zaznamenávají na konci hodnoty, kde +00:00 označuje UTC. 2025-04-20T19:47:21.194+00:00
event_date date Datum vygenerování rodokmenu. Jedná se o dělený sloupec. 2025-04-20
record_id řetězec Jedinečné ID záznamu rodokmenu. Tato hodnota se automaticky vygeneruje a nelze ji spojit s žádnými tabulkami. 3c5c8eed-87bb-3aa6-8a86-80d00d48299e
event_id řetězec Jedinečné ID jedné události rodokmenu. Více řádků může sdílet stejný event_id, pokud byly generovány stejnou událostí. Tato hodnota se automaticky vygeneruje a nelze ji spojit s žádnými tabulkami. ca123ff3-f3f8-332b-a832-0154a6327353
statement_id řetězec Jedinečné ID příkazu dotazu, který vygeneroval událost rodokmenu. Jedná se o cizí klíč pro spojení se systémovou tabulkou historie dotazů. Tato hodnota se nastaví pouze při spuštění dotazu ze služby SQL Warehouse. 1234526f-a6ac-475c-8601-e8637f8ee039
entity_metadata struktura Metadata o entitě zodpovědné za událost rodokmenu Zobrazit metadata entity
direct_access Boolean Určuje, jestli je zdroj přímo odkazován cílem dotazu. Pokud trueje zdroj přímo připojený k cíli dotazu. Pokud falseje zdrojem mezilehá závislost zjištěná prostřednictvím rozšíření zobrazení. Pokud například dotaz čte ze zobrazení, záznam rodokmenu podkladové základní tabulky zobrazení se zaznamená pomocí direct_access = false. true

Čtení systémových tabulek rodokmenu

  • Pokud chcete zjistit, jestli byla událost čtením nebo zápisem, můžete zobrazit typ zdroje a cílový typ.
    • Jen pro čtení: Typ zdroje není null, ale cílový typ má hodnotu null.
    • Pouze zápis: Cílový typ není null, ale zdrojový typ je null.
    • Čtení a zápis: Typ zdroje a cílový typ nemají hodnotu null.

Referenční dokumentace metadat entit

Struktura entity_metadata má následující schéma:

job_info:
  job_id: "string"
  job_run_id: "string"
dashboard_id: "string"
legacy_dashboard_id: "string"
notebook_id: "string"
sql_query_id: "string"
dlt_pipeline_info:
  dlt_pipeline_id: "string"
  dlt_update_id: "string"
genie_space_id: "string"
alert_id: "string"

Azure Databricks zaznamenává události rodokmenu z kanálů Lakeflow, poznámkových bloků, úloh, dotazů SQL Databricks, řídicích panelů, agentů Genie a upozornění. Události od jiných entit nejsou podporovány.

V závislosti na typu události je možné zadat více hodnot. Například úloha běžící v prostředí poznámkového bloku by naplnila jak job_info, tak notebook_id.

Pokud jsou všechny hodnoty v entity_metadatanull, znamená to, že k události nebyla zapojena žádná entita Azure Databricks. Může to být například výsledek dotazu JDBC nebo kliknutí uživatele na kartu Sample Data v uživatelském rozhraní Azure Databricks.

Příklad systémové tabulky rodokmenu

Jako příklad, jak se rodokmen zaznamenává v systémových tabulkách, tady je příklad dotazu následovaný záznamy rodokmenu, který dotaz vytvoří:

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);

Záznam system.access.table_lineage by vypadal takto:

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

Záznam system.access.column_lineage by vypadal takto:

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

Note

V předchozím příkladu se nezobrazují všechny sloupce rodokmenu. Úplné schéma najdete ve výše uvedeném schématu rodokmenu.

Řešení potíží s dotazy na externí tabulky

Pokud odkazujete na externí tabulku pomocí cesty ke cloudovému úložišti, přidružený záznam rodokmenu obsahuje pouze název cesty, nikoli název tabulky. Záznam rodokmenu pro tento dotaz by například obsahoval název cesty, nikoli název tabulky:

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

Pokud se pokoušíte dotazovat záznamy rodokmenu pro externí tabulku, na kterou odkazuje cesta, musíte dotaz filtrovat pomocí source_path nebo target_path namísto source_table_full_name nebo target_table_full_name. Například následující dotaz načítá všechny záznamy rodokmenu pro externí tabulku:

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";

Načtení záznamů rodokmenu na základě názvu externí tabulky

Pokud nechcete ručně načíst cestu ke cloudovému úložišti a najít rodokmen, můžete pomocí následující funkce získat data rodokmenu pomocí názvu tabulky. Pokud chcete dotazovat linii sloupců, můžete ve funkci nahradit system.access.table_lineage za system.access.column_lineage.

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)
  )

Pak pomocí následujícího příkazu volejte funkci a zobrazte záznamy rodokmenu pro externí tabulku:

display(getLineageForTable("table_name"))