--- title: "VW_DATASET_JOBS & VW_DATASET_JOB_EXECUTIONS" slug: "vw-dataset-jobs" updated: 2026-06-16T21:41:19Z published: 2026-06-16T21:41:19Z canonical: "docs.validatar.com/vw-dataset-jobs" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.validatar.com/llms.txt > Use this file to discover all available pages before exploring further. # VW_DATASET_JOBS & VW_DATASET_JOB_EXECUTIONS ## Overview These two views provide visibility into job scheduling and execution history. `VW_DATASET_JOBS` contains job definitions (name, project, schedule count), while `VW_DATASET_JOB_EXECUTIONS` provides the execution history for each job with timing, status, and aggregate test results. Use these views for job monitoring dashboards, SLA tracking, and understanding which jobs are inactive or failing. ## VW_DATASET_JOBS Schema | Column | Type | Description | | --- | --- | --- | | JOB_NAME | VARCHAR | Name of the job | | JOB_ID | NUMBER | Unique job identifier | | PROJECT_ID | NUMBER | ID of the project containing the job | | PROJECT_NAME | VARCHAR | Name of the project | | JOB_FOLDER | VARCHAR | Name of the immediate folder | | JOB_FOLDER_ID | NUMBER | Folder ID | | JOB_FOLDER_PATH | VARCHAR | Full folder path hierarchy | | STEPS_COUNT | NUMBER | Number of active steps in the job | | SCHEDULES_COUNT | NUMBER | Number of active schedules attached | | DATE_CREATED | TIMESTAMP | When the job was created | | DATE_MODIFIED | TIMESTAMP | When the job was last modified | | LAST_EXECUTED | TIMESTAMP | Most recent execution start time | | CREATED_BY | VARCHAR | Full name of the creator | | MODIFIED_BY | VARCHAR | Full name of the last modifier | ## VW_DATASET_JOB_EXECUTIONS Schema ### Execution Identity | Column | Type | Description | | --- | --- | --- | | STEP_ID | NUMBER | Job step execution ID (NULL for top-level batch runs) | | BATCH_ID | NUMBER | Batch ID for this execution | | JOB_ID | NUMBER | ID of the job | | PROJECT_ID | NUMBER | Project ID | ### Timing | Column | Type | Description | | --- | --- | --- | | RUN_DATE | TIMESTAMP | When the execution started | | END_DATE | TIMESTAMP | When the execution completed | | DURATION | NUMBER | Duration in seconds | | BATCH_STATUS_ID | NUMBER | Status code | | BATCH_STATUS | VARCHAR | Status name (e.g., "Complete", "Running", "Error") | ### Job Context | Column | Type | Description | | --- | --- | --- | | JOB_NAME | VARCHAR | Name of the job | | JOB_DESCRIPTION | VARCHAR | Job description | | JOB_FOLDER_PATH | VARCHAR | Full folder path | | JOB_FOLDER_ID | NUMBER | Folder ID | | JOB_FOLDER_NAME | VARCHAR | Folder name | | PROJECT | VARCHAR | Project name | | JOB_IS_ACTIVE | BOOLEAN | Whether the job is currently active | | JOB_CREATED_BY | VARCHAR | Full name of the job creator | | JOB_MODIFIED_BY | VARCHAR | Full name of the last job modifier | | JOB_CREATED_ON | TIMESTAMP | Job creation date | | JOB_MODIFIED_ON | TIMESTAMP | Job modification date | | TRIGGERED_BY | VARCHAR | Who triggered the run ("Scheduler" or user name) | | RUNTIME_PARENT | VARCHAR | Full path of parent job hierarchy (for nested jobs) | | URL | VARCHAR | Relative URL to view results | ### Test Result Counts | Column | Type | Description | | --- | --- | --- | | TEST_TOTAL_COUNT | NUMBER | Total tests executed in this job run | | TEST_VALID_COUNT | NUMBER | Valid test count (same as total) | | TEST_PASSED_COUNT | NUMBER | Tests that passed | | TEST_FAILED_COUNT | NUMBER | Tests that failed | | TEST_ERROR_COUNT | NUMBER | Tests that errored | | JOB_STATUS | VARCHAR | Derived status: "Passed", "Failed", "Error", or "N/A" | | RESULT | VARCHAR | Detailed result string (e.g., "Passed (10 pass of 10)" or "Failed (8 pass of 10)") | ## Relationships ``` VW_DATASET_JOBS │ └── JOB_ID → VW_DATASET_JOB_EXECUTIONS.JOB_ID (one-to-many) VW_DATASET_JOB_EXECUTIONS │ ├── BATCH_ID → VW_DATASET_TEST_EXECUTIONS.BATCH_ID └── PROJECT_ID → VW_DATASET_TESTS.PROJECT_ID ``` ## Example Queries ### Job Run History with Pass/Fail Summary ``` SELECT JOB_NAME, PROJECT, RUN_DATE, DURATION, RESULT, TRIGGERED_BY FROM REPOSITORY.VW_DATASET_JOB_EXECUTIONS WHERE RUN_DATE >= DATEADD(day, -7, CURRENT_DATE) ORDER BY RUN_DATE DESC; ``` ### Jobs Not Executed in 7+ Days ``` SELECT JOB_NAME, PROJECT_NAME, JOB_FOLDER_PATH, LAST_EXECUTED, DATEDIFF(day, LAST_EXECUTED, CURRENT_DATE) AS DAYS_SINCE_LAST_RUN, SCHEDULES_COUNT FROM REPOSITORY.VW_DATASET_JOBS WHERE LAST_EXECUTED < DATEADD(day, -7, CURRENT_DATE) OR LAST_EXECUTED IS NULL ORDER BY LAST_EXECUTED ASC NULLS FIRST; ``` ### Average Job Duration by Project ``` SELECT PROJECT, JOB_NAME, COUNT(*) AS RUN_COUNT, AVG(DURATION) AS AVG_DURATION_SEC, MAX(DURATION) AS MAX_DURATION_SEC, MIN(DURATION) AS MIN_DURATION_SEC FROM REPOSITORY.VW_DATASET_JOB_EXECUTIONS WHERE RUN_DATE >= DATEADD(day, -30, CURRENT_DATE) AND END_DATE IS NOT NULL GROUP BY PROJECT, JOB_NAME ORDER BY AVG_DURATION_SEC DESC; ``` ### Job Failure Rate ``` SELECT JOB_NAME, COUNT(*) AS TOTAL_RUNS, SUM(CASE WHEN JOB_STATUS = 'Passed' THEN 1 ELSE 0 END) AS PASSES, SUM(CASE WHEN JOB_STATUS = 'Failed' THEN 1 ELSE 0 END) AS FAILURES, SUM(CASE WHEN JOB_STATUS = 'Error' THEN 1 ELSE 0 END) AS ERRORS, ROUND(SUM(CASE WHEN JOB_STATUS = 'Failed' THEN 1 ELSE 0 END)::DECIMAL / COUNT(*) * 100, 1) AS FAILURE_RATE_PCT FROM REPOSITORY.VW_DATASET_JOB_EXECUTIONS WHERE RUN_DATE >= DATEADD(day, -30, CURRENT_DATE) AND JOB_STATUS != 'N/A' GROUP BY JOB_NAME HAVING COUNT(*) >= 3 ORDER BY FAILURE_RATE_PCT DESC; ``` ## VW_DATASET_JOB_PROPERTIES — Extended Property Details The companion view `VW_DATASET_JOB_PROPERTIES` provides a vertical (one-row-per-property) representation of job details that don't fit in the flat `VW_DATASET_JOBS` structure. Each row represents one property for a specific job. ### Schema | Column | Type | Description | | --- | --- | --- | | JOB_NAME | VARCHAR | Job name | | JOB_ID | NUMBER | Job ID | | PROJECT_ID | NUMBER | Project ID | | PROJECT_NAME | VARCHAR | Project name | | FOLDER_NAME | VARCHAR | Folder name | | FOLDER_ID | NUMBER | Folder ID | | FOLDER_PATH | VARCHAR | Full folder path | | PROPERTY_CATEGORY | VARCHAR | Category grouping (see below) | | PROPERTY_NAME | VARCHAR | Specific property or step name | | PROPERTY_NAME_INDEX | NUMBER | Sequence within the category | | PROPERTY_VALUE_TYPE | VARCHAR | Data type hint: "String Value", "Numeric Value", "Step", "Schedule", or custom field types | | PROPERTY_VALUE | VARCHAR | The property value | | DATE_MODIFIED | TIMESTAMP | When this property was last changed | | MODIFIED_BY | VARCHAR | Who modified it | ### Property Categories | PROPERTY_CATEGORY | PROPERTY_NAME Values | Description | | --- | --- | --- | | **Custom Metadata** | *(user-defined custom field names)* | Custom field values assigned to the job. Supports String, Numeric, Dropdown, TagList, and UserGroupList data types. | | **Steps** | *(name of the test, job, profile set, or folder)* | Each step in the job listed individually. `PROPERTY_VALUE` is the step type: "Test", "Job", "DataProfileSet", or "Folder". `PROPERTY_NAME_INDEX` gives the step order. | | **Schedules** | *(schedule name)* | Active schedules attached to the job. `PROPERTY_VALUE` is the next execution date. | | **Discussion Comment** | Discussion Comment | Comments posted on the job's discussion thread. | ### Joining Jobs to Properties Use `JOB_ID` as the join key between `VW_DATASET_JOBS` and `VW_DATASET_JOB_PROPERTIES`. ### Example: Jobs with a Custom Field Indicating Environment ``` SELECT j.JOB_NAME, j.PROJECT_NAME, j.LAST_EXECUTED, p.PROPERTY_VALUE AS ENVIRONMENT FROM REPOSITORY.VW_DATASET_JOBS j INNER JOIN REPOSITORY.VW_DATASET_JOB_PROPERTIES p ON p.JOB_ID = j.JOB_ID WHERE p.PROPERTY_CATEGORY = 'Custom Metadata' AND p.PROPERTY_NAME = 'Environment' AND p.PROPERTY_VALUE = 'Production' ORDER BY j.LAST_EXECUTED DESC; ``` ### Example: List All Steps for a Specific Job ``` SELECT PROPERTY_NAME AS STEP_NAME, PROPERTY_VALUE AS STEP_TYPE, PROPERTY_NAME_INDEX AS STEP_ORDER FROM REPOSITORY.VW_DATASET_JOB_PROPERTIES WHERE JOB_NAME = 'Daily Validation Suite' AND PROPERTY_CATEGORY = 'Steps' ORDER BY PROPERTY_NAME_INDEX; ``` ### Example: Jobs That Have Not Been Scheduled ``` SELECT j.JOB_NAME, j.PROJECT_NAME, j.LAST_EXECUTED FROM REPOSITORY.VW_DATASET_JOBS j WHERE NOT EXISTS ( SELECT 1 FROM REPOSITORY.VW_DATASET_JOB_PROPERTIES p WHERE p.JOB_ID = j.JOB_ID AND p.PROPERTY_CATEGORY = 'Schedules' ) ORDER BY j.PROJECT_NAME, j.JOB_NAME; ``` ### Example: Jobs Where a Comment Mentions "SLA" ``` SELECT DISTINCT j.JOB_NAME, j.PROJECT_NAME, p.PROPERTY_VALUE AS COMMENT_TEXT, p.MODIFIED_BY, p.DATE_MODIFIED FROM REPOSITORY.VW_DATASET_JOBS j INNER JOIN REPOSITORY.VW_DATASET_JOB_PROPERTIES p ON p.JOB_ID = j.JOB_ID WHERE p.PROPERTY_CATEGORY = 'Discussion Comment' AND LOWER(p.PROPERTY_VALUE) LIKE '%sla%' ORDER BY p.DATE_MODIFIED DESC; ``` ### Secure View `VW_SECURE_DATASET_JOB_PROPERTIES` adds `USER_ID` and `ACCESS_TYPE` columns, filtered by project membership (same security tier as `VW_SECURE_DATASET_JOBS`). ## Databricks Notes - Replace `DATEADD(day, -7, CURRENT_DATE)` with `DATE_ADD(CURRENT_DATE(), -7)` - Replace `DATEDIFF(day, col, CURRENT_DATE)` with `DATEDIFF(CURRENT_DATE(), col)` - Replace `col::DECIMAL` with `CAST(col AS DECIMAL)` - The `RUNTIME_PARENT` column shows the full job nesting path when a job is triggered as a step inside another job