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


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 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:

  1. Kattintson az Értesítés hozzáadásagombra.
  2. Adjon meg egy vagy több e-mail-címet az értesítések fogadásához.
  3. Kattintson az egyes értesítéstípusok jelölőnégyzetére a konfigurált e-mail-címekre való küldéshez.
  4. 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 DLT-diagram ikonját 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 DLT-diagram ikonjára 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_idvagy 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, ERRORvagy METRICS.
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 NULL lehet, 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 DLT-futtatókörnyezet bármikor leállhat az esemény előállításával.
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.

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_definitionesemé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_typeoperation_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