Naslaginformatie over systeemtabel taken
Belangrijk
Deze systeemtabel bevindt zich in openbare preview. Voor toegang tot de tabel moet het schema zijn ingeschakeld in uw system
catalogus. Zie Systeemtabelschema's inschakelen voor meer informatie.
Notitie
Het lakeflow
schema was voorheen bekend als workflow
. De inhoud van beide schema's is identiek. Als u het lakeflow
schema zichtbaar wilt maken, moet u het afzonderlijk inschakelen.
Dit artikel bevat een naslaginformatie over het gebruik van de systeemtabellen voor het lakeflow
bewaken van taken in uw account. Deze tabellen bevatten records uit alle werkruimten in uw account die zijn geïmplementeerd in dezelfde cloudregio. Als u records uit een andere regio wilt zien, moet u de tabellen bekijken uit een werkruimte die in die regio is geïmplementeerd.
system.lakeflow
moet zijn ingeschakeld door een accountbeheerder. U kunt deze inschakelen met behulp van de SystemSchemas-API.
Zie Taakkosten bewaken met systeemtabellen voor voorbeelden van het gebruik van deze tabellen voor taakkosten en statusobserveerbaarheid.
Beschikbare taaktabellen
Alle systeemtabellen met betrekking tot taken bevinden zich in het system.lakeflow
schema. Op dit moment host het schema vier tabellen:
jobs
: houdt het maken, verwijderen en basisinformatie van taken bij.job_tasks
: houdt het maken, verwijderen en basisinformatie van taaktaken bij.job_run_timeline
: registreert de begin-, eind- en resulterende status van de taakuitvoeringen.job_task_run_timeline
: registreert de begin-, eind- en resulterende status van taaktaken.
Taaktabelschema
De jobs
tabel is een langzaam veranderende dimensietabel. Wanneer een rij wordt gewijzigd, wordt er een nieuwe rij verzonden, waarbij de vorige logisch wordt vervangen.
Tabelpad: Deze systeemtabel bevindt zich op system.lakeflow.jobs
.
Kolomnaam | Gegevenstype | Beschrijving |
---|---|---|
account_id |
tekenreeks | De id van het account waartoe deze taak behoort. |
workspace_id |
tekenreeks | De id van de werkruimte waartoe deze taak behoort. |
job_id |
tekenreeks | De id van de functie. Deze sleutel is slechts uniek binnen één werkruimte. |
name |
tekenreeks | De door de gebruiker opgegeven naam van de taak. |
description |
tekenreeks | De door de gebruiker opgegeven beschrijving van de taak. Niet ingevuld voor rijen die eind augustus 2024 zijn verzonden. |
creator_id |
tekenreeks | De id van de principal die de taak heeft gemaakt. |
tags |
tekenreeks | De door de gebruiker opgegeven aangepaste tags die aan deze taak zijn gekoppeld. |
change_time |
timestamp | Het tijdstip waarop de taak voor het laatst is gewijzigd. Tijdzone-informatie wordt vastgelegd aan het einde van de waarde met +00:00 utc. |
delete_time |
timestamp | Het tijdstip waarop de taak is verwijderd door de gebruiker. Tijdzone-informatie wordt vastgelegd aan het einde van de waarde met +00:00 utc. |
run_as |
tekenreeks | De id van de gebruiker of service-principal waarvan de machtigingen worden gebruikt voor de taakuitvoering. |
Schema van taaktaaktabel
De taaktakentabel is een langzaam veranderende dimensietabel. Wanneer een rij wordt gewijzigd, wordt er een nieuwe rij verzonden, waarbij de vorige logisch wordt vervangen.
Tabelpad: Deze systeemtabel bevindt zich op system.lakeflow.job_tasks
.
Kolomnaam | Gegevenstype | Beschrijving |
---|---|---|
account_id |
tekenreeks | De id van het account waartoe deze taak behoort. |
workspace_id |
tekenreeks | De id van de werkruimte waartoe deze taak behoort. |
job_id |
tekenreeks | De id van de functie. Deze sleutel is slechts uniek binnen één werkruimte. |
task_key |
tekenreeks | De referentiesleutel voor een taak in een taak. Deze sleutel is slechts uniek binnen één taak. |
depends_on_keys |
matrix | De taaksleutels van alle upstream-afhankelijkheden van deze taak. |
change_time |
timestamp | Het tijdstip waarop de taak voor het laatst is gewijzigd. Tijdzone-informatie wordt vastgelegd aan het einde van de waarde met +00:00 utc. |
delete_time |
timestamp | Het tijdstip waarop een taak door de gebruiker is verwijderd. Tijdzone-informatie wordt vastgelegd aan het einde van de waarde met +00:00 utc. |
Tijdlijntabelschema voor taakuitvoering
De tijdlijntabel voor taakuitvoering is onveranderbaar en voltooid op het moment dat deze wordt geproduceerd.
Tabelpad: Deze systeemtabel bevindt zich op system.lakeflow.job_run_timeline
.
Kolomnaam | Gegevenstype | Beschrijving |
---|---|---|
account_id |
tekenreeks | De id van het account waartoe deze taak behoort. |
workspace_id |
tekenreeks | De id van de werkruimte waartoe deze taak behoort. |
job_id |
tekenreeks | De id van de functie. Deze sleutel is slechts uniek binnen één werkruimte. |
run_id |
tekenreeks | De id van de taak wordt uitgevoerd. |
period_start_time |
timestamp | De begintijd voor de uitvoering of voor de periode. Tijdzone-informatie wordt vastgelegd aan het einde van de waarde met +00:00 utc. |
period_end_time |
timestamp | De eindtijd voor de uitvoering of voor de periode. Tijdzone-informatie wordt vastgelegd aan het einde van de waarde met +00:00 utc. |
trigger_type |
tekenreeks | Het type trigger dat een uitvoering kan activeren. Zie Triggertypewaarden voor mogelijke waarden |
run_type |
tekenreeks | Het type taakuitvoering. Zie Run-typewaarden voor mogelijke waarden. |
run_name |
tekenreeks | De door de gebruiker opgegeven uitvoeringsnaam die is gekoppeld aan deze taakuitvoering. |
compute_ids |
matrix | Matrix met de reken-id's voor de bovenliggende taakuitvoering. Gebruiken voor het identificeren van het cluster dat door SUBMIT_RUN typen wordt gebruikt en WORKFLOW_RUN uitgevoerd. Raadpleeg de job_task_run_timeline tabel voor andere rekengegevens. Niet ingevuld voor rijen die eind augustus 2024 zijn verzonden. |
result_state |
tekenreeks | Het resultaat van de taakuitvoering. Zie Resultaatstatuswaarden voor mogelijke waarden. |
termination_code |
tekenreeks | De beëindigingscode van de taak wordt uitgevoerd. Zie De waarden voor beëindigingscode voor mogelijke waarden. Niet ingevuld voor rijen die eind augustus 2024 zijn verzonden. |
job_parameters |
map | De parameters op taakniveau die worden gebruikt in de taakuitvoering. Niet ingevuld voor rijen die eind augustus 2024 zijn verzonden. |
Waarden voor triggertype
De mogelijke waarden voor de trigger_type
kolom zijn:
CONTINUOUS
CRON
FILE_ARRIVAL
ONETIME
ONETIME_RETRY
Typewaarden uitvoeren
De mogelijke waarden voor de run_type
kolom zijn:
JOB_RUN
SUBMIT_RUN
: Eenmalige uitvoering gemaakt via POST /api/2.1/jobs/runs/submit.WORKFLOW_RUN
: Taakuitvoering gestart vanuit de notebookwerkstroom.
Resultaatstatuswaarden
De mogelijke waarden voor de result_state
kolom zijn:
SUCCEEDED
FAILED
SKIPPED
CANCELLED
TIMED_OUT
ERROR
BLOCKED
Waarden voor beëindigingscode
De mogelijke waarden voor de termination_code
kolom zijn:
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
Tijdlijntabelschema voor taaktaakuitvoering
De tijdlijntabel voor taakuitvoering is onveranderbaar en voltooid op het moment dat deze wordt geproduceerd.
Tabelpad: Deze systeemtabel bevindt zich op system.lakeflow.job_task_run_timeline
.
Kolomnaam | Gegevenstype | Beschrijving |
---|---|---|
account_id |
tekenreeks | De id van het account waartoe deze taak behoort. |
workspace_id |
tekenreeks | De id van de werkruimte waartoe deze taak behoort. |
job_id |
tekenreeks | De id van de functie. Deze sleutel is slechts uniek binnen één werkruimte. |
run_id |
tekenreeks | De id van de taakuitvoering. |
job_run_id |
tekenreeks | De id van de taak wordt uitgevoerd. Niet ingevuld voor rijen die eind augustus 2024 zijn verzonden. |
parent_run_id |
tekenreeks | De id van de bovenliggende uitvoering. Niet ingevuld voor rijen die eind augustus 2024 zijn verzonden. |
period_start_time |
timestamp | De begintijd voor de taak of voor de periode. Tijdzone-informatie wordt vastgelegd aan het einde van de waarde met +00:00 utc. |
period_end_time |
timestamp | De eindtijd voor de taak of voor de periode. Tijdzone-informatie wordt vastgelegd aan het einde van de waarde met +00:00 utc. |
task_key |
tekenreeks | De referentiesleutel voor een taak in een taak. Deze sleutel is slechts uniek binnen één taak. |
compute_ids |
matrix | Matrix met de id's van berekeningen die door de taaktaak worden gebruikt. |
result_state |
tekenreeks | Het resultaat van de taakuitvoering. |
termination_code |
tekenreeks | De beëindigingscode van de taakuitvoering. Bekijk de mogelijke waarden onder deze tabel. Niet ingevuld voor rijen die eind augustus 2024 zijn verzonden. |
De mogelijke waarden voor de result_state
kolom zijn:
SUCCEEDED
FAILED
SKIPPED
CANCELLED
TIMED_OUT
ERROR
BLOCKED
De mogelijke waarden voor de termination_code
kolom zijn:
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
Voorbeeldquery's
Deze sectie bevat voorbeeldquery's die u kunt gebruiken om optimaal gebruik te maken van de Lakeflow-tabellen.
- De meest recente versie van taken ophalen
- Dagelijks aantal taken per werkruimte
- Dagelijkse taakstatusdistributie per werkruimte
- Overzicht van langst lopende taken
- Taakuitvoeringstijd voor taken die worden uitgevoerd via runSubmit (bijvoorbeeld. Luchtstroom)
- Analyse van taakuitvoering
- Taken die worden uitgevoerd op berekeningen voor alle doeleinden
- Taakuitvoeringen opnieuw geprobeerd
De meest recente versie van taken ophalen
Omdat de jobs
dimensietabellen job_tasks
langzaam worden gewijzigd, wordt er telkens wanneer een wijziging wordt aangebracht een nieuwe record gemaakt. Als u de meest recente versie van een taak wilt ophalen, kunt u bestellen op basis van de change_time
kolom.
SELECT
*,
ROW_NUMBER() OVER(PARTITION BY workspace_id, job_id ORDER BY change_time DESC) as rn
FROM
system.lakeflow.jobs QUALIFY rn=1
Dagelijks aantal taken per werkruimte
Met deze query wordt het dagelijkse aantal taken per werkruimte voor de afgelopen 7 dagen ophaalt:
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
Dagelijkse taakstatusdistributie per werkruimte
Deze query retourneert het dagelijkse aantal taken per werkruimte voor de afgelopen zeven dagen, gedistribueerd door het resultaat van de taakuitvoering. Met de query worden alle records verwijderd waarin de taken in behandeling of actief zijn.
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
Overzicht van langst lopende taken
Deze query retourneert de gemiddelde tijd van taakuitvoeringen, gemeten in seconden. De records worden geordend op taak. Een bovenste kolom van 90 en 95 percentiel toont de gemiddelde lengte van de langste uitvoeringen van de taak.
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
Taakuitvoeringstijd voor taken die worden uitgevoerd via runSubmit (bijvoorbeeld. Luchtstroom)
Deze query biedt een historische runtime voor een specifieke taak op basis van de run_name
parameter. Als de query werkt, moet u de run_name
.
U kunt ook de tijdsduur voor analyse bewerken door het aantal dagen in de INTERVAL 60 DAYS
sectie bij te werken.
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
Analyse van taakuitvoering
Deze query biedt een historische runtime voor een specifieke taak. De query werkt alleen als u een workspace_id
en job_id
.
U kunt ook de tijdsduur voor analyse bewerken door het aantal dagen in de INTERVAL 60 DAYS
sectie bij te werken.
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)
Taken die worden uitgevoerd op berekeningen voor alle doeleinden
Deze query wordt samengevoegd met de compute.clusters
systeemtabel om recente taken te retourneren die worden uitgevoerd op all-purpose compute in plaats van taken.
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;
Taakuitvoeringen opnieuw geprobeerd
Deze query verzamelt een lijst met opnieuw geprobeerde taakuitvoeringen met het aantal nieuwe pogingen voor elke uitvoering.
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;