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 workflow
ismerté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.jobs
talá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_tasks
talá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_timeline
talá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_timeline
talá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
- Napi feladatok száma munkaterület szerint
- Napi feladatállapot-elosztás munkaterület szerint
- A leghosszabb futó feladatok áttekintése
- A runSubmit (azaz a runSubmit) használatával végrehajtott feladatok feladatfuttatási ideje. Légáramlás)
- Feladatfuttatás elemzése
- A teljes körű számításon futó feladatok
- Újrapróbálkozott feladatfuttatások
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;