DLT-folyamatok figyelése
Ez a cikk a DLT-folyamatok beépített monitorozási és megfigyelhetőségi funkcióinak használatát ismerteti. Ezek a funkciók olyan feladatokat támogatnak, mint például:
- A folyamatfrissítések előrehaladásának és állapotának megfigyelése. Lásd Milyen folyamatadatok érhetők el a felhasználói felületen?.
- Riasztás a folyamat eseményeiről, például a folyamatfrissítések sikerességéről vagy sikertelenségéről. Lásd: E-mail-értesítések hozzáadása folyamateseményekhez.
- A streamelési források, például az Apache Kafka és az Automatikus betöltő (nyilvános előzetes verzió) metrikáinak megtekintése. Lásd a streamelési metrikák megtekintését.
- Részletes információk kinyerése a folyamatfrissítésekről, például az adatkisorolásról, az adatminőségi metrikákról és az erőforrás-használatról. Lásd Mi a DLT eseménynaplója?.
- Meghatározott események bekövetkezésekor végrehajtandó egyéni műveletek meghatározása. Lásd: DLT-folyamatok egyéni monitorozásának definiálása eseményhookokkal.
A lekérdezési teljesítmény vizsgálatához és diagnosztizálásához tekintse meg DLT-folyamatok lekérdezési előzményeit. Ez a funkció nyilvános előzetes verzióban érhető el.
E-mail-értesítések hozzáadása folyamateseményekhez
Egy vagy több e-mail-címet úgy konfigurálhat, hogy értesítéseket kapjon az alábbiak esetén:
- Egy adatfolyam frissítése sikeresen befejeződött.
- A csővezetékfrissítés sikertelen, újrapróbálható vagy nem újrapróbálható hibával. Ha bejelöli ezt a lehetőséget, értesítést szeretne kapni az összes folyamathibáról.
- A folyamatfrissítés nem újrapróbálkozható (végzetes) hibával meghiúsul. Ha ezt a beállítást választja, csak akkor kap értesítést, ha nem újrapróbálkozható hiba történik.
- Egyetlen adatfolyam megszakad.
Az e-mail-értesítések konfigurálása, amikor Ön létrehoz vagy szerkeszt egy munkafolyamatot:
- Kattintson az Értesítés hozzáadásagombra.
- Adjon meg egy vagy több e-mail-címet az értesítések fogadásához.
- Kattintson az egyes értesítéstípusok jelölőnégyzetére a konfigurált e-mail-címekre való küldéshez.
- Kattintson az Értesítés hozzáadásagombra.
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 részletek közé tartozik a folyamat azonosítója, a forráskód, 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 jelenítsen meg. 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 Graphelemre.
A Run as felhasználó a folyamat tulajdonosa, és a folyamatfrissítések ennek a felhasználónak az engedélyeivel futnak. A run as
felhasználó módosításához kattintson Engedélyek elemre, és módosítsa a folyamat tulajdonosát.
Hogyan tekintheti meg az adathalmaz részleteit?
Ha a folyamatgráfban vagy adathalmazlistában egy adatkészletre kattint, az adathalmaz részletei láthatók. 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.
Válassza ki a frissítést a legördülő menüben a frissítés gráfjának, részleteinek és eseményeinek megtekintéséhez. A legújabb frissítéshez való visszatéréshez kattintson a A legújabb frissítés megjelenítéseelemre.
Streamelési metrikák megtekintése
Fontos
A DLT teljesítményének megfigyelése nyilvános előzetes verzióban van.
A streamelési metrikákat a Spark strukturált streamelés által támogatott adatforrásokból tekintheti meg, például az Apache Kafka, az Amazon Kinesis, az Automatikus betöltő és a Delta táblákból, a DLT-folyamat minden streamelési folyamatához. A metrikák diagramként jelennek meg a DLT felhasználói felületén a jobb oldali panelen, és tartalmazzák a hátralék másodperceit, a hátralék bájtjait, a hátralékrekordokat és a hátralékfájlokat. A diagramok a percenként összesített maximális értéket jelenítik meg, és egy eszköztipp mutatja a maximális értékeket, amikor a diagram fölé viszi az egérmutatót. Az adatok az aktuális időponttól számítva az utolsó 48 órára korlátozódnak.
Az elérhető streamelési metrikákkal rendelkező folyamatok táblázatai a ikont jelenítik meg, amikor a folyamat DAG-ját a felhasználói felület Graph nézetben tekintik meg. A streamelési metrikák megtekintéséhez kattintson a
a streamelési metrikadiagram megjelenítéséhez a jobb oldali panel Folyamatok lapján. Csak a streaming metrikákat tartalmazó táblázatok megtekintéséhez szűrőt is alkalmazhat úgy, hogy először a Lista, majd a Streamelési metrikákelemre kattint.
Minden streamforrás csak bizonyos metrikákat támogat. A streamelési forrás által nem támogatott metrikák nem tekinthetők meg a felhasználói felületen. Az alábbi táblázat a támogatott streamelési forrásokhoz elérhető metrikákat mutatja be:
forrás | várólista bájtok | elmaradt feladatok nyilvántartása | várakozási idő másodpercekben | várólistafájlok |
---|---|---|---|---|
Kafka | ✓ | ✓ | ||
Kinézis | ✓ | ✓ | ||
Delta | ✓ | ✓ | ||
Automatikus betöltő | ✓ | ✓ | ||
Google Pub/Sub | ✓ | ✓ |
Mi a DLT-eseménynapló?
A DLT eseménynaplója tartalmazza a folyamattal 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 adatsorokat. Az eseménynaplóval nyomon követheti, megértheti és figyelheti az adatfolyamok állapotát.
Az eseménynapló bejegyzéseit megtekintheti a DLT felhasználói felületén, a DLT API-, 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 meghatározhat, például riasztásokat küldhet, eseményösszekötőkkel.
Fontos
Ne törölje az eseménynaplót, illetve azt a szülőkatalógust vagy sémát, amelyben az eseménynaplót közzétette. Az eseménynapló törlése azt eredményezheti, hogy a folyamat nem frissül a jövőbeli futtatások során.
eseménynapló sémája
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 |
JSON-dokumentum, amely az esemény eredetének metaadatait tartalmazza, például a felhőszolgáltatót, a felhőszolgáltató régióját, user_id , pipeline_id vagy pipeline_type a folyamat létrehozásának helyének megjelenítéséhez, DBSQL vagy WORKSPACE . |
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 . |
maturity_level |
Az eseményséma stabilitása. A lehetséges értékek a következők:
|
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. |
Az eseménynapló lekérdezése
Jegyzet
Ez a szakasz a Unity Catalogtal konfigurált folyamatok eseménynaplóinak és az alapértelmezett közzétételi módnak az alapértelmezett viselkedését és szintaxisát ismerteti.
- Az örökölt közzétételi módot használó Unity Catalog-folyamatok működésével kapcsolatban lásd: A Unity Catalog örökölt közzétételi módú folyamatainak eseménynaplóval való használata.
- A Hive metaadattár-folyamatok viselkedésével és szintaxisával kapcsolatban lásd: Hive metaadattár-folyamatok eseménynaplójának használata.
A DLT alapértelmezés szerint egy rejtett Delta-táblába írja az eseménynaplót az alapértelmezett katalógusban és a folyamathoz konfigurált sémában. Rejtett állapotban a táblát továbbra is lekérdezheti az összes megfelelő jogosultsággal rendelkező felhasználó. Alapértelmezés szerint csak a folyamat tulajdonosa kérdezheti le az eseménynapló-táblát.
Alapértelmezés szerint a rejtett eseménynapló neve event_log_{pipeline_id}
formátumban van formázva, ahol a folyamatazonosító a rendszer által hozzárendelt UUID, a vonások helyett aláhúzásjelekkel.
Az eseménynapló közzétételéhez használhatja a JSON-konfigurációt. Eseménynapló közzétételekor megadhatja az eseménynapló nevét, és opcionálisan megadhat egy katalógust és sémát, ahogyan az alábbi példában látható:
{
"id": "ec2a0ff4-d2a5-4c8c-bf1d-d9f12f10e749",
"name": "billing_pipeline",
"event_log": {
"catalog": "catalog_name",
"schema": "schema_name",
"name": "event_log_table_name"
}
}
Az eseménynapló helye sémahelyként is szolgál a folyamat automatikus betöltő lekérdezéseihez. A Databricks azt javasolja, hogy a jogosultságok módosítása előtt hozzon létre egy nézetet az eseménynapló-táblán, mivel egyes számítási beállítások lehetővé teszik a felhasználók számára, hogy hozzáférjenek a séma metaadataihoz, ha az eseménynapló-tábla közvetlenül meg van osztva. Az alábbi példaszintaxis létrehoz egy nézetet egy eseménynapló-táblában, és a jelen cikkben szereplő példaeseménynapló-lekérdezésekben használatos.
CREATE VIEW event_log_raw
AS SELECT * FROM catalog_name.schema_name.event_log_table_name;
A pipeline futtatásának minden egyes példányát frissítésnek nevezik. 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 mentse azt latest_update
ideiglenes nézetben. 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;
A Unity Catalogban a nézetek támogatják a streamelési lekérdezéseket. Az alábbi példa strukturált streamelést használ egy eseménynapló-tábla tetején definiált nézet lekérdezéséhez:
df = spark.readStream.table("event_log_raw")
A csővezeték tulajdonosa közzéteheti az eseménynaplót nyilvános Delta-táblaként a csővezeték konfigurációja Publish event log to metastore
szakaszában található opció aktiválásával. Igény szerint megadhat egy új táblanevet, katalógust és sémát az eseménynaplóhoz.
Keresés a származási információkra az eseménynaplóból
A származásra vonatkozó információkat tartalmazó események flow_definition
eseménytípussal rendelkeznek. A details:flow_definition
objektum tartalmazza a gráf minden kapcsolatát meghatározó output_dataset
és input_datasets
.
A következő lekérdezés használatával kimutathatja a bemeneti és kimeneti adatkészleteket a származási információ 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ákat a rendszer a details:flow_progress.data_quality.expectations
objektumban tárolja. 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 |
Automatikus betöltő események lekérdezése az eseménynaplóból
A DLT eseményeket hoz létre, amikor az Automatikus betöltő feldolgozza a fájlokat. Automatikus betöltő események esetén a event_type
operation_progress
, a details:operation_progress:type
pedig AUTO_LOADER_LISTING
vagy AUTO_LOADER_BACKFILL
. A details:operation_progress
objektum status
, duration_ms
, auto_loader_details:source_path
és auto_loader_details:num_files_listed
mezőket is tartalmaz.
Az alábbi példa lekérdezi az Automatikus betöltő eseményeket a legújabb frissítéshez:
SELECT
timestamp,
details:operation_progress.status,
details:operation_progress.type,
details:operation_progress:auto_loader_details
FROM
event_log_raw,
latest_update
WHERE
event_type like 'operation_progress'
AND
origin.update_id = latest.update_id
AND
details:operation_progress.type in ('AUTO_LOADER_LISTING', 'AUTO_LOADER_BACKFILL')
Adat-hátralék figyelése az eseménynapló lekérdezésével
A DLT nyomon követi, hogy mennyi adat található az details:flow_progress.metrics.backlog_bytes
objektum hátralékában. 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
Jegyzet
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.
Automatikus skálázási események monitorozása az eseménynaplóból azon folyamatok esetében, ahol a szerver nélküli mód nincs engedélyezve
A kiszolgáló nélküli számítást nem használó DLT-folyamatok esetében az eseménynapló rögzíti a fürt átméretezését, ha a folyamatokban engedélyezve van a fokozott automatikus skálázás. A továbbfejlesztett automatikus skálázással kapcsolatos információkat tartalmazó események eseménytípusa autoscale
. A fürt átméretezési kérelmek információit a details:autoscale
objektum tárolja. Az alábbi példa lekérdezi a továbbfejlesztett automatikus skálázá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
események metrikákat biztosítanak a fürtben lévő feladathelyek számáról, azok kihasználtságáról, és arról, hogy hány feladat vár ütemezésre.
Ha engedélyezve van a továbbfejlesztett automatikus skálázás, cluster_resources
események az automatikus skálázási algoritmus metrikáit is tartalmazzák, beleértve a latest_requested_num_executors
és a optimal_num_executors
. 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 továbbfejlesztett 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
DLT-folyamatok naplózása
A DLT eseménynapló-rekordjai és más Azure Databricks-naplók segítségével teljes képet kaphat az adatok DLT-ben való frissítéséről.
A DLT a folyamattulajdonos hitelesítő adatait használja a frissítések futtatásához. A pipeline tulajdonosának frissítésével módosíthatja a használt hitelesítő adatokat. A DLT rögzíti a felhasználót a folyamat műveleteihez, beleértve a folyamat létrehozását, a konfiguráció szerkesztését és a frissítések aktiválását.
Az Unity Catalog audit eseményeiről szóló tájékoztatásért tekintse meg a Unity Catalog eseményeket.
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űveletre vonatkozó információkat a user_action
mezőben lévő details
objektum 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 event_log_raw
nézet létrehozásához tekintse meg Az eseménynapló lekérdezésecímű témakört.
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 |
futtatókörnyezet információi
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 |