Referenční informace k systémové tabulce úloh

Note

Schéma lakeflow bylo dříve známo jako workflow. Obsah obou schémat je identický.

Tento článek je referenčním dokumentem o lakeflow systémových tabulkách, které zaznamenávají aktivitu úloh ve vašem účtu. Tyto tabulky zahrnují záznamy ze všech pracovních prostorů ve vašem účtu nasazené ve stejné cloudové oblasti. Pokud chcete zobrazit záznamy z jiné oblasti, musíte zobrazit tabulky z pracovního prostoru nasazeného v této oblasti.

Requirements

  • Pokud chcete získat přístup k těmto systémovým tabulkám, musí uživatelé:

Dostupné tabulky úloh

Všechny systémové tabulky související s úlohami jsou ve schématu system.lakeflow. Schéma v současné době hostuje šest tabulek:

Table Description Podporuje streamování. Období bezplatného uchovávání Zahrnuje globální nebo regionální data.
úloh Sleduje všechny úlohy vytvořené v účtu. Yes 365 dní Regional
job_tasks Sleduje všechny pracovní úkoly, které probíhají v účtu. Yes 365 dní Regional
job_run_timeline Sleduje spuštění úlohy a související metadata. Yes 365 dní Regional
job_task_run_timeline Sleduje spuštění úloh a související metadata. Yes 365 dní Regional
pipeline (Public Preview) Sleduje všechny kanály vytvořené v účtu. Yes 365 dní Regional
pipeline_update_timeline (Veřejná ukázka) Sleduje aktualizace potrubí a související metadata. Yes 365 dní Regional

Note

Kromě 365denního intervalu uchovávání dat uchovává Databricks nejnovější záznam pro každou entitu v pomalu se měnících tabulkách dimenzí (SCD2) (jobs, job_tasksa pipelines). To znamená, že nejnovější historická položka pro každou job_idpoložku , job_tasknebo pipeline_id je vždy dostupná, i když je starší než 365 dnů. Záznamy nad rámec 365denního okna kromě poslední položky na entitu se odeberou.

Podrobné referenční informace ke schématu

Následující části obsahují odkazy na schéma pro každou systémovou tabulku související s úlohami.

Schéma tabulky úloh

Tabulka jobs je pomalu se měnící tabulka dimenzí (SCD2). Když se řádek změní, vygeneruje se nový řádek a logicky nahradí předchozí řádek.

Cesta k tabulce: system.lakeflow.jobs

Název sloupce Datový typ Description Notes
account_id řetězec ID účtu, do které tato úloha patří
workspace_id řetězec ID pracovního prostoru, do které tato úloha patří
job_id řetězec ID úlohy Pouze jedinečné v rámci jednoho pracovního prostoru
name řetězec Uživatelem zadaný název úlohy
description řetězec Popis úlohy zadaný uživatelem Toto pole je prázdné, pokud máte nakonfigurované klíče spravované zákazníkem .
creator_id řetězec ID hlavní osoby, která úlohu vytvořila
tags mapa Vlastní značky přiřazené uživatelem přidružené k této úloze
change_time časové razítko Čas poslední změny úlohy Časové pásmo zaznamenané jako +00:00 (UTC)
delete_time časové razítko Čas odstranění úlohy uživatelem Časové pásmo zaznamenané jako +00:00 (UTC)
run_as řetězec ID uživatele nebo hlavního objektu služby, jejichž oprávnění se používají pro aktualizaci potrubí.
trigger struktura Konfigurace spouštěče pro úlohu Nenaplněno pro řádky generované před začátkem prosince 2025
trigger_type řetězec Typ spouštěče pro úlohu Nenaplněno pro řádky generované před začátkem prosince 2025
run_as_user_name řetězec E-mail uživatele, ID hlavního objektu služby nebo název skupiny, jejichž oprávnění se použijí pro spuštění úlohy Nenaplněno pro řádky generované před začátkem prosince 2025
creator_user_name řetězec E-mail uživatele, ID služebního objektu nebo název skupiny, kdo úlohu vytvořil Nenaplněno pro řádky generované před začátkem prosince 2025
paused Boolean Určuje, jestli je úloha pozastavená. Nenaplněno pro řádky generované před začátkem prosince 2025
timeout_seconds long Doba trvání časového limitu pro úlohu v sekundách Nenaplněno pro řádky generované před začátkem prosince 2025
health_rules pole Sada pravidel zdraví definovaná pro tuto úlohu Nenaplněno pro řádky generované před začátkem prosince 2025
deployment struktura Informace o nasazení pro úlohy spravované externími zdroji Nenaplněno pro řádky generované před začátkem prosince 2025
create_time časové razítko Čas vytvoření této úlohy Časové pásmo zaznamenané jako +00:00 (UTC). Nenaplněno pro řádky generované před začátkem prosince 2025

Příklad dotazu

-- Get the most recent version of a job
SELECT
  *,
  ROW_NUMBER() OVER(PARTITION BY workspace_id, job_id ORDER BY change_time DESC) as rn
FROM
  system.lakeflow.jobs QUALIFY rn=1

Schéma tabulky pracovních úkolů

Tabulka úkolů úloh je pomalu se měnící tabulka dimenzí (SCD2). Když se řádek změní, vygeneruje se nový řádek a logicky nahradí předchozí řádek.

Cesta k tabulce: system.lakeflow.job_tasks

Název sloupce Datový typ Description Notes
account_id řetězec ID účtu, do které tato úloha patří
workspace_id řetězec ID pracovního prostoru, do které tato úloha patří
job_id řetězec ID úlohy Pouze jedinečné v rámci jednoho pracovního prostoru
task_key řetězec Referenční klíč pro úkol v úloze Pouze jedinečné v rámci jediného úkolu
depends_on_keys pole Klíče úkolů všech nadřazených závislostí tohoto úkolu
change_time časové razítko Čas poslední změny úkolu Časové pásmo zaznamenané jako +00:00 (UTC)
delete_time časové razítko Čas odstranění úkolu uživatelem Časové pásmo zaznamenané jako +00:00 (UTC)
timeout_seconds long Doba trvání časového limitu úkolu v sekundách Nenaplněno pro řádky generované před začátkem prosince 2025
health_rules pole Sada pravidel zdraví definovaných pro tento pracovní úkol Nenaplněno pro řádky generované před začátkem prosince 2025

Příklad dotazu

-- Get the most recent version of a job task
SELECT
  *,
  ROW_NUMBER() OVER(PARTITION BY workspace_id, job_id ORDER BY change_time DESC) as rn
FROM
  system.lakeflow.job_tasks QUALIFY rn=1

Schéma tabulky časové osy pro spuštění úlohy

Tabulka časového harmonogramu spuštění úlohy je neměnná a dokončená v době, kdy je vytvořena.

Cesta k tabulce: system.lakeflow.job_run_timeline

Název sloupce Datový typ Description Notes
account_id řetězec ID účtu, do které tato úloha patří
workspace_id řetězec ID pracovního prostoru, do které tato úloha patří
job_id řetězec ID úlohy Tento klíč je jedinečný pouze v rámci jednoho pracovního prostoru.
run_id řetězec ID spuštění úlohy
period_start_time časové razítko Počáteční čas pro běh nebo časové období Informace o časovém pásmu se zaznamenávají na konci hodnoty, přičemž +00:00 představuje UTC. Podrobnosti o tom, jak Databricks rozděluje dlouhé běhy do hodinových intervalů, najdete v logice dělení časové osy.
period_end_time časové razítko Koncový čas pro běh nebo pro časové období Informace o časovém pásmu se zaznamenávají na konci hodnoty, přičemž +00:00 představuje UTC. Podrobnosti o tom, jak Databricks rozděluje dlouhé běhy do hodinových intervalů, najdete v logice dělení časové osy.
trigger_type řetězec Typ spouštěče, který může spustit běh Možné hodnoty najdete v tématu Hodnoty typu triggeru
run_type řetězec Typ spuštění úlohy Možné hodnoty najdete v tématu Hodnoty typu běhu
run_name řetězec Název spuštění zadaný uživatelem, který je přidružen k této úloze
compute_ids pole Pole obsahující identifikátory výpočtových úloh pro spuštění nadřazené úlohy Slouží k identifikaci clusteru úloh používaného typy spuštění WORKFLOW_RUN. Další informace o výpočetních prostředcích najdete v tabulce job_task_run_timeline.
result_state řetězec Výsledek spuštění úlohy Pro spuštění delší než jednu hodinu, která jsou rozdělena na více řádků, je tento sloupec naplněn pouze v řádku, který představuje konec spuštění. Možné hodnoty najdete v tématu Hodnoty stavu výsledku.
termination_code řetězec Kód ukončení spuštění úlohy Pro spuštění delší než jednu hodinu, která jsou rozdělena na více řádků, je tento sloupec naplněn pouze v řádku, který představuje konec spuštění. Možné hodnoty viz hodnoty kódu ukončení.
job_parameters mapa Parametry na úrovni úlohy použité při spuštění úlohy Obsahuje pouze hodnoty z job_parameters. Nezahrnou se zastaralá pole parametrů (notebook_params, python_params, python_named_paramsspark_submit_params, asql_params) .
source_task_run_id řetězec ID spuštění zdrojové úlohy. Pomocí tohoto sloupce určete, které spuštění úlohy spustilo tento běh úlohy. Nenaplněno pro řádky generované před začátkem prosince 2025
root_task_run_id řetězec ID spuštění kořenové úlohy. Pomocí tohoto sloupce určete, které spuštění úlohy spustilo tento běh úlohy. Nenaplněno pro řádky generované před začátkem prosince 2025
compute pole Podrobnosti o výpočetních prostředcích použitých při spuštění úlohy Nenaplněno pro řádky generované před začátkem prosince 2025
termination_type řetězec Typ ukončení běhu úlohy Nenaplněno pro řádky generované před začátkem prosince 2025
setup_duration_seconds long Doba trvání fáze nastavení pro spuštění úlohy v sekundách Nenaplněno pro řádky generované před začátkem prosince 2025
queue_duration_seconds long Doba čekání ve frontě na spuštění úlohy v sekundách Nenaplněno pro řádky generované před začátkem prosince 2025
run_duration_seconds long Celková doba trvání spuštění úlohy v sekundách Nenaplněno pro řádky generované před začátkem prosince 2025
cleanup_duration_seconds long Doba trvání fáze vyčištění pro běh úlohy v sekundách Nenaplněno pro řádky generované před začátkem prosince 2025
execution_duration_seconds long Doba trvání prováděcí fáze pro spuštění úlohy v sekundách Nenaplněno pro řádky generované před začátkem prosince 2025

Příklad dotazu

-- This query gets the daily job count for a workspace for the last 7 days:
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

-- This query returns the daily job count for a workspace for the last 7 days, distributed by the outcome of the job run.
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

-- This query returns the average time of job runs, measured in seconds. The records are organized by job. A top 90 and a 95 percentile column show the average lengths of the job's longest runs.
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
)
SELECT
    t1.workspace_id,
    t1.job_id,
    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
GROUP BY ALL
ORDER BY mean_seconds DESC
LIMIT 100

-- This query provides a historical runtime for a specific job based on the `run_name` parameter. For the query to work, you must set the `run_name`.
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

-- This query collects a list of retried job runs with the number of retries for each run.
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;

schéma tabulky plánu spuštění úlohy

Tabulka časové osy běhu úlohy je neměnná a dokončená při jejím vytvoření.

Cesta k tabulce: system.lakeflow.job_task_run_timeline

Název sloupce Datový typ Description Notes
account_id řetězec ID účtu, do které tato úloha patří
workspace_id řetězec ID pracovního prostoru, do které tato úloha patří
job_id řetězec ID úlohy Pouze jedinečné v rámci jednoho pracovního prostoru
run_id řetězec ID spuštění této úlohy
job_run_id řetězec ID spuštění úlohy
parent_run_id řetězec ID nadřazeného spuštění
period_start_time časové razítko Čas zahájení úkolu nebo časového období Informace o časovém pásmu se zaznamenávají na konci hodnoty, přičemž +00:00 představuje UTC. Podrobnosti o tom, jak Databricks rozděluje dlouhé běhy do hodinových intervalů, najdete v logice dělení časové osy.
period_end_time časové razítko Koncový čas úkolu nebo časového období Informace o časovém pásmu se zaznamenávají na konci hodnoty, přičemž +00:00 představuje UTC. Podrobnosti o tom, jak Databricks rozděluje dlouhé běhy do hodinových intervalů, najdete v logice dělení časové osy.
task_key řetězec Referenční klíč pro úkol v úloze Tento klíč je jedinečný pouze v rámci jedné úlohy.
compute_ids pole Pole compute_ids obsahuje ID clusterů úloh, interaktivních clusterů a sql warehouse používaných úlohou.
result_state řetězec Výsledek spuštění úkolové úlohy U spuštění úloh delších než jednu hodinu, která jsou rozdělena mezi více řádků, se tento sloupec naplní pouze v řádku, který představuje konec spuštění. Možné hodnoty najdete v tématu Hodnoty stavu výsledku.
termination_code řetězec Kód ukončení spuštění úlohy U spuštění úloh delších než jednu hodinu, která jsou rozdělena mezi více řádků, se tento sloupec naplní pouze v řádku, který představuje konec spuštění. Možné hodnoty viz hodnoty kódu ukončení.
compute pole Podrobnosti o výpočetních prostředcích použitých při spuštění úlohy Nenaplněno pro řádky generované před začátkem prosince 2025
termination_type řetězec Typ ukončení běhu pracovní úlohy Nenaplněno pro řádky generované před začátkem prosince 2025
task_parameters mapa Parametry na úrovni úlohy použité při spuštění úlohy Obsahuje pouze hodnoty z job_parameters. Nezahrnou se zastaralá pole parametrů (notebook_params, python_params, python_named_paramsspark_submit_params, asql_params) . Není vyplněno pro řádky generované před začátkem prosince 2025.
setup_duration_seconds long Doba trvání fáze nastavení pro spuštění úlohy v sekundách Nenaplněno pro řádky generované před začátkem prosince 2025
cleanup_duration_seconds long Délka trvání čistící fáze při spuštění úlohy v sekundách Nenaplněno pro řádky generované před začátkem prosince 2025
execution_duration_seconds long Trvání fáze provádění úlohy v sekundách Nenaplněno pro řádky generované před začátkem prosince 2025

Schéma tabulky Pipelines

Tabulka kanálů je pomalu se měnící tabulka dimenzí (SCD2). Když se řádek změní, vygeneruje se nový řádek a logicky nahradí předchozí řádek.

Cesta k tabulce: system.lakeflow.pipelines

Název sloupce Datový typ Description Notes
account_id řetězec ID účtu, ke kterému tento pipeline patří
workspace_id řetězec ID pracovního prostoru, do kterého toto potrubí patří
pipeline_id řetězec ID potrubí Pouze jedinečné v rámci jednoho pracovního prostoru
pipeline_type řetězec Typ kanálu Možné hodnoty najdete v tématu Hodnoty typu kanálu.
name řetězec Uživatelem zadaný název kanálu
created_by řetězec E-mail uživatele, ID instančního objektu služby nebo název skupiny, která vytvořila kanál
run_as řetězec E-mail uživatele, ID hlavního objektu služby nebo název skupiny, jehož oprávnění se používají pro spuštění pipeline
tags mapa Vlastní značky přiřazené uživatelem přidružené k této úloze
settings struktura Nastavení potrubí Viz nastavení kanálu
configuration mapa Konfigurace kanálu zadaná uživatelem
change_time časové razítko Čas, kdy bylo potrubí naposledy změněno Časové pásmo zaznamenané jako +00:00 (UTC)
delete_time časové razítko Čas, kdy bylo potrubí smazáno uživatelem Časové pásmo zaznamenané jako +00:00 (UTC)
create_time časové razítko Čas, kdy uživatel vytvořil datové potrubí. Časové pásmo zaznamenané jako +00:00 (UTC). Nenaplněno pro řádky generované před začátkem prosince 2025

Příklad dotazu

-- Get the most recent version of a pipeline
SELECT
  *,
  ROW_NUMBER() OVER(PARTITION BY workspace_id, pipeline_id ORDER BY change_time DESC) as rn
FROM
  system.lakeflow.pipelines QUALIFY rn=1

-- Enrich billing logs with pipeline metadata
with latest_pipelines AS (
  SELECT
    *,
    ROW_NUMBER() OVER(PARTITION BY workspace_id, pipeline_id ORDER BY change_time DESC) as rn
  FROM
    system.lakeflow.pipelines QUALIFY rn=1
)
SELECT
  usage.*,
  pipelines.*
FROM system.billing.usage
LEFT JOIN latest_pipelines
  ON (usage.workspace_id = pipelines.workspace_id
    AND usage.usage_metadata.dlt_pipeline_id = pipelines.pipeline_id)
WHERE
  usage.usage_metadata.dlt_pipeline_id IS NOT NULL

Schéma tabulky časové osy aktualizace pipeline

Tabulka časové osy aktualizace kanálu je neměnná a kompletní v době, kdy je vyhotovena.

Cesta k tabulce: system.lakeflow.pipeline_update_timeline

Název sloupce Datový typ Description Notes
account_id řetězec ID účtu, ke kterému tento pipeline patří
workspace_id řetězec ID pracovního prostoru, do kterého toto potrubí patří
pipeline_id řetězec ID potrubí Pouze jedinečné v rámci jednoho pracovního prostoru
update_id řetězec Identifikátor aktualizace potrubí Pouze jedinečné v rámci jednoho pracovního prostoru
update_type řetězec Typ aktualizace potrubí Možné hodnoty pro typ aktualizace potrubí najdete v dokumentu Hodnoty typu aktualizace Pipeline.
request_id řetězec ID požadavku. Pomáhá pochopit, kolikrát se aktualizace musela opakovat nebo restartovat.
run_as_user_name řetězec E-mail uživatele, ID instančního objektu nebo název skupiny, jehož oprávnění se používají pro aktualizaci kanálu
trigger_type řetězec Co aktivovalo tuto aktualizaci Možné hodnoty najdete v tématu Hodnoty typu spouštěče potrubí.
trigger_details struktura Podrobnosti o spouštěči pipeliny Možné hodnoty najdete v podrobnostech o typu spouštění kanálu.
result_state řetězec Výsledek aktualizace potrubí U aktualizací spuštěných za více než 1 hodinu, které jsou rozdělené mezi více řádků, se tento sloupec naplní pouze v řádku, který představuje konec aktualizace. Možné hodnoty najdete v referenci výsledků pipeline.
compute struktura Podrobnosti o prostředku pro výpočet použitých v aktualizaci datového kanálu
period_start_time časové razítko Čas spuštění aktualizace datového kanálu nebo čas hodiny. Hodnota se uloží jako časové razítko UTC. Informace o časovém pásmu se zaznamenávají na konci hodnoty, přičemž +00:00 představuje UTC. Podrobnosti o tom, jak Databricks rozděluje dlouhé běhy do hodinových intervalů, najdete v logice dělení časové osy.
period_end_time časové razítko Koncový čas aktualizace potrubí nebo časové periody. Hodnota se uloží jako časové razítko UTC. Informace o časovém pásmu se zaznamenávají na konci hodnoty, přičemž +00:00 představuje UTC. Podrobnosti o tom, jak Databricks rozděluje dlouhé běhy do hodinových intervalů, najdete v logice dělení časové osy.
refresh_selection pole Seznam tabulek, které se mají aktualizovat bez fullRefresh
full_refresh_selection pole Seznam tabulek, které se mají aktualizovat pomocí fullRefresh
reset_checkpoint_selection pole Seznam streamovacích toků k vymazání kontrolních bodů

Příklad dotazu

-- This query gets the daily pipeline update count for a workspace for the last 7 days:
SELECT
    workspace_id,
    COUNT(DISTINCT update_id) as update_count,
    to_date(period_start_time) as date
FROM system.lakeflow.pipeline_update_timeline
WHERE
    period_start_time > CURRENT_TIMESTAMP() - INTERVAL 7 DAYS
GROUP BY ALL

-- This query returns the daily pipeline update count for a workspace for the last 7 days, distributed by the outcome of the pipeline update.
SELECT
    workspace_id,
    COUNT(DISTINCT update_id) as update_count,
    result_state,
    to_date(period_start_time) as date
FROM system.lakeflow.pipeline_update_timeline
WHERE
    period_start_time > CURRENT_TIMESTAMP() - INTERVAL 7 DAYS
  AND result_state IS NOT NULL
GROUP BY ALL

-- This query returns the average time of pipeline updates, measured in seconds. The records are organized by pipeline. A top 90 and a 95 percentile column show the average lengths of the pipeline's longest updates.
with pipeline_update_duration as (
    SELECT
      workspace_id,
      pipeline_id,
      update_id,
      CAST(SUM(period_end_time - period_start_time) AS LONG) as duration
    FROM
        system.lakeflow.pipeline_update_timeline
    WHERE
        period_start_time > CURRENT_TIMESTAMP() - INTERVAL 7 DAYS
    GROUP BY ALL
)
SELECT
    t1.workspace_id,
    t1.pipeline_id,
    COUNT(DISTINCT t1.update_id) as update_count,
    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
    pipeline_update_duration t1
GROUP BY ALL
ORDER BY mean_seconds DESC
    LIMIT 100

Běžné vzory spojení

Následující části obsahují ukázkové dotazy, které zvýrazňují běžně používané vzory spojení pro systémové tabulky úloh.

Spojit tabulky úloh a časových os spuštění úloh

Obohatit spuštění úlohy názvem úlohy

with 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
    job_run_timeline.*
    jobs.name
FROM system.lakeflow.job_run_timeline
    LEFT JOIN jobs USING (workspace_id, job_id)

Sloučit časovou posloupnost spuštění úlohy a tabulky využití

Obohaťte každý fakturační protokol metadaty ze spuštění úlohy

Následující dotaz rozšiřuje fakturační protokoly o metadata spouštění úloh z klasických i bezserverových úloh:

with aggregated_job_runs AS (
  SELECT
    j.workspace_id,
    COALESCE(t.job_id, j.job_id) as origin_job_id,
    COALESCE(t.job_run_id, j.run_id) AS origin_job_run_id,
    j.job_id as billing_job_id,
    j.run_id as billing_run_id,
    CASE WHEN j.root_task_run_id IS NOT NULL THEN true ELSE false END AS is_workflow_run
  FROM
    system.lakeflow.job_run_timeline j
  LEFT JOIN
    system.lakeflow.job_task_run_timeline t
  ON
    j.workspace_id = t.workspace_id
    AND j.root_task_run_id = t.run_id
  WHERE j.period_start_time >= CURRENT_DATE() - INTERVAL 7 DAYS
  GROUP BY ALL
),
billing_logs_enriched AS (
  SELECT
      t2.origin_job_id,
      t2.origin_job_run_id,
      t1.*
  FROM system.billing.usage t1
      INNER JOIN aggregated_job_runs t2
          ON t1.workspace_id = t2.workspace_id
              AND t1.usage_metadata.job_id = t2.billing_job_id
              AND t1.usage_metadata.job_run_id = t2.billing_run_id
  WHERE
      billing_origin_product="JOBS" AND usage_date >= CURRENT_DATE() - INTERVAL 7 DAYS
)
SELECT
  workspace_id,
  origin_job_id AS job_id,
  origin_job_run_id AS run_id,
  sku_name,
  SUM(usage_quantity) as total_usage_quantity,
  SUM(CASE WHEN usage_metadata.job_run_id != origin_job_run_id THEN usage_quantity ELSE 0 END) AS workflow_run_usage_quantity,
  COUNT(DISTINCT usage_metadata.job_run_id) - 1 AS workflow_runs
FROM billing_logs_enriched
GROUP BY ALL

Výpočet nákladů na spuštění úlohy

Tento dotaz se spojí se systémovou tabulkou billing.usage a vypočítá náklady na spuštění úlohy.

with jobs_usage AS (
  SELECT
    *,
    usage_metadata.job_id,
    usage_metadata.job_run_id as run_id,
    identity_metadata.run_as as run_as
  FROM system.billing.usage
  WHERE billing_origin_product="JOBS"
),
jobs_usage_with_usd AS (
  SELECT
    jobs_usage.*,
    usage_quantity * pricing.default as usage_usd
  FROM jobs_usage
    LEFT JOIN system.billing.list_prices pricing ON
      jobs_usage.sku_name = pricing.sku_name
      AND pricing.price_start_time <= jobs_usage.usage_start_time
      AND (pricing.price_end_time >= jobs_usage.usage_start_time OR pricing.price_end_time IS NULL)
      AND pricing.currency_code="USD"
),
jobs_usage_aggregated AS (
  SELECT
    workspace_id,
    job_id,
    run_id,
    FIRST(run_as, TRUE) as run_as,
    sku_name,
    SUM(usage_usd) as usage_usd,
    SUM(usage_quantity) as usage_quantity
  FROM jobs_usage_with_usd
  GROUP BY ALL
)
SELECT
  t1.*,
  MIN(period_start_time) as run_start_time,
  MAX(period_end_time) as run_end_time,
  FIRST(result_state, TRUE) as result_state
FROM jobs_usage_aggregated t1
  LEFT JOIN system.lakeflow.job_run_timeline t2 USING (workspace_id, job_id, run_id)
GROUP BY ALL
ORDER BY usage_usd DESC
LIMIT 100

Získejte protokoly o využití pro úlohy SUBMIT_RUN

SELECT
  *
FROM system.billing.usage
WHERE
  EXISTS (
      SELECT 1
      FROM system.lakeflow.job_run_timeline
      WHERE
        job_run_timeline.job_id = usage_metadata.job_id
        AND run_name = :run_name
        AND workspace_id = :workspace_id
  )

Připojit k tabulkám spuštění úlohy a časovou osu a clustery

Obohaťte spuštění úloh o metadata clusterů

with clusters as (
    SELECT
        *,
        ROW_NUMBER() OVER (PARTITION BY workspace_id, cluster_id ORDER BY change_time DESC) as rn
    FROM system.compute.clusters QUALIFY rn=1
),
exploded_task_runs AS (
  SELECT
    *,
    EXPLODE(compute_ids) as cluster_id
  FROM system.lakeflow.job_task_run_timeline
  WHERE array_size(compute_ids) > 0
)
SELECT
  *
FROM exploded_task_runs t1
  LEFT JOIN clusters t2
    USING (workspace_id, cluster_id)

Vyhledání úloh běžících na univerzálních výpočetních jednotkách

Tento dotaz se spojí se systémovou tabulkou compute.clusters, aby vrátil recentní úlohy, které běží na univerzálním výpočetním prostředí místo výpočetního prostředí pro úlohy.

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
  GROUP BY ALL
),
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;

Najděte úlohy, které se nespustily za posledních 30 dní

Tento dotaz spojí systémové tabulky lakeflow.jobs a lakeflow.job_run_timeline a vrátí úlohy, které se během posledních 30 dnů nespustily.

with latest_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
),
latest_not_deleted_jobs AS (
    SELECT
        workspace_id,
        job_id,
        name,
        change_time,
        tags
    FROM latest_jobs WHERE delete_time IS NULL
),
last_seen_job_timestamp AS (
    SELECT
        workspace_id,
        job_id,
        MAX(period_start_time) as last_executed_at
    FROM system.lakeflow.job_run_timeline
    WHERE
        run_type="JOB_RUN"
    GROUP BY ALL
)
SELECT
    t1.workspace_id,
    t1.job_id,
    t1.name,
    t1.change_time as last_modified_at,
    t2.last_executed_at,
    t1.tags
FROM latest_not_deleted_jobs t1
    LEFT JOIN last_seen_job_timestamp t2
        USING (workspace_id, job_id)
WHERE
    (t2.last_executed_at <= CURRENT_DATE() - INTERVAL 30 DAYS) OR (t2.last_executed_at IS NULL)
ORDER BY last_executed_at ASC

řídicí panel monitorování úloh

Následující řídicí panel používá systémové tabulky, které vám pomůžou začít monitorovat úlohy a provozní stav. Zahrnuje běžné případy použití, jako je sledování výkonu úloh, monitorování selhání a využití prostředků.

Lakeflow - řídicí panel pro sledování

Přehled úloh řídicího panelu pozorovatelnosti Lakeflow

Informace o stažení řídicího panelu najdete v tématu Monitorování nákladů na úlohy & výkonu pomocí systémových tabulek

Troubleshooting

Úloha není zaznamenána v tabulce lakeflow.jobs

Pokud úloha není v systémových tabulkách viditelná:

  • Úloha byla vytvořena v jiné oblasti.
  • Nedávné vytvoření pracovních míst (zpoždění aktualizace tabulky)
  • I když se vždy uchovávají nejnovější záznamy pro každý job_id záznam, odeberou se starší historické záznamy nad rámec 365denního intervalu uchovávání informací. Pokud potřebujete nový záznam, upravte všechna pole úlohy, která jsou v schématu, a vygenerujte nový řádek.

Nejde najít úlohu zobrazenou job_run_timeline v tabulce

Ne všechna spuštění úloh jsou viditelná všude. I když se položky JOB_RUN zobrazují ve všech tabulkách souvisejících s úlohami, WORKFLOW_RUN (spuštění pracovního postupu poznámkového bloku) se zaznamenávají jenom v job_run_timeline a SUBMIT_RUN (jednorázová odeslaná spuštění) se zaznamenávají jenom v obou tabulkách časové osy. Tato spuštění nejsou přenášena do jiných tabulek systému úloh, jako jsou jobs nebo job_tasks.

Podrobný rozpis toho, kde je každý typ spuštění viditelný a přístupný, najdete v tabulce Typy spuštění níže.

Průběh úlohy není viditelný v tabulce billing.usage

V system.billing.usage je usage_metadata.job_id naplněn pouze pro úlohy, které běží na výpočetních nebo bezserverových prostředcích.

Kromě toho úlohy WORKFLOW_RUN nemají vlastní přiřazení usage_metadata.job_id ani usage_metadata.job_run_id v system.billing.usage. Místo toho se jejich využití výpočetních prostředků přiřadí nadřazenému poznámkovému bloku, který je spustil. To znamená, že když poznámkový blok spustí spuštění pracovního postupu, zobrazí se všechny náklady na výpočetní prostředky v rámci využití nadřazeného poznámkového bloku, ne jako samostatná úloha pracovního postupu.

Další informace najdete v referenci metadat použití .

Vypočítat náklady na úlohu běžící na univerzálním výpočetním prostředí

Přesný výpočet nákladů pro úlohy běžící na výpočetních kapacitách pro specifické účely není možný s přesností 100%. Když se úloha spustí na interaktivním výpočetním prostředí (pro celý účel), na stejném výpočetním prostředku často běží současně několik úloh, jako jsou poznámkové bloky, dotazy SQL nebo jiné úlohy. Vzhledem k tomu, že jsou prostředky clusteru sdílené, neexistuje žádné přímé mapování 1:1 mezi výpočetními náklady a spuštěním jednotlivých úloh.

Pro přesné sledování nákladů na úlohy doporučuje Databricks spouštět úlohy na dedikovaných výpočetních prostředcích nebo bezserverových výpočetních prostředcích, kde usage_metadata.job_id a usage_metadata.job_run_id umožňují přesné určení nákladů.

Pokud potřebujete použít výpočetní prostředky pro všechny účely, můžete:

  • Monitorujte celkové náklady a využití clusteru v system.billing.usage na základě usage_metadata.cluster_id.
  • Sledujte metriky doby běhu úloh samostatně.
  • Vezměte v úvahu, že jakýkoli odhad nákladů bude přibližný kvůli sdíleným prostředkům.

Další informace o přisuzování nákladů najdete v referenčních informací k metadatem využití.

Referenční hodnoty

Následující část obsahuje odkazy na vybrané sloupce v tabulkách souvisejících s úlohami.

Logika vytváření řezů v tabulkách časové osy

Sloupce period_start_time a period_end_time v tabulkách job_run_timeline a job_task_run_timeline zaznamenávají aktivní období spuštění úlohy nebo úkolu.

:::upozornění – důležitá změna

Od 19. ledna 2026 budou nové řádky vygenerované do tabulek časové osy používat logiku dělení podle hodin. Existující řádky zůstanou beze změny.

Segmenty se vytvářejí v hodinových intervalech na základě začátku běhu. Například úloha začínající v 16:47 vytvoří řezy od 16:47-17:47, 17:47-18:47, a tak dále.

Řezy se zarovnají s hranicemi hodin na ciferníku. Například úloha začínající v 17:47 vytvoří řezy od 17:47 do 18:00, 18:00–19:00, 19:00–20:00 a tak dále. Podrobnosti najdete v logice časově zarovnaného dělení.

:::

Každý řádek zaznamenává až hodinu provozu. Provozy, které trvají déle než 1 hodinu, se zaznamenávají přes více řádků. Toto rozdělení zajišťuje hodinovou detailnost při monitorování dlouhotrvajících úloh.

Note

Pokud spuštění nikdy nezačala, je reprezentováno řádkem, kde period_start_time se rovná period_end_time. Značí to žádný aktivní modul runtime. Pokud chcete zjistit, proč běh nezačal, zkontrolujte sloupec termination_code.

Krátkodobé úlohy

U běhů kratších než 1 hodinu je vygenerován jeden řádek, kde je period_start_time nastaveno na čas začátku běhu a period_end_time nastaveno na čas konce běhu.

Například úloha spuštěná v 12:13 UTC a skončila v 12:45 UTC, je reprezentována jedním řádkem:

workspace_id job_id run_id period_start_time period_end_time
6051921418418893 280090038844882 174832649710507 2025-06-08T12:13:01.605 2025-06-08T12:45:06.009

Dlouhotrvající úlohy

U spuštění, která trvají déle než 1 hodinu, se vygeneruje více řádků se stejným run_id, přičemž každý představuje až jednu hodinu trvání spuštění:

  • První řádek začíná ve skutečném začátku běhu a končí na závěru první hodiny běhu.
  • Mezilehlé řádky (pokud existují) zahrnují celá hodinová okna synchronizovaná s předchozím výřezem period_end_time.
  • Poslední řádek začíná na začátku předchozího řezu a končí skutečným časem dokončení běhu.

Například úloha, která běžela od 14:47 UTC do 18:28 UTC, je rozdělena do více řádků. Každý řádek představuje hodinu aktivity s výjimkou posledního řádku, který může být kratší:

workspace_id job_id run_id period_start_time period_end_time
6051921418418893 280090038844882 55408597258956 2025-07-01T16:47:55.992 2025-07-01T17:47:56.434
6051921418418893 280090038844882 55408597258956 2025-07-01T17:47:56.434 2025-07-01T18:47:58.876
6051921418418893 280090038844882 55408597258956 2025-07-01T18:47:58.876 2025-07-01T19:47:59.682
6051921418418893 280090038844882 55408597258956 2025-07-01T19:47:59.682 2025-07-01T20:28:29.743

Logika dělení na řezy zarovnaná hodinou

Note

Tato logika řezů se vztahuje na nové řádky v tabulkách časové osy úloh od 19. ledna 2026.

Od 19. ledna 2026 budou tabulky časové osy využívat segmentaci zarovnanou na celé hodiny. Všechny časové řezy odpovídají standardním hranicím hodinových hodin.

Pro spuštění úlohy kratší než 1 hodinu, která začíná a končí ve stejné hodině, se vygeneruje jeden řádek:

workspace_id job_id run_id period_start_time period_end_time
6051921418418893 280090038844882 174832649710507 2025-12-08T12:13:01.605 2025-12-08T12:45:06.009

Pro úlohy, které překračují hranice časových hodin, se generuje více řádků s úseky zarovnanými do hodin:

  • První řádek začíná skutečným časem spuštění a končí na hranici následující hodiny.
  • Mezilehlé řádky (pokud existuje) zahrnují celé hodiny. Například: 14:00-15:00 a 15:00-16:00.
  • Poslední řádek začíná na hranici hodin a končí skutečným časem spuštění.

Například běh úlohy, který probíhal od 1:25 UTC do 3:40 UTC, je rozdělen na tři části:

workspace_id job_id run_id period_start_time period_end_time
6051921418418893 280090038844882 55408597258956 2025-12-01T01:25:00.000 2025-12-01T02:00:00.000
6051921418418893 280090038844882 55408597258956 2025-12-01T02:00:00.000 2025-12-01T03:00:00.000
6051921418418893 280090038844882 55408597258956 2025-12-01T03:00:00.000 2025-12-01T03:40:00.000

hodnoty typu triggeru

Další informace o typech triggerů úloh najdete v tématu Automatizace úloh s plány a aktivačními událostmi.

V tabulkách job_run_timeline a jobs tabulkách jsou možné hodnoty pro trigger_type sloupec:

Typ aktivační události Description Použitelné tabulky
CONTINUOUS Úloha nebo spuštění se aktivuje průběžnou aktivační událostí, která udržuje úlohu spuštěnou. job_run_timeline, jobs
CRON Úloha nebo spuštění je spouštěna podle pravidelného rozvrhu pomocí syntaxe cron. job_run_timeline, jobs
FILE_ARRIVAL Úloha nebo spuštění se aktivuje při příchodu nových souborů do nakonfigurovaného umístění úložiště. job_run_timeline, jobs
MODEL Úloha nebo spuštění se aktivuje událostí obsluhující verzi modelu. job_run_timeline, jobs
ONETIME Úloha byla spuštěna jednorázovým ručním spouštěčem nebo spouštěčem rozhraní API. job_run_timeline
ONETIME_RETRY Úloha nebo spuštění se aktivovala jako opakování předchozího neúspěšného spuštění. job_run_timeline, jobs
PERIODIC Úloha nebo spuštění je naplánována pravidelným plánem na základě časového intervalu (například každou hodinu). job_run_timeline, jobs
RUN_JOB_TASK Spuštění úlohy bylo aktivováno jako součást úkolu spuštění z jiné úlohy. job_run_timeline
TABLE Úloha nebo spuštění se aktivuje aktualizací tabulky pomocí konfigurace triggeru tabulky. job_run_timeline, jobs
NULL Typ triggeru není nastavený. K tomu může dojít u starších záznamů úloh nebo úloh, u kterých nebyl nakonfigurovaný typ triggeru. jobs

hodnoty typu spuštění

job_run_timeline V tabulce jsou možné hodnoty pro run_type sloupec:

Typ Description Umístění uživatelského rozhraní koncový bod rozhraní API Systémové tabulky
JOB_RUN Standardní provádění úloh Uživatelské rozhraní pro úlohy a jejich běh /jobs a /jobs/běhy konečných bodů pracovní pozice, činnosti úlohy, plán spuštění úloh, plán spuštění úkolů úloh
SUBMIT_RUN Jednorázové spuštění přes POST /jobs/run/submit Pouze uživatelské rozhraní Job Runs /jobs/runs koncové body pouze časová osa běhu úlohy, časová osa běhu úkolu
WORKFLOW_RUN Spuštění iniciované z pracovního postupu poznámkového bloku Nezobrazuje se Nedostupné job_run_timeline

hodnoty výsledkového stavu

V tabulkách job_task_run_timeline a job_run_timeline tabulkách jsou možné hodnoty pro result_state sloupec:

State Description
SUCCEEDED Spuštění bylo úspěšně dokončeno.
FAILED Běh byl dokončen s chybou.
SKIPPED Běh nebyl nikdy spuštěn, protože nebyla splněna podmínka.
CANCELLED Spuštění bylo zrušeno na žádost uživatele.
TIMED_OUT Běh byl zastaven po dosažení časového limitu.
ERROR Běh byl dokončen s chybou.
BLOCKED Spuštění bylo zablokováno kvůli závislosti ve vyšší vrstvě.
NULL Řádek představuje průběžný řez dlouhotrvající úlohy. result_state je k dispozici pouze na řádku, který představuje konec procesu.

hodnoty ukončovacího kódu

V tabulkách job_task_run_timeline a job_run_timeline tabulkách jsou možné hodnoty pro termination_code sloupec:

Kód ukončení Description
SUCCESS Spuštění bylo úspěšně dokončeno.
CANCELLED Spuštění bylo zrušeno během provádění platformou Databricks; pokud byla například překročena maximální povolená doba běhu.
SKIPPED Spuštění nikdy nebylo provedeno, například pokud se spuštění nadřazeného úkolu nezdařilo, podmínka typu závislosti nebyla splněna nebo nebyly žádné konkrétní úkoly k provedení.
DRIVER_ERROR Při komunikaci se Spark Driverem došlo k chybě.
CLUSTER_ERROR Spuštění selhalo kvůli chybě clusteru.
REPOSITORY_CHECKOUT_FAILED Dokončení rezervace se nezdařilo kvůli chybě při komunikaci se službou třetí strany.
INVALID_CLUSTER_REQUEST Spuštění selhalo, protože vydalo neplatný požadavek na spuštění clusteru.
WORKSPACE_RUN_LIMIT_EXCEEDED Pracovní prostor dosáhl limitu maximálního počtu současně aktivních úloh. Zvažte plánování běhů v delším časovém rámci.
FEATURE_DISABLED Spuštění se nezdařilo, protože se pokusilo získat přístup k funkci, která není pro pracovní prostor dostupná.
CLUSTER_REQUEST_LIMIT_EXCEEDED Počet žádostí o vytvoření, spuštění a přenesení clusteru překročil limit přidělené rychlosti. Zvažte rozložení spuštění v delším časovém rámci.
STORAGE_ACCESS_ERROR Spuštění selhalo kvůli chybě při přístupu k zákaznickému úložišti objektů Blob.
RUN_EXECUTION_ERROR Běh byl dokončen s chybami úloh.
UNAUTHORIZED_ERROR Spuštění selhalo kvůli problému s oprávněním při přístupu k prostředku.
LIBRARY_INSTALLATION_ERROR Spuštění se nezdařilo při instalaci knihovny požadované uživatelem. Příčiny mohou zahrnovat, ale nejsou omezeny na: poskytnutá knihovna je neplatná nebo nedostatečná oprávnění pro instalaci knihovny.
MAX_CONCURRENT_RUNS_EXCEEDED Naplánované spuštění překračuje limit maximálního počtu souběžných spuštění nastavených pro úlohu.
MAX_SPARK_CONTEXTS_EXCEEDED Spuštění je naplánované v clusteru, který již dosáhl maximálního počtu kontextů, které je nakonfigurováno k vytvoření.
RESOURCE_NOT_FOUND Neexistuje zdroj nezbytný pro provádění.
INVALID_RUN_CONFIGURATION Spuštění selhalo kvůli neplatné konfiguraci.
CLOUD_FAILURE Spuštění selhalo kvůli problému poskytovatele cloudu.
MAX_JOB_QUEUE_SIZE_EXCEEDED Běh byl přeskočen kvůli dosažení limitu velikosti fronty na úrovni úlohy.

Hodnoty typu potrubí

pipelines V tabulce jsou možné hodnoty pro pipeline_type sloupec:

Typ kanálu Description
ETL_PIPELINE Standardní kanál
MATERIALIZED_VIEW Materializovaná zobrazení v Databricks SQL
STREAMING_TABLE Streamování tabulek v Databricks SQL
INGESTION_PIPELINE Lakeflow Connect Ingestor
INGESTION_GATEWAY Lakeflow Connect bránový ingestor

Referenční informace o výsledku pipeline

pipeline_update_timeline V tabulce jsou možné hodnoty pro result_state sloupec:

  • COMPLETED
  • FAILED
  • CANCELED

Referenční informace o nastavení pipeline

pipelines V tabulce jsou možné hodnoty pro settings sloupec:

Value Description
photon Příznak označující, jestli se má ke spuštění kanálu použít Photon
development Příznak označující, zda se má datový tok spustit ve vývojovém nebo produkčním režimu.
continuous Příznak označující, jestli se má pipeline spouštět trvale
serverless Příznak označující, jestli se má kanál spustit v bezserverovém clusteru
edition Edice produktu pro spuštění kanálu
channel Verze prostředí runtime pro kanál, která se má použít

Hodnoty typu aktualizace pipeline

pipeline_update_timeline V tabulce jsou možné hodnoty pro update_type sloupec:

  • FULL_REFRESH
  • REFRESH
  • VALIDATE

Hodnoty typu spouštěče potrubí

pipeline_update_timeline V tabulce jsou možné hodnoty pro trigger_type sloupec:

  • API_CALL
  • RETRY_ON_FAILURE
  • SERVICE_UPGRADE
  • SCHEMA_CHANGE
  • JOB_TASK
  • USER_ACTION
  • DBSQL_REQUEST
  • SETTINGS_CHANGE
  • SCHEMA_EXPLORATION
  • INFRASTRUCTURE_MAINTENANCE
  • START_RESOURCES

Podrobnosti o typu spouštěče pipeliny

Pokud je typ triggeru kanálu JOB_TASK, pak se trigger_type.details vyplní následujícími hodnotami:

Value Description Notes
job_id ID úlohy, která aktivovala aktualizaci pipeline Hodnota SQL_SCHEDULE označuje, že tato job_task hodnota byla naplánována jako součást kódu SQL.
job_task_run_id ID běhu úlohy, který spustil aktualizaci pipeline Hodnota SQL_SCHEDULE označuje, že tato job_task hodnota byla naplánována jako součást kódu SQL.
performance_target Naplněno pouze pro aktualizace bezserverového kanálu Buď PERFORMANCE_OPTIMIZED nebo STANDARD