Delta Live Tables-folyamatok figyelése
Ez a cikk bemutatja, hogyan használhat beépített monitorozási és megfigyelhetőségi funkciókat a Delta Live Tables-folyamatokhoz, beleértve az adatsorokat, a frissítési előzményeket és az adatminőség-jelentéskészítést.
A legtöbb monitorozási adatot manuálisan is áttekintheti a folyamat részleteinek felhasználói felületén keresztül. Egyes feladatok egyszerűbben elvégezhetők az eseménynapló metaadatainak lekérdezésével. Lásd: Mi a Delta Live Tables eseménynaplója?
Milyen folyamatadatok érhetők el a felhasználói felületen?
A folyamatdiagram azonnal megjelenik, amint egy folyamat frissítése sikeresen elindult. A nyilak a folyamat adathalmazai közötti függőségeket jelölik. A folyamat részleteinek lapja alapértelmezés szerint a táblázat legújabb frissítését jeleníti meg, de a legördülő menüből kiválaszthatja a régebbi frissítéseket.
A megjelenített részletek közé tartozik a folyamat azonosítója, a forráskódtárak, a számítási költség, a termékkiadás és a folyamathoz konfigurált csatorna.
Az adathalmazok táblázatos nézetének megtekintéséhez kattintson a Lista fülre. A Lista nézet lehetővé teszi, hogy a folyamat összes adathalmaza egy tábla soraként jelenítse meg, és akkor hasznos, ha a folyamat DAG-jának mérete túl nagy ahhoz, hogy a Graph nézetben megjelenítse. A táblában megjelenő adathalmazokat több szűrő, például az adathalmaz neve, típusa és állapota alapján szabályozhatja. Ha vissza szeretne térni a DAG-vizualizációra, kattintson a Graph gombra.
A futtatás felhasználóként a folyamat tulajdonosa, és a folyamatfrissítések ennek a felhasználónak az engedélyeivel futnak. A felhasználó módosításához kattintson az run as
Engedélyek gombra, és módosítsa a folyamat tulajdonosát.
Hogyan tekintheti meg az adathalmaz részleteit?
Ha a folyamatgráfban vagy adathalmazlistában egy adathalmazra kattint, megjelenik az adathalmaz részletei. A részletek közé tartozik az adathalmaz sémája, az adatminőségi metrikák és az adathalmazt meghatározó forráskódra mutató hivatkozás.
Frissítési előzmények megtekintése
A folyamatfrissítések előzményeinek és állapotának megtekintéséhez kattintson a frissítési előzmények legördülő menüre a felső sávon.
A frissítés gráfjának, részleteinek és eseményeinek megtekintéséhez válassza ki a frissítést a legördülő menüben. A legújabb frissítéshez való visszatéréshez kattintson a Legújabb frissítés megjelenítése elemre.
Értesítések lekérése folyamateseményekről
Ha valós idejű értesítéseket szeretne kapni a folyamateseményekről, például egy folyamatfrissítés sikeres befejezéséről vagy egy folyamatfrissítés sikertelenségéről, adjon hozzá a folyamateseményekre vonatkozó e-mai-értesítéseket a folyamat létrehozásakor vagy szerkesztésekor.
Mi a Delta Live Tables eseménynaplója?
A Delta Live Tables eseménynaplója tartalmazza a feldolgozási sorral kapcsolatos összes információt, beleértve az auditnaplókat, az adatminőség-ellenőrzéseket, a folyamat előrehaladását és az adatéletutakat. Az eseménynaplóval nyomon követheti, megértheti és figyelheti az adatfeldolgozási sorok állapotát.
Az eseménynapló bejegyzéseit megtekintheti a Delta Live Tables felhasználói felületén, a Delta Live Tables API-ban vagy közvetlenül az eseménynapló lekérdezésével. Ez a szakasz az eseménynapló közvetlen lekérdezésére összpontosít.
Az események naplózásakor futtatandó egyéni műveleteket is definiálhat, például riasztásokat küldhet eseményhookokkal.
Eseménynapló-séma
Az alábbi táblázat az eseménynapló sémáját ismerteti. Ezen mezők némelyike olyan JSON-adatokat tartalmaz, amelyek elemzést igényelnek bizonyos lekérdezések, például a details
mező végrehajtásához. Az Azure Databricks támogatja az operátort a :
JSON-mezők elemzéséhez. Lásd : (kettőspontjel) operátor.
Mező | Leírás |
---|---|
id |
Az eseménynapló-rekord egyedi azonosítója. |
sequence |
Egy JSON-dokumentum, amely metaadatokat tartalmaz az események azonosításához és megrendeléséhez. |
origin |
Egy JSON-dokumentum, amely az esemény eredetének metaadatait tartalmazza, például a felhőszolgáltatót, a felhőszolgáltatói régiót, user_id pipeline_id vagy pipeline_type a folyamat létrehozásának DBSQL WORKSPACE helyét. |
timestamp |
Az esemény rögzítésének időpontja. |
message |
Az eseményt leíró, ember által olvasható üzenet. |
level |
Az esemény típusa, például , INFO WARN , ERROR vagy METRICS . |
error |
Ha hiba történt, a hibát leíró részletek. |
details |
Az esemény strukturált részleteit tartalmazó JSON-dokumentum. Ez az események elemzéséhez használt elsődleges mező. |
event_type |
Az esemény típusa. |
maturity_level |
Az eseményséma stabilitása. A lehetséges értékek a következők: - STABLE : A séma stabil, és nem változik.- NULL : A séma stabil, és nem változik. Az érték akkor lehet NULL , ha a rekord a maturity_level mező hozzáadása előtt jött létre (2022.37-es kiadás).- EVOLVING : A séma nem stabil, és változhat.- DEPRECATED : A séma elavult, és a Delta Live Tables futtatókörnyezete bármikor leállhat az esemény előállításával. |
Az eseménynapló lekérdezése
Az eseménynapló helye és az eseménynapló lekérdezésére szolgáló felület attól függ, hogy a folyamat a Hive metaadattár vagy a Unity katalógus használatára van-e konfigurálva.
Hive metaadattár
Ha a folyamat táblákat tesz közzé a Hive metaadattárban/system/events
, az eseménynapló a storage
hely alatt lesz tárolva. Ha például úgy konfigurálta a folyamatbeállítást storage
, hogy /Users/username/data
az eseménynaplót a /Users/username/data/system/events
DBFS elérési útján tárolja a rendszer.
Ha nem konfigurálta a storage
beállítást, az alapértelmezett eseménynapló helye a DBFS-ben van /pipelines/<pipeline-id>/system/events
. Ha például a folyamat azonosítója, 91de5e48-35ed-11ec-8d3d-0242ac130003
akkor a tárolási hely a /pipelines/91de5e48-35ed-11ec-8d3d-0242ac130003/system/events
következő.
Létrehozhat egy nézetet, amely leegyszerűsíti az eseménynapló lekérdezését. Az alábbi példa egy ideiglenes nézetet event_log_raw
hoz létre. Ezt a nézetet az ebben a cikkben szereplő példaeseménynapló-lekérdezések használják:
CREATE OR REPLACE TEMP VIEW event_log_raw AS SELECT * FROM delta.`<event-log-path>`;
Cserélje le <event-log-path>
az eseménynapló helyét.
A folyamatfuttatás minden példányát frissítésnek nevezzük. A legutóbbi frissítéshez gyakran szeretne adatokat kinyerni. Futtassa a következő lekérdezést a legutóbbi frissítés azonosítójának megkereséséhez és ideiglenes nézetben való latest_update_id
mentéséhez. Ezt a nézetet az ebben a cikkben szereplő példaeseménynapló-lekérdezések használják:
CREATE OR REPLACE TEMP VIEW latest_update AS SELECT origin.update_id AS id FROM event_log_raw WHERE event_type = 'create_update' ORDER BY timestamp DESC LIMIT 1;
Az eseménynaplót lekérdezheti egy Azure Databricks-jegyzetfüzetben vagy az SQL-szerkesztőben. A példaeseménynapló-lekérdezések futtatásához használjon jegyzetfüzetet vagy SQL-szerkesztőt.
Unity-katalógus
Ha a folyamat táblákat tesz közzé a Unity Catalogban, a folyamat eseménynaplójának lekéréséhez a event_log
táblaértékelt függvényt (TVF) kell használnia. A folyamat eseménynaplóját a folyamatazonosító vagy a táblanév tvF-nek való átadásával kérdezheti le. Például a folyamat eseménynapló-rekordjainak lekérése azonosítóval 04c78631-3dd7-4856-b2a6-7d84e9b2638b
:
SELECT * FROM event_log("04c78631-3dd7-4856-b2a6-7d84e9b2638b")
A táblát my_catalog.my_schema.table1
létrehozó vagy tulajdonos folyamat eseménynapló-rekordjainak lekérése:
SELECT * FROM event_log(TABLE(my_catalog.my_schema.table1))
A TVF meghívásához megosztott fürtöt vagy SQL-raktárt kell használnia. Használhat például egy megosztott fürthöz csatolt jegyzetfüzetet, vagy használhatja az SQL-raktárhoz csatlakoztatott SQL-szerkesztőt .
A folyamat eseményeinek lekérdezésének egyszerűsítése érdekében a folyamat tulajdonosa létrehozhat egy nézetet a event_log
TVF-en keresztül. Az alábbi példa egy folyamat eseménynaplójának nézetét hozza létre. Ezt a nézetet a jelen cikkben szereplő példaeseménynapló-lekérdezések használják.
Feljegyzés
A event_log
TVF-et csak a folyamat tulajdonosa hívhatja meg, és a event_log
TVF-en létrehozott nézetet csak a folyamat tulajdonosa kérdezheti le. A nézet nem osztható meg más felhasználókkal.
CREATE VIEW event_log_raw AS SELECT * FROM event_log("<pipeline-ID>");
Cserélje le <pipeline-ID>
a Delta Live Tables-folyamat egyedi azonosítójával. Az azonosítót a Folyamat részletei panelen találja a Delta Live Tables felhasználói felületén.
A folyamatfuttatás minden példányát frissítésnek nevezzük. A legutóbbi frissítéshez gyakran szeretne adatokat kinyerni. Futtassa a következő lekérdezést a legutóbbi frissítés azonosítójának megkereséséhez és ideiglenes nézetben való latest_update_id
mentéséhez. Ezt a nézetet az ebben a cikkben szereplő példaeseménynapló-lekérdezések használják:
CREATE OR REPLACE TEMP VIEW latest_update AS SELECT origin.update_id AS id FROM event_log_raw WHERE event_type = 'create_update' ORDER BY timestamp DESC LIMIT 1;
Az eseménynaplóból származó életútadatok lekérdezése
Az esemény típusa a leszáradással kapcsolatos információkat tartalmazó eseményekhez tartoznak flow_definition
. Az details:flow_definition
objektum a output_dataset
gráf minden kapcsolatát tartalmazza és input_datasets
definiálja.
A következő lekérdezés használatával kinyerheti a bemeneti és kimeneti adatkészleteket az adatkészletek megtekintéséhez:
SELECT
details:flow_definition.output_dataset as output_dataset,
details:flow_definition.input_datasets as input_dataset
FROM
event_log_raw,
latest_update
WHERE
event_type = 'flow_definition'
AND
origin.update_id = latest_update.id
output_dataset |
input_datasets |
---|---|
customers |
null |
sales_orders_raw |
null |
sales_orders_cleaned |
["customers", "sales_orders_raw"] |
sales_order_in_la |
["sales_orders_cleaned"] |
Adatminőség lekérdezése az eseménynaplóból
Ha a folyamat adathalmazaira vonatkozó elvárásokat határoz meg, az adatminőségi metrikák az details:flow_progress.data_quality.expectations
objektumban lesznek tárolva. Az adatminőséggel kapcsolatos információkat tartalmazó események eseménytípusa flow_progress
. Az alábbi példa lekérdezi az utolsó folyamatfrissítés adatminőségi mérőszámait:
SELECT
row_expectations.dataset as dataset,
row_expectations.name as expectation,
SUM(row_expectations.passed_records) as passing_records,
SUM(row_expectations.failed_records) as failing_records
FROM
(
SELECT
explode(
from_json(
details :flow_progress :data_quality :expectations,
"array<struct<name: string, dataset: string, passed_records: int, failed_records: int>>"
)
) row_expectations
FROM
event_log_raw,
latest_update
WHERE
event_type = 'flow_progress'
AND origin.update_id = latest_update.id
)
GROUP BY
row_expectations.dataset,
row_expectations.name
dataset |
expectation |
passing_records |
failing_records |
---|---|---|---|
sales_orders_cleaned |
valid_order_number |
4083 | 0 |
Adat-hátralék figyelése az eseménynapló lekérdezésével
A Delta Live Tables nyomon követi, hogy mennyi adat található az objektum hátralékában details:flow_progress.metrics.backlog_bytes
. A hátralékmetrikákat tartalmazó események eseménytípusa flow_progress
. Az alábbi példa lekérdezi a legutóbbi folyamatfrissítés hátralékmetrikáit:
SELECT
timestamp,
Double(details :flow_progress.metrics.backlog_bytes) as backlog
FROM
event_log_raw,
latest_update
WHERE
event_type ='flow_progress'
AND
origin.update_id = latest_update.id
Feljegyzés
Előfordulhat, hogy a hátralékmetrikák nem érhetők el a folyamat adatforrástípusától és a Databricks Runtime verziójától függően.
Bővített automatikus skálázási események monitorozása az eseménynaplóból
Az eseménynapló rögzíti a fürt átméretezését, ha engedélyezve van a bővített automatikus skálázás a folyamatokban. A bővített automatikus skálázással kapcsolatos információkat tartalmazó események eseménytípusa autoscale
. A fürt átméretezi a kérelmek adatait az details:autoscale
objektumban. Az alábbi példa lekérdezi a továbbfejlesztett automatikus méretezési fürt átméretezési kéréseit az utolsó folyamatfrissítéshez:
SELECT
timestamp,
Double(
case
when details :autoscale.status = 'RESIZING' then details :autoscale.requested_num_executors
else null
end
) as starting_num_executors,
Double(
case
when details :autoscale.status = 'SUCCEEDED' then details :autoscale.requested_num_executors
else null
end
) as succeeded_num_executors,
Double(
case
when details :autoscale.status = 'PARTIALLY_SUCCEEDED' then details :autoscale.requested_num_executors
else null
end
) as partially_succeeded_num_executors,
Double(
case
when details :autoscale.status = 'FAILED' then details :autoscale.requested_num_executors
else null
end
) as failed_num_executors
FROM
event_log_raw,
latest_update
WHERE
event_type = 'autoscale'
AND
origin.update_id = latest_update.id
Számítási erőforrások kihasználtságának monitorozása
cluster_resources
az események metrikákat biztosítanak a fürtben található feladathelyek számáról, a kihasználtságukról és az ütemezésre váró tevékenységek számáról.
Ha a bővített automatikus skálázás engedélyezve van, cluster_resources
az események az automatikus skálázási algoritmus metrikáit is tartalmazzák, beleértve az latest_requested_num_executors
és optimal_num_executors
a . Az események az algoritmus állapotát is különböző állapotként jelenítik meg, például CLUSTER_AT_DESIRED_SIZE
: , SCALE_UP_IN_PROGRESS_WAITING_FOR_EXECUTORS
és BLOCKED_FROM_SCALING_DOWN_BY_CONFIGURATION
.
Ezek az információk az automatikus skálázási eseményekkel együtt tekinthetők meg, így átfogó képet kaphatnak a továbbfejlesztett automatikus skálázásról.
Az alábbi példa lekérdezi a tevékenységsor méretelőzményeit az utolsó folyamatfrissítéshez:
SELECT
timestamp,
Double(details :cluster_resources.avg_num_queued_tasks) as queue_size
FROM
event_log_raw,
latest_update
WHERE
event_type = 'cluster_resources'
AND
origin.update_id = latest_update.id
Az alábbi példa lekérdezi az utolsó folyamatfrissítés kihasználtsági előzményeit:
SELECT
timestamp,
Double(details :cluster_resources.avg_task_slot_utilization) as utilization
FROM
event_log_raw,
latest_update
WHERE
event_type = 'cluster_resources'
AND
origin.update_id = latest_update.id
Az alábbi példa lekérdezi a végrehajtók számának előzményeit, és csak a bővített automatikus skálázási folyamatokhoz elérhető metrikákat tartalmazza, beleértve az algoritmus által a legújabb kérelemben kért végrehajtók számát, az algoritmus által javasolt végrehajtók optimális számát a legújabb metrikák alapján, valamint az automatikus skálázási algoritmus állapotát:
SELECT
timestamp,
Double(details :cluster_resources.num_executors) as current_executors,
Double(details :cluster_resources.latest_requested_num_executors) as latest_requested_num_executors,
Double(details :cluster_resources.optimal_num_executors) as optimal_num_executors,
details :cluster_resources.state as autoscaling_state
FROM
event_log_raw,
latest_update
WHERE
event_type = 'cluster_resources'
AND
origin.update_id = latest_update.id
Delta Live Tables-folyamatok naplózása
A Delta Live Tables eseménynapló-rekordjai és más Azure Databricks auditnaplók segítségével teljes képet kaphat arról, hogyan frissülnek az adatok a Delta Live Tables-ben.
A Delta Live Tables a feldolgozási sor tulajdonosának hitelesítő adatait használja a frissítések futtatásához. A feldolgozási sor tulajdonosának frissítésével módosíthatja a használt hitelesítő adatokat. A Delta Live Tables rögzíti a felhasználót a feldolgozási sor műveletei esetében, beleértve a feldolgozási sor létrehozását, a konfiguráció szerkesztését és a frissítések aktiválását.
A Unity Catalog eseményei a Unity Catalog naplózási eseményeinek hivatkozását tekintik meg.
Felhasználói műveletek lekérdezése az eseménynaplóban
Az eseménynaplóval naplózhatja az eseményeket, például a felhasználói műveleteket. A felhasználói műveletekre vonatkozó információkat tartalmazó események eseménytípusa user_action
.
A művelet adatait a user_action
mező objektuma details
tárolja. A következő lekérdezéssel naplót hozhat létre a felhasználói eseményekről. A lekérdezésben használt nézet létrehozásához event_log_raw
tekintse meg az eseménynapló lekérdezését.
SELECT timestamp, details:user_action:action, details:user_action:user_name FROM event_log_raw WHERE event_type = 'user_action'
timestamp |
action |
user_name |
---|---|---|
2021-05-20T19:36:03.517+0000 | START |
user@company.com |
2021-05-20T19:35:59.913+0000 | CREATE |
user@company.com |
2021-05-27T00:35:51.971+0000 | START |
user@company.com |
Futásidejű információk
Megtekintheti a folyamatfrissítések futtatókörnyezeti adatait, például a frissítés Databricks Runtime-verzióját:
SELECT details:create_update:runtime_version:dbr_version FROM event_log_raw WHERE event_type = 'create_update'
dbr_version |
---|
11,0 |