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


Feladatok rendszertáblázatának 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.

Feljegyzés

A lakeflow sémát korábban a . néven workflowismerték. Mindkét séma tartalma azonos. Ha láthatóvá szeretné tenni a lakeflow sémát, külön kell engedélyeznie.

Ez a cikk azt ismerteti, hogyan használhatja a rendszertáblákat a lakeflow fiókban lévő feladatok monitorozására. Ezek a táblák a fiókban lévő összes munkaterület rekordjait tartalmazzák, amelyeket ugyanabban a felhőrégióban helyeznek üzembe. Egy másik régió rekordjainak megtekintéséhez meg kell tekintenie az adott régióban üzembe helyezett munkaterület tábláinak tartalmát.

system.lakeflow fiókadminisztrátornak kell engedélyeznie. Ezt a SystemSchemas API-val engedélyezheti.

A feladatok költségeinek és állapotának megfigyelhetőségére vonatkozó példákért lásd : Feladatköltségek monitorozása rendszertáblákkal.

Elérhető feladattáblák

A feladatokkal kapcsolatos összes rendszertábla a system.lakeflow sémában található. A séma jelenleg négy táblát üzemeltet:

  • jobs: Nyomon követi a feladatok létrehozását, törlését és alapvető információit.
  • job_tasks: Nyomon követi a feladatfeladatok létrehozását, törlését és alapvető adatait.
  • job_run_timeline: Rögzíti a feladatfuttatások kezdetét, végét és eredményként kapott állapotát.
  • job_task_run_timeline: Rögzíti a feladattevékenységek kezdési, befejezési és eredményállapotát.

Feladattábla sémája

A jobs tábla lassan változó dimenziótábla. Amikor egy sor megváltozik, a rendszer egy új sort bocsát ki, logikailag lecserélve az előzőt.

Táblázat elérési útja: Ez a rendszertábla a következő helyen system.lakeflow.jobstalálható: .

Oszlop neve Adattípus Leírás
account_id húr Annak a fióknak az azonosítója, amelyhez ez a feladat tartozik.
workspace_id húr Annak a munkaterületnek az azonosítója, amelyhez a feladat tartozik.
job_id húr A feladat azonosítója. Ez a kulcs csak egyetlen munkaterületen belül egyedi.
name húr A feladat felhasználó által megadott neve.
description húr A feladat felhasználó által megadott leírása. A 2024. augusztus vége előtt kibocsátott sorok nem lesznek kitöltve.
creator_id húr A feladatot létrehozó tag azonosítója.
tags húr A feladathoz társított felhasználó által megadott egyéni címkék.
change_time időbélyeg A feladat utolsó módosításának időpontja. 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.
delete_time időbélyeg A feladat felhasználó általi törlésének időpontja. 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.
run_as húr Annak a felhasználónak vagy szolgáltatásnévnek az azonosítója, akinek az engedélyeit a feladat futtatásához használják.

Feladat-feladattábla sémája

A feladattevékenységek táblázata lassan változó dimenziótábla. Amikor egy sor megváltozik, a rendszer egy új sort bocsát ki, logikailag lecserélve az előzőt.

Táblázat elérési útja: Ez a rendszertábla a következő helyen system.lakeflow.job_taskstalálható: .

Oszlop neve Adattípus Leírás
account_id húr Annak a fióknak az azonosítója, amelyhez ez a feladat tartozik.
workspace_id húr Annak a munkaterületnek az azonosítója, amelyhez a feladat tartozik.
job_id húr A feladat azonosítója. Ez a kulcs csak egyetlen munkaterületen belül egyedi.
task_key húr A feladat egy tevékenységének referenciakulcsa. Ez a kulcs csak egyetlen feladaton belül egyedi.
depends_on_keys array A tevékenység összes felsőbb rétegbeli függőségének tevékenységkulcsai.
change_time időbélyeg A tevékenység utolsó módosításának időpontja. 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.
delete_time időbélyeg Az az időpont, amikor a felhasználó törölt egy feladatot. 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.

Feladatfuttatási ütemterv táblázatséma

A feladatfuttatás ütemtervtáblája nem módosítható és befejezhető a létrehozásakor.

Táblázat elérési útja: Ez a rendszertábla a következő helyen system.lakeflow.job_run_timelinetalálható: .

Oszlop neve Adattípus Leírás
account_id húr Annak a fióknak az azonosítója, amelyhez ez a feladat tartozik.
workspace_id húr Annak a munkaterületnek az azonosítója, amelyhez a feladat tartozik.
job_id húr A feladat azonosítója. Ez a kulcs csak egyetlen munkaterületen belül egyedi.
run_id húr A feladat futtatásának azonosítója.
period_start_time időbélyeg A futtatás kezdő időpontja vagy az időszak. 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.
period_end_time időbélyeg A futtatás vagy az időszak befejezési ideje. 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.
trigger_type húr A futtatás indítására képes eseményindító típusa. A lehetséges értékekért tekintse meg az eseményindító típusértékeket
run_type húr A feladatfuttatás típusa. A lehetséges értékekért tekintse meg a Típusértékek futtatása című témakört.
run_name húr A feladat futtatásához a felhasználó által megadott futtatási név társítva van.
compute_ids array A szülőfeladat futtatásához szükséges számítási azonosítókat tartalmazó tömb. A fürtök által SUBMIT_RUN használt és WORKFLOW_RUN futtatott típusok azonosítására szolgál. További számítási információkért tekintse meg a táblát job_task_run_timeline . A 2024. augusztus vége előtt kibocsátott sorok nem lesznek kitöltve.
result_state húr A feladat futtatásának eredménye. A lehetséges értékekért tekintse meg az Eredmény állapotértékeket.
termination_code húr A feladat futtatásának végpontkódja. A lehetséges értékekért tekintse meg a Végpontkód értékeit. A 2024. augusztus vége előtt kibocsátott sorok nem lesznek kitöltve.
job_parameters térkép A feladatfuttatásban használt feladatszintű paraméterek. A 2024. augusztus vége előtt kibocsátott sorok nem lesznek kitöltve.

Triggertípus értékei

Az oszlop lehetséges értékei a trigger_type következők:

  • CONTINUOUS
  • CRON
  • FILE_ARRIVAL
  • ONETIME
  • ONETIME_RETRY

Típusértékek futtatása

Az oszlop lehetséges értékei a run_type következők:

  • JOB_RUN
  • SUBMIT_RUN: A POST /api/2.1/jobs/run/submit használatával létrehozott egyszeri futtatás.
  • WORKFLOW_RUN: A jegyzetfüzet munkafolyamatából indított feladatfuttatás.

Eredményállapot-értékek

Az oszlop lehetséges értékei a result_state következők:

  • SUCCEEDED
  • FAILED
  • SKIPPED
  • CANCELLED
  • TIMED_OUT
  • ERROR
  • BLOCKED

Megszüntetési kód értékei

Az oszlop lehetséges értékei a termination_code következők:

  • SUCCESS
  • CANCELLED
  • SKIPPED
  • DRIVER_ERROR
  • CLUSTER_ERROR
  • REPOSITORY_CHECKOUT_FAILED
  • INVALID_CLUSTER_REQUEST
  • WORKSPACE_RUN_LIMIT_EXCEEDED
  • FEATURE_DISABLED
  • CLUSTER_REQUEST_LIMIT_EXCEEDED
  • STORAGE_ACCESS_ERROR
  • RUN_EXECUTION_ERROR
  • UNAUTHORIZED_ERROR
  • LIBRARY_INSTALLATION_ERROR
  • MAX_CONCURRENT_RUNS_EXCEEDED
  • MAX_SPARK_CONTEXTS_EXCEEDED
  • RESOURCE_NOT_FOUND
  • INVALID_RUN_CONFIGURATION
  • CLOUD_FAILURE
  • MAX_JOB_QUEUE_SIZE_EXCEEDED

Feladat-futtatási ütemtervtábla sémája

A feladat feladatfuttatási ütemtervtáblája nem módosítható és befejezhető a létrehozásakor.

Táblázat elérési útja: Ez a rendszertábla a következő helyen system.lakeflow.job_task_run_timelinetalálható: .

Oszlop neve Adattípus Leírás
account_id húr Annak a fióknak az azonosítója, amelyhez ez a feladat tartozik.
workspace_id húr Annak a munkaterületnek az azonosítója, amelyhez a feladat tartozik.
job_id húr A feladat azonosítója. Ez a kulcs csak egyetlen munkaterületen belül egyedi.
run_id húr A feladatfuttatás azonosítója.
job_run_id húr A feladat futtatásának azonosítója. A 2024. augusztus vége előtt kibocsátott sorok nem lesznek kitöltve.
parent_run_id húr A szülőfuttatás azonosítója. A 2024. augusztus vége előtt kibocsátott sorok nem lesznek kitöltve.
period_start_time időbélyeg A tevékenység vagy az időszak kezdési időpontja. 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.
period_end_time időbélyeg A tevékenység vagy az időszak befejezési ideje. 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.
task_key húr A feladat egy tevékenységének referenciakulcsa. Ez a kulcs csak egyetlen feladaton belül egyedi.
compute_ids array A feladatfeladat által használt számítási azonosítókat tartalmazó tömb.
result_state húr A feladat feladatfuttatásának eredménye.
termination_code húr A feladatfuttatás végpontkódja. Tekintse meg a táblázat alatti lehetséges értékeket. A 2024. augusztus vége előtt kibocsátott sorok nem lesznek kitöltve.

Az oszlop lehetséges értékei a result_state következők:

  • SUCCEEDED
  • FAILED
  • SKIPPED
  • CANCELLED
  • TIMED_OUT
  • ERROR
  • BLOCKED

Az oszlop lehetséges értékei a termination_code következők:

  • SUCCESS
  • CANCELLED
  • SKIPPED
  • DRIVER_ERROR
  • CLUSTER_ERROR
  • REPOSITORY_CHECKOUT_FAILED
  • INVALID_CLUSTER_REQUEST
  • WORKSPACE_RUN_LIMIT_EXCEEDED
  • FEATURE_DISABLED
  • CLUSTER_REQUEST_LIMIT_EXCEEDED
  • STORAGE_ACCESS_ERROR
  • RUN_EXECUTION_ERROR
  • UNAUTHORIZED_ERROR
  • LIBRARY_INSTALLATION_ERROR
  • MAX_CONCURRENT_RUNS_EXCEEDED
  • MAX_SPARK_CONTEXTS_EXCEEDED
  • RESOURCE_NOT_FOUND
  • INVALID_RUN_CONFIGURATION
  • CLOUD_FAILURE
  • MAX_JOB_QUEUE_SIZE_EXCEEDED

Példa a lekérdezésekre

Ez a szakasz olyan minta lekérdezéseket tartalmaz, a segítségével a lehető legtöbbet hozhatja ki a lakeflow-táblákból.

A feladatok legújabb verziójának lekérése

Mivel a táblák és job_tasks a jobs táblák lassan módosítják a dimenziótáblákat, a rendszer minden módosításkor új rekordot hoz létre. A feladat legújabb verziójának lekéréséhez az oszlop alapján change_time rendelhet.

SELECT
  *,
  ROW_NUMBER() OVER(PARTITION BY workspace_id, job_id ORDER BY change_time DESC) as rn
FROM
  system.lakeflow.jobs QUALIFY rn=1

Napi feladatok száma munkaterület szerint

Ez a lekérdezés munkaterületek szerint lekéri a napi feladatok számát az elmúlt 7 napban:

SELECT
  workspace_id,
  COUNT(DISTINCT run_id) as job_count,
  to_date(period_start_time) as date
FROM system.lakeflow.job_run_timeline
WHERE
  period_start_time > CURRENT_TIMESTAMP() - INTERVAL 7 DAYS
GROUP BY ALL

Napi feladatállapot-elosztás munkaterület szerint

Ez a lekérdezés az elmúlt 7 nap feladatainak napi számát adja vissza munkaterületek szerint, a feladatfuttatás eredménye alapján elosztva. A lekérdezés eltávolítja azokat a rekordokat, amelyekben a feladatok függőben lévő vagy futó állapotban vannak.

SELECT
  workspace_id,
  COUNT(DISTINCT run_id) as job_count,
  result_state,
  to_date(period_start_time) as date
FROM system.lakeflow.job_run_timeline
WHERE
  period_start_time > CURRENT_TIMESTAMP() - INTERVAL 7 DAYS
  AND result_state IS NOT NULL
GROUP BY ALL

A leghosszabb futó feladatok áttekintése

Ez a lekérdezés a feladatfuttatások másodpercben mért átlagos idejét adja vissza. A rekordok feladat szerint vannak rendszerezve. Az első 90 és a 95 percentilis oszlop a feladat leghosszabb futásainak átlagos hosszát jeleníti meg.

with job_run_duration as (
    SELECT
        workspace_id,
        job_id,
        run_id,
        CAST(SUM(period_end_time - period_start_time) AS LONG) as duration
    FROM
        system.lakeflow.job_run_timeline
    WHERE
      period_start_time > CURRENT_TIMESTAMP() - INTERVAL 7 DAYS
    GROUP BY ALL
),
most_recent_jobs as (
  SELECT
    *,
    ROW_NUMBER() OVER(PARTITION BY workspace_id, job_id ORDER BY change_time DESC) as rn
  FROM
    system.lakeflow.jobs QUALIFY rn=1
)
SELECT
    t1.workspace_id,
    t1.job_id,
    first(t2.name, TRUE) as name,
    COUNT(DISTINCT t1.run_id) as runs,
    MEAN(t1.duration) as mean_seconds,
    AVG(t1.duration) as avg_seconds,
    PERCENTILE(t1.duration, 0.9) as p90_seconds,
    PERCENTILE(t1.duration, 0.95) as p95_seconds
FROM
    job_run_duration t1
    LEFT OUTER JOIN most_recent_jobs t2 USING (workspace_id, job_id)
GROUP BY ALL
ORDER BY mean_seconds DESC
LIMIT 100

A runSubmit (azaz a runSubmit) használatával végrehajtott feladatok feladatfuttatási ideje. Légáramlás)

Ez a lekérdezés előzmény futtatókörnyezetet biztosít egy adott feladathoz a run_name paraméter alapján. A lekérdezés működéséhez be kell állítania a run_name.

Az elemzés időtartamát a szakasz napjainak INTERVAL 60 DAYS számának módosításával is módosíthatja.

SELECT
  workspace_id,
  run_id,
  SUM(period_end_time - period_start_time) as run_time
FROM system.lakeflow.job_run_timeline
WHERE
  run_type="SUBMIT_RUN"
  AND run_name={run_name}
  AND period_start_time > CURRENT_TIMESTAMP() - INTERVAL 60 DAYS
GROUP BY ALL

Feladatfuttatás elemzése

Ez a lekérdezés előzmény futtatókörnyezetet biztosít egy adott feladathoz. Ahhoz, hogy a lekérdezés működjön, be kell állítania egy és job_id.workspace_id

Az elemzés időtartamát a szakasz napjainak INTERVAL 60 DAYS számának módosításával is módosíthatja.

with job_run_duration as (
    SELECT
        workspace_id,
        job_id,
        run_id,
        min(period_start_time) as run_start,
        max(period_start_time) as run_end,
        CAST(SUM(period_end_time - period_start_time) AS LONG) as duration,
        FIRST(result_state, TRUE) as result_state
    FROM
        system.lakeflow.job_run_timeline
    WHERE
      period_start_time > CURRENT_TIMESTAMP() - INTERVAL 60 DAYS
      AND workspace_id={workspace_id}
      AND job_id={job_id}
    GROUP BY ALL
    ORDER BY run_start DESC
),
most_recent_jobs as (
  SELECT
    *,
    ROW_NUMBER() OVER(PARTITION BY workspace_id, job_id ORDER BY change_time DESC) as rn
  FROM
    system.lakeflow.jobs QUALIFY rn=1
)
SELECT
    t1.workspace_id,
    t1.job_id,
    t2.name,
    t1.run_id,
    t1.run_start,
    t1.run_end,
    t1.duration,
    t1.result_state
FROM job_run_duration t1
    LEFT OUTER JOIN most_recent_jobs t2 USING (workspace_id, job_id)

A teljes körű számításon futó feladatok

Ez a lekérdezés csatlakozik a rendszertáblához, hogy a compute.clusters feladatok számítása helyett a teljes célú számításon futó legutóbbi feladatokat adja vissza.

with clusters AS (
  SELECT
    *,
    ROW_NUMBER() OVER(PARTITION BY workspace_id, cluster_id ORDER BY change_time DESC) as rn
  FROM system.compute.clusters
  WHERE cluster_source="UI" OR cluster_source="API"
  QUALIFY rn=1
),
job_tasks_exploded AS (
  SELECT
    workspace_id,
    job_id,
    EXPLODE(compute_ids) as cluster_id
  FROM system.lakeflow.job_task_run_timeline
  WHERE period_start_time >= CURRENT_DATE() - INTERVAL 30 DAY
),
all_purpose_cluster_jobs AS (
  SELECT
    t1.*,
    t2.cluster_name,
    t2.owned_by,
    t2.dbr_version
  FROM job_tasks_exploded t1
    INNER JOIN clusters t2 USING (workspace_id, cluster_id)
)
SELECT * FROM all_purpose_cluster_jobs LIMIT 10;

Újrapróbálkozott feladatfuttatások

Ez a lekérdezés összegyűjti az újrapróbálkozott feladatfuttatások listáját az egyes futtatások újrapróbálkozási számával.

with repaired_runs as (
  SELECT
    workspace_id, job_id, run_id, COUNT(*) - 1 as retries_count
  FROM system.lakeflow.job_run_timeline
  WHERE result_state IS NOT NULL
  GROUP BY ALL
  HAVING retries_count > 0
)
SELECT
  *
FROM repaired_runs
ORDER BY retries_count DESC
LIMIT 10;