Delen via


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:

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

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;