Az életútrendszer 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 adatkisorolási funkciójára épülnek, így programozott módon lekérdezheti az életútadatokat a döntéshozatalhoz és a jelentésekhez.
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 életútra lehet következtetni.
Table lineage table
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 a feladatfuttatásokat, a jegyzetfüzet-futtatásokat é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ó: .
Oszlopleválasztási táblázat
Az oszlopsortábla nem tartalmaz olyan eseményeket, amelyek nem rendelkeznek forrással. Ha például explicit értékekkel szúr be egy oszlopba, az nem lesz rögzítve. Ha egy oszlopot olvas, a rendszer rögzíti, hogy megírja-e a kimenetet. Az oszlopkiválasztás nem támogatott a Delta Live Tables esetében.
Táblázat elérési útja: Ez a rendszertábla a következő helyen system.access.column_lineage
található: .
Vonalas rendszer táblaséma
Az életútrendszer-táblák a következő sémát használják. A táblasorséma nem tartalmazza source_column_name
a következőt: .target_column_name
Oszlop neve | Adattípus | Leírás | Példa |
---|---|---|---|
account_id |
húr | Az Azure Databricks-fiók azonosítója. | 7af234db-66d7-4db3-bbf0-956098224879 |
metastore_id |
húr | A Unity Catalog metaadattár azonosítója. | 5a31ba44-bbf4-4174-bf33-e1fa078e6765 |
workspace_id |
húr | A munkaterület azonosítója | 123456789012345 |
entity_type |
hú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ökölt irányítópult), DBSQL_QUERY VAGY NULL . |
NOTEBOOK |
entity_id |
húr | Annak az entitásnak az azonosítója, amelyről a leágazási tranzakciót rögzítették. Ha entity_type igenNULL , entity_id akkor az.NULL |
-Jegyzetfüzet: 23098402394234 -Foglalkozás: 23098402394234 - Databricks SQL-lekérdezés: e9cd8a31-de2f-4206-adfa-4f6605d68d88 -Műszerfal: 01ef070d110715f2b6d3061b8bda89ea - Örökölt irányítópult: e9cd8a31-de2f-4206-adfa-4f6605d68d88 -Csővezeték: e9cd8a31-de2f-4206-adfa-4f6605d68d88 |
entity_run_id |
hú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: 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: query_run_id - Folyamat: pipeline_update_id Ha entity_type igenNULL , entity_run_id akkor az.NULL |
-Jegyzetfüzet: e3cr5a10-de6f-6206-fdfa-4f5505d68d55 -Foglalkozás: 51090402394234 - Databricks SQL-lekérdezés: e9cd8a31-de2f-4206-adfa-4f6605d68d88 -Műszerfal: 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 |
húr | Háromrészes név a forrástábla azonosításához. | catalog.schema.table |
source_table_catalog |
húr | A forrástábla katalógusa. | catalog |
source_table_schema |
húr | A forrástábla sémája. | catalog.schema |
source_table_name |
húr | A forrástábla neve. | table |
source_path |
hú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 |
húr | A forrás típusa. Az érték az TABLE , PATH vagy VIEW STREAMING_TABLE . |
TABLE |
source_column_name |
húr | A forrásoszlop neve. | date |
target_table_full_name |
húr | Háromrészes név a céltábla azonosításához. | catalog.schema.table |
target_table_catalog |
húr | A céltábla katalógusa. | catalog |
target_table_schema |
húr | A céltábla sémája. | catalog.schema |
target_table_name |
húr | A céltábla neve. | table |
target_path |
hú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 |
húr | A cél típusa. Az érték az TABLE , PATH , VIEW vagy STREAMING TABLE . |
TABLE |
target_column_name |
húr | A céloszlop neve. | date |
created_by |
hú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 leállás létrejött. Az időzónára vonatkozó adatokat az érték végén rögzíti a rendszer az UTC-nek +00:00 megfelelően. |
2023-06-20T19:47:21.194+00:00 |
event_date |
dátum: | Az a dátum, amikor a leágazás létrejött. 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:
- Az Azure Databricks támogatja a Delta Live Tableset, a jegyzetfüzeteket, a feladatokat, a
entity_type
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 következőt
entity_type
null
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 null, de a céltípus null.
- Írásvédett: A céltípus nem null, de a forrás típusa null.
- Olvasás és írás: A forrástípus és a céltípus nem null értékű.
Példa az életútrendszer táblázatára
Példa a rendszertáblákban való rögzítés módjára, íme egy példalekérdezés, amelyet a lekérdezés által létrehozott életútrekordok követnek:
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 betett system.access.table_lineage
rekord a következőképpen 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 betett system.access.column_lineage
rekord a következőképpen 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 sortörési rekordjait próbálja lekérdezni, akkor a lekérdezést az elérési út alapján source_path
vagy helyett vagy target_path
target_table_full_name
helyett source_table_full_name
kell szűrnie. 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: Az életútrekordok lekérése külső táblanév alapján
Ha nem szeretné manuálisan lekérni a felhőbeli tároló elérési útját az életút megkereséséhez, az alábbi függvénnyel lekérheti az adatsorokat a táblanév használatával. Ha oszlopsort system.access.column_lineage
szeretne lekérdezni, a függvényben is lecserélheti a helyéresystem.access.table_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)
)
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"))