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


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_idpipeline_idvagy pipeline_type a folyamat létrehozásának DBSQL WORKSPACEhelyé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 , INFOWARN, ERRORvagy 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/dataaz 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-0242ac130003akkor a tárolási hely a /pipelines/91de5e48-35ed-11ec-8d3d-0242ac130003/system/eventskö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_rawhoz 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.table1lé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_executorsa . 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