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_lineage
talá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_type NULL , akkor entity_id NULL . |
|
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:
Ha entity_type NULL , akkor entity_run_id NULL . |
|
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 , PATH vagy VIEW STREAMING_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 , VIEW vagy 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_lineage
talá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_type NULL , akkor entity_id NULL . |
|
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:
Ha entity_type NULL , akkor entity_run_id NULL . |
|
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 , PATH vagy VIEW STREAMING_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 , VIEW vagy 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_type
eseté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
-tnull
-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"))