Megosztás a következőn keresztül:


A leszármazási rendszer tábláinak referenciája

Fontos

Ez a rendszertábla nyilvános előzetes verzióban érhető el. A táblázat eléréséhez engedélyezni kell a sémát a system katalógusban. További információ: Rendszertábla-sémák engedélyezése.

Ez a cikk áttekintést nyújt a két életútrendszer-tábláról. Ezek a rendszertáblák a Unity Catalog adatszármazási funkciójáraépülnek, így programozottan lekérdezheti az adatszármazási adatokat a döntéshozatal és a jelentések elkészítéséhez.

Feljegyzés

Mindkét életúttábla az összes olvasási/írási esemény egy részhalmazát jelöli, mivel nem mindig lehetséges az életút rögzítése. A rekordok csak akkor lesznek kibocsátva, ha az adatszármazás megállapítható.

Táblázati származás táblázat

A table lineage system table tartalmaz egy rekordot minden olvasási vagy írási eseményhez egy Unity Catalog-táblán vagy elérési úton. Ez magában foglalja, de nem kizárólag a feladatok futtatását, a jegyzetfüzetek futtatását és az olvasási vagy írási eseményekkel frissített irányítópultokat.

Táblázat elérési útja: Ez a rendszertábla a következő helyen system.access.table_lineagetalálható: .

Táblavonal-rendszer

A table lineage system tábla a következő sémát használja.

Oszlop neve Adattípus Leírás Példa
account_id zsinór Az Azure Databricks-fiók azonosítója. 7af234db-66d7-4db3-bbf0-956098224879
metastore_id zsinór A Unity Catalog metaadattár azonosítója. 5a31ba44-bbf4-4174-bf33-e1fa078e6765
workspace_id zsinór A munkaterület azonosítója 123456789012345
entity_type zsinór Annak az entitásnak a típusa, amelyből a leágazási tranzakció rögzítve lett. Az érték: NOTEBOOK, JOB, PIPELINE, DASHBOARD_V3 (Irányítópult), DBSQL_DASHBOARD (Régi irányítópult), DBSQL_QUERY, vagy NULL. NOTEBOOK
entity_id zsinór Annak az entitásnak az ID-je, amelyről a leágazási tranzakciót rögzítették. Ha entity_typeNULL, akkor entity_idNULL.
  • Jegyzetfüzet: 23098402394234
  • Foglalkozás: 23098402394234
  • Databricks SQL-lekérdezés: e9cd8a31-de2f-4206-adfa-4f6605d68d88
  • Irányítópult: 01ef070d110715f2b6d3061b8bda89ea
  • Örökölt irányítópult: e9cd8a31-de2f-4206-adfa-4f6605d68d88
  • Csővezeték: e9cd8a31-de2f-4206-adfa-4f6605d68d88
entity_run_id zsinór Azonosító az entitás egyedi futtatásának leírásához, vagy NULL. Ez minden entitástípus esetében eltér:
  • Jegyzetfüzet: parancs_futtatás_azonosító
  • Feladat: job_run_id
  • Databricks SQL-lekérdezés: query_run_id
  • Irányítópult: query_run_id
  • Örökölt irányítópult: query_run_id
  • Folyamat: pipeline_update_id

Ha entity_typeNULL, akkor entity_run_idNULL.
  • Jegyzetfüzet: e3cr5a10-de6f-6206-fdfa-4f5505d68d55
  • Foglalkozás: 51090402394234
  • Databricks SQL-lekérdezés: e9cd8a31-de2f-4206-adfa-4f6605d68d88
  • Irányítópult: c3ra5m10-pt6o-6206-mdfa-4f5505d68d55
  • Örökölt irányítópult: c3ra5m10-pt6o-6206-mdfa-4f5505d68d55
  • Csővezeték: c5am1e0r-on2f-4206-adfa-4f6605d68d88
source_table_full_name zsinór Háromrészes név a forrástábla azonosításához. catalog.schema.table
source_table_catalog zsinór A forrástábla katalógusa. catalog
source_table_schema zsinór A forrástábla sémája. schema
source_table_name zsinór A forrástábla neve. table
source_path zsinór A forrástábla felhőalapú tárolójában található hely, vagy az elérési út, ha közvetlenül a felhőbeli tárolóból olvas. abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
source_type zsinór A forrás típusa. Az érték az TABLE, PATHvagy VIEWSTREAMING_TABLE. TABLE
target_table_full_name zsinór Háromrészes név a céltábla azonosításához. catalog.schema.table
target_table_catalog zsinór A céltábla katalógusa. catalog
target_table_schema zsinór A céltábla sémája. schema
target_table_name zsinór A céltábla neve. table
target_path zsinór Hely a céltábla felhőalapú tárolójában. abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
target_type zsinór A cél típusa. Az érték az TABLE, PATH, VIEWvagy STREAMING TABLE. TABLE
created_by zsinór Az a felhasználó, aki létrehozta ezt az ágat. Ez lehet Egy Azure Databricks-felhasználónév, egy Azure Databricks-szolgáltatásnév azonosítója , "Rendszerfelhasználó", vagy NULL ha a felhasználói adatok nem rögzíthetők. crampton.rods@email.com
event_time időbélyeg Az időbélyeg, amikor a származás létrejött. Az időzónára vonatkozó adatokat az érték végén rögzíti a rendszer, az +00:00 az UTC-t jelöli. 2023-06-20T19:47:21.194+00:00
event_date dátum: Az a dátum, amikor a vonal létrehozva lett. Ez egy particionált oszlop. 2023-06-20

Oszlop-származási táblázat

Az oszlopsortábla nem tartalmaz olyan eseményeket, amelyek nem rendelkeznek forrással. Ha például egy oszlopba explicit értékek beszúrásával történik a beillesztés, az nem kerül rögzítésre. Ha elolvas egy oszlopot, a rendszer akkor is rögzíti, ha nem írja meg a kimenetet. Az oszlopok származása nem támogatott a DLT esetében.

Táblázat elérési útja: Ez a rendszertábla a következő helyen system.access.column_lineagetalálható: .

oszlopsorséma

Az oszlopsorrendszer táblázata a következő sémát használja:

Oszlop neve Adattípus Leírás Példa
account_id zsinór Az Azure Databricks-fiók azonosítója. 7af234db-66d7-4db3-bbf0-956098224879
metastore_id zsinór A Unity Catalog metaadattár azonosítója. 5a31ba44-bbf4-4174-bf33-e1fa078e6765
workspace_id zsinór A munkaterület azonosítója 123456789012345
entity_type zsinór Annak az entitásnak a típusa, amelyből a leágazási tranzakció rögzítve lett. Az érték: NOTEBOOK, JOB, PIPELINE, DASHBOARD_V3 (Irányítópult), DBSQL_DASHBOARD (Régi irányítópult), DBSQL_QUERY, vagy NULL. NOTEBOOK
entity_id zsinór Annak az entitásnak az ID-je, amelyről a leágazási tranzakciót rögzítették. Ha entity_typeNULL, akkor entity_idNULL.
  • Jegyzetfüzet: 23098402394234
  • Foglalkozás: 23098402394234
  • Databricks SQL-lekérdezés: e9cd8a31-de2f-4206-adfa-4f6605d68d88
  • Irányítópult: 01ef070d110715f2b6d3061b8bda89ea
  • Örökölt irányítópult: e9cd8a31-de2f-4206-adfa-4f6605d68d88
  • Csővezeték: e9cd8a31-de2f-4206-adfa-4f6605d68d88
entity_run_id zsinór Az entitás egyedi futásának leírásához szükséges azonosító, vagy NULL. Ez minden entitástípus esetében eltér:
  • Jegyzetfüzet: command_run_id
  • Feladat: job_run_id
  • Databricks SQL-lekérdezés: query_run_id
  • Irányítópult: query_run_id
  • Örökölt irányítópult: lekérdezés_futása_azonosító
  • Folyamat: pipeline_update_id

Ha entity_typeNULL, akkor entity_run_idNULL.
  • Jegyzetfüzet: e3cr5a10-de6f-6206-fdfa-4f5505d68d55
  • Foglalkozás: 51090402394234
  • Databricks SQL-lekérdezés: e9cd8a31-de2f-4206-adfa-4f6605d68d88
  • Irányítópult: c3ra5m10-pt6o-6206-mdfa-4f5505d68d55
  • Régi irányítópult: c3ra5m10-pt6o-6206-mdfa-4f5505d68d55
  • Csővezeték: c5am1e0r-on2f-4206-adfa-4f6605d68d88
source_table_full_name zsinór Háromrészes név a forrástábla azonosításához. catalog.schema.table
source_table_catalog zsinór A forrástábla katalógusa. catalog
source_table_schema szál A forrástábla sémája. schema
source_table_name zsinór A forrástábla neve. table
source_path zsinór A forrástábla felhőalapú tárolójában található hely, vagy az elérési út, ha közvetlenül a felhőbeli tárolóból olvas. abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
source_type zsinór A forrás típusa. Az érték az TABLE, PATHvagy VIEWSTREAMING_TABLE. TABLE
source_column_name zsinór A forrásoszlop neve. date
target_table_full_name zsinór Háromrészes név a céltábla azonosításához. catalog.schema.table
target_table_catalog zsinór A céltábla katalógusa. catalog
target_table_schema zsinór A céltábla sémája. schema
target_table_name zsinór A céltábla neve. table
target_path zsinór Hely a céltábla felhőalapú tárolójában. abfss://my-container-name@storage-account-name.dfs.core.windows.net/table1
target_type zsinór A cél típusa. Az érték az TABLE, PATH, VIEWvagy STREAMING TABLE. TABLE
target_column_name zsinór A céloszlop neve. date
created_by zsinór Az a felhasználó, aki létrehozta ezt az ágat. Ez lehet Egy Azure Databricks-felhasználónév, egy Azure Databricks-szolgáltatásnév azonosítója , "Rendszerfelhasználó", vagy NULL ha a felhasználói adatok nem rögzíthetők. crampton.rods@email.com
event_time időbélyeg Az időbélyeg, amikor a származás létrejött. Az időzónára vonatkozó adatokat az érték végén rögzíti a rendszer, az +00:00 az UTC-t jelöli. 2023-06-20T19:47:21.194+00:00
event_date dátum: Az a dátum, amikor a vonal létrehozva lett. Ez egy particionált oszlop. 2023-06-20

Olvasóéletút-rendszertáblák

Vegye figyelembe a következő szempontokat a sorrendszertáblák elemzésekor:

  • A entity_typeesetében az Azure Databricks támogatja a DLT-t, a jegyzetfüzeteket, a feladatokat, a Databricks SQL-lekérdezéseket és az irányítópultokat. Más entitásokból származó események nem támogatottak.
  • Ha a entity_type-t null-ként látja, az azt jelenti, hogy az eseményben nincs Azure Databricks entitás. Ez lehet például egy JDBC-lekérdezés eredménye, vagy egy felhasználó, aki az Azure Databricks felhasználói felületén a Mintaadatok lapra kattint.
  • Annak megállapításához, hogy az esemény olvasási vagy írási volt-e, megtekintheti a forrástípust és a céltípust.
    • Írásvédett: A forrástípus nem nulla, de a céltípus nulla.
    • Írásra korlátozott: A céltípus nem nulla, de a forrástípus nulla.
    • Olvasás és írás: A forrástípus és a céltípus nem null értékű.

Példa a leszármazási rendszer táblázatára

Példa a rendszertáblákban való származás rögzítésére: íme egy lekérdezés példája, majd a lekérdezés által létrehozott származási rekordok következnek:

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

A(z) system.access.table_lineage rekord így nézne ki:

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

A(z) system.access.column_lineage rekord így nézne ki:

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

Feljegyzés

A fenti példában nem minden életútoszlop látható. A teljes sémáért tekintse meg a fenti vonalas sémát.

Külső tábla-lekérdezések hibaelhárítása

Ha egy külső táblára hivatkozik a felhőbeli tároló elérési útján, a társított sorrekord csak az elérési utat tartalmazza, a tábla nevét nem. Például a lekérdezéshez tartozó életútrekord az elérési út nevét tartalmazza, nem pedig a tábla nevét:

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

Ha egy elérési út alapján hivatkozott külső tábla lineage rekordjait próbálja lekérdezni, akkor a lekérdezést source_path vagy target_path alapján kell szűrnie source_table_full_name vagy target_table_full_name helyett. Az alábbi lekérdezés például lekéri egy külső tábla összes sorbajegyzését:

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

Példa: Származási rekordok lekérése külső táblanév alapján

Ha nem szeretné manuálisan lekérni a felhőtároló elérési útját az adatok származási nyomvonalának meghatározásához, az alábbi függvénnyel lekérheti a származási adatokat a táblanév használatával. Ha oszlopok terjedelmét szeretné lekérdezni, a függvényben is lecserélheti a system.access.table_lineage-t system.access.column_lineage-re.

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

Ezután a következő paranccsal hívja meg a függvényt, és megjelenítse a külső tábla sortörési rekordjait:

display(getLineageForTable("table_name"))