10.4 Pipeline Execution Modes, Serverless DLT, & Event Logs
Key Takeaways
- Triggered pipeline mode executes all available data through the DAG once and shuts down compute, optimizing costs for batch and scheduled workloads, whereas Continuous mode keeps compute active for sub-second streaming latency.
- Development mode accelerates pipeline authoring by keeping compute clusters active across runs to avoid restart latency and disabling automated task retries so syntax/runtime errors surface immediately.
- Production mode enforces enterprise operational rigor by spinning down compute when idle, restarting clusters cleanly per run, and enabling automated retries upon transient infrastructure failures.
- Serverless DLT eliminates manual cluster configuration, virtual machine quota management, and driver tuning, delivering instant sub-15-second compute provisioning and intelligent auto-scaling.
- The DLT Event Log is a Delta-backed system table queried using the event_log(pipeline_id) table-valued function or Unity Catalog system tables to audit data quality metrics, flow latency, cluster sizing, and lineage.
10.4 Pipeline Execution Modes, Serverless DLT, & Event Logs
DP-750 Exam Focus: Master the operational management, compute provisioning, and telemetry auditing of Delta Live Tables and Lakeflow Declarative Pipelines. Understand the operational trade-offs between Triggered and Continuous execution modes, Development (Dev) and Production (Prod) modes, and the advantages of Serverless DLT compute. Learn how to write SQL queries against the
event_log()table-valued function to extract data quality metrics, flow progress, and error diagnostics.
1. Pipeline Execution Modes: Triggered vs. Continuous
When configuring a Delta Live Tables pipeline, data engineers select an Execution Mode that governs how the runtime engine schedules compute and processes incoming data.
+---------------------------------------------------------------------------------------------------------+
| TRIGGERED MODE VS. CONTINUOUS MODE |
+---------------------------------------------------------------------------------------------------------+
| |
| TRIGGERED MODE (Batch / Scheduled) CONTINUOUS MODE (Real-Time Streaming) |
| - Starts compute on schedule - Compute runs 24/7 continuously |
| - Ingests all available pending data - Micro-batches execute continuously |
| - Processes full DAG once - Ingests data with millisecond/second latency |
| - Shuts down compute automatically - Incurs constant DBU / VM compute cost |
| - Maximizes cost savings - Maximizes freshness for real-time streaming |
| |
+---------------------------------------------------------------------------------------------------------+
1. Triggered Execution Mode
- Execution Mechanics: When triggered manually or on a cron schedule (e.g., hourly via Databricks Workflows), the pipeline spins up compute, processes all newly arrived data from sources across the entire Directed Acyclic Graph (DAG), commits all table snapshots, and immediately terminates the compute cluster.
- Cost Efficiency: Clusters run only for the exact duration of the data processing update. No idle compute costs are incurred between schedules.
- Best Use Case: Hourly/daily batch ETL, periodic CDC syncs, dimensional recomputations, and cost-sensitive data warehouse loading.
2. Continuous Execution Mode
- Execution Mechanics: The pipeline cluster remains active indefinitely. The runtime continuously polls streaming sources (e.g., Azure Event Hubs, Kafka topics, Auto Loader storage paths) and processes incoming records in ultra-low latency micro-batches.
- Latency Profile: End-to-end ingestion latency is minimized (often sub-second to a few seconds).
- Cost Profile: Incurs continuous Databricks Unit (DBU) consumption and cloud VM infrastructure charges.
- Best Use Case: Mission-critical real-time analytics, continuous IoT sensor monitoring, live fraud detection, and sub-minute operational dashboards.
Execution Mode Comparison
| Operational Attribute | Triggered Mode | Continuous Mode |
|---|---|---|
| Compute Lifecycle | Ephemeral (Spins up, processes, shuts down) | Persistent (Runs 24/7 until manually stopped) |
| Data Freshness | Bounded by schedule interval (e.g., hourly) | Continuous / Near real-time (sub-second) |
| Cost Profile | Pay only for active processing time | Continuous compute and DBU billing |
| Checkpoints & State | Preserved across runs in storage | Maintained in memory & persisted to storage |
| Primary Workloads | Batch ETL, Scheduled Medallion Lakehouses | Real-time Streaming, Live Alerts, Real-time BI |
2. Pipeline Environments: Development vs. Production Mode
In the DLT pipeline settings UI or JSON configuration, engineers can toggle between Development (Dev) and Production (Prod) modes.
+---------------------------------------------------------------------------------------------------------+
| DEVELOPMENT MODE VS. PRODUCTION MODE |
+---------------------------------------------------------------------------------------------------------+
| DEVELOPMENT MODE (Dev) PRODUCTION MODE (Prod) |
| - Cluster Reuse: Kept active across updates - Cluster Restart: Fresh cluster or shutdown |
| - Retries: Disabled (fails immediately on error) - Retries: Automatic retries on transient errors |
| - Goal: Rapid iterative code/query testing - Goal: Enterprise SLA, stability, and cost governance|
+---------------------------------------------------------------------------------------------------------+
1. Development Mode (development: true)
- Cluster Reuse: The driver and worker compute cluster is kept running even after a pipeline update completes. When you modify a SQL or Python file and click Start, the pipeline reuses the existing cluster, eliminating the 3–5 minute VM provisioning delay.
- Immediate Error Propagation: Automated retries on task failure are disabled. When a syntax error, type mismatch, or schema failure occurs, the engine halts immediately and displays the stack trace in the UI for interactive debugging.
- Manual Triggering: Pipelines in Dev mode do not execute on automated schedules.
2. Production Mode (development: false)
- Cluster Lifecycle: Compute clusters are automatically spun down upon completion of Triggered updates, eliminating idle cloud costs.
- Automated Fault Tolerance: The engine automatically retries failed tasks and updates upon encountering transient infrastructure failures (e.g., Azure VM spot evictions or transient network timeouts).
- Strict Governance: Locks target tables to production schemas in Unity Catalog and disallows ad-hoc manual state overrides.
3. Serverless Compute for Delta Live Tables
Traditionally, configuring DLT pipelines required data engineers to configure Azure VM worker types (e.g., Standard_D4ds_v5), driver node sizes, min/max worker auto-scaling thresholds, and Databricks Runtime (DBR) versions.
Serverless DLT replaces manual infrastructure management with fully managed, instant compute hosted within the Azure Databricks serverless compute plane.
Architectural Advantages of Serverless DLT
- Instant Cluster Startup: Serverless compute provisions in under 15 seconds (compared to 3–7 minutes for classic Azure VM provisioning), dramatically accelerating development iterations and scheduled batch jobs.
- Intelligent Dynamic Auto-Scaling: The serverless engine continuously monitors pipeline CPU utilization, memory pressure, and streaming queue backlog, scaling worker resources up or down dynamically at the task level rather than VM level.
- Zero VM Quota & Subscription Overhead: Computes execute within the secure Databricks compute plane, eliminating Azure subscription core quota bottlenecks, VNet peering configurations, and Azure subnet exhaustion issues.
- Automated Runtime Upgrades & Security Patching: Runtimes and security patches are applied transparently without requiring manual DBR version migrations.
// Example: DLT Pipeline Configuration JSON enabling Serverless
{
"id": "c9a221f4-7e82-4b2a-89a1-5d93b91a7420",
"name": "Production_Financial_Ingest",
"serverless": true,
"development": false,
"continuous": false,
"catalog": "prod_catalog",
"target": "finance_silver",
"libraries": [
{
"notebook": {
"path": "/Workspace/Pipelines/financial_transformations"
}
}
]
}
4. Querying the Pipeline Event Log
Every Delta Live Tables pipeline automatically records comprehensive operational telemetry, execution statistics, data quality metrics, and cluster lifecycle events into a managed, append-only Delta table known as the Event Log.
Querying the Event Log via SQL Table-Valued Function
Data engineers can query the event log directly in Databricks SQL or notebooks using the built-in event_log() table-valued function:
-- Query the full event log for a specific pipeline
SELECT *
FROM event_log("c9a221f4-7e82-4b2a-89a1-5d93b91a7420")
ORDER BY timestamp DESC;
Anatomy of Event Log Schema
| Column | Data Type | Description |
|---|---|---|
id | STRING | Unique identifier for the discrete log entry. |
timestamp | TIMESTAMP | Exact UTC timestamp of the recorded event. |
sequence | STRUCT | Monotonically increasing event ordering sequence. |
origin | STRUCT | Metadata identifying pipeline ID, update ID, flow ID, and dataset name. |
event_type | STRING | Type of event (e.g., flow_progress, user_action, planning_information, crane_alert). |
message | STRING | Human-readable log message or status description. |
level | STRING | Severity level: INFO, WARN, ERROR, or METRICS. |
details | STRING (JSON) | Structured JSON payload containing data quality expectation metrics, flow execution duration, row counts, and error stack traces. |
5. Deep SQL Queries for Pipeline Observability
Data quality metrics and execution statistics reside in the structured JSON payload of the details column when event_type = 'flow_progress'.
1. Extracting Data Quality & Expectation Metrics
To monitor how many records passed, failed, or were dropped by each expectation across pipeline datasets:
SELECT
timestamp,
origin.flow_name AS dataset_name,
expectation_metric.key AS expectation_name,
CAST(expectation_metric.value:passed_records AS BIGINT) AS passed_records,
CAST(expectation_metric.value:failed_records AS BIGINT) AS failed_records,
ROUND(
CAST(expectation_metric.value:failed_records AS DOUBLE) /
NULLIF(CAST(expectation_metric.value:passed_records AS DOUBLE) + CAST(expectation_metric.value:failed_records AS DOUBLE), 0) * 100,
2
) AS failure_percentage
FROM event_log("c9a221f4-7e82-4b2a-89a1-5d93b91a7420"),
LATERAL EXPLODE(FROM_JSON(details:flow_progress:data_quality:expectations, 'MAP<STRING, STRUCT<passed_records: BIGINT, failed_records: BIGINT>>')) AS expectation_metric
WHERE event_type = 'flow_progress'
ORDER BY timestamp DESC;
2. Auditing Pipeline Execution Latency and Row Throughput
To track processing duration, input row counts, and output throughput across each individual flow in the DAG:
SELECT
timestamp,
origin.update_id,
origin.flow_name AS table_name,
details:flow_progress:metrics:num_output_rows AS output_rows,
details:flow_progress:data_quality:dropped_records AS dropped_rows,
details:flow_progress:status AS execution_status
FROM event_log("c9a221f4-7e82-4b2a-89a1-5d93b91a7420")
WHERE event_type = 'flow_progress'
AND origin.flow_name IS NOT NULL
ORDER BY timestamp DESC;
3. Diagnosing Pipeline Errors and Root-Cause Failures
To isolate fatal exceptions, constraint failures (ON VIOLATION FAIL UPDATE), or cluster provisioning failures:
SELECT
timestamp,
origin.flow_name AS failed_dataset,
message AS error_summary,
details:error:exception:message AS exception_details,
details:error:exception:stack_trace AS full_stack_trace
FROM event_log("c9a221f4-7e82-4b2a-89a1-5d93b91a7420")
WHERE level = 'ERROR'
ORDER BY timestamp DESC;
An Azure Databricks data engineer is testing a series of complex data transformations across multiple SQL and Python files in a Delta Live Tables pipeline. What is the primary benefit of toggling the pipeline environment setting to Development mode during this testing phase?
A data engineer needs to build an automated Databricks SQL dashboard that displays the total number of records that violated data quality expectations across every dataset in a production DLT pipeline. How should the engineer query this telemetry?
An organization requires an hourly batch data pipeline that processes new files arriving in ADLS Gen2, validates customer data quality, updates conformed dimensions, and refreshes Gold reporting marts. Minimizing compute costs is the top organizational requirement. Which pipeline configuration should the engineer choose?