Databricks

Databricks Declarative Pipelines (Delta Live Tables) vs Workflows: Design Decisions

2026-03-21
更新: 2026-03-27
NicheeLab Editorial Team

When building data pipelines on Databricks, one of the most common design questions is whether to use Lakeflow Declarative Pipelines (formerly Delta Live Tables / DLT), Workflows (Jobs), or a combination of both. DLT is declarative: you describe what you want, and the framework manages data quality and dependencies for you. Workflows is imperative: you describe how things should run, composing arbitrary tasks into a DAG for flexible orchestration.

This article compares the two across four dimensions — execution model, error handling, data quality, and cost — then walks through the combined pattern and a decision flow for picking between them.

DLT vs Workflows: Side-by-Side Comparison

DimensionDLT (Declarative Pipelines)Workflows (Jobs)
Execution modelDeclarative: the framework resolves table dependencies automaticallyImperative: task execution order is defined explicitly in a DAG
Definition@dlt.table decorator or SQL CREATE LIVE TABLEJSON/YAML, UI, Databricks CLI, or REST API
Error handlingExpectations built in (record, drop, or fail on quality violations)Per-task retries, conditional branches, and notifications
Data qualityDeclarative quality gates via ExpectationsNo built-in quality features — you implement them yourself in notebooks
ReprocessingFramework manages Full Refresh and incremental processingYou implement backfill logic manually
LineageTable dependencies are visualized automaticallyThe task DAG is visualized, but data lineage requires separate tooling
Target workloadsETL/ELT pipelines (table transformations)Any task: ETL, ML, notifications, external API calls, and more
CostDLT DBU rate applies (higher than standard Jobs)Jobs Compute DBU rate (lower than DLT)
Compute managementDLT manages the cluster automatically (Enhanced Autoscaling)Specify a job cluster or an existing cluster

DLT Basics: Declarative Table Definitions

In DLT you simply declare "this table comes from this source with these transformations," and the framework handles dependency resolution, incremental processing, and schema evolution.

import dlt
from pyspark.sql.functions import col, current_timestamp

@dlt.table(comment="Bronzeレイヤー:生データ取り込み")
def bronze_orders():
    return (
        spark.readStream
        .format("cloudFiles")
        .option("cloudFiles.format", "json")
        .load("/mnt/landing/orders/")
    )

@dlt.table(comment="Silverレイヤー:クレンジング済み")
@dlt.expect_or_drop("valid_amount", "amount > 0")
def silver_orders():
    return (
        dlt.read_stream("bronze_orders")
        .select("order_id", "customer_id", "amount", "region",
                current_timestamp().alias("processed_at"))
        .filter(col("order_id").isNotNull())
    )

@dlt.table(comment="Goldレイヤー:集約")
def gold_revenue_by_region():
    return (
        dlt.read("silver_orders")
        .groupBy("region")
        .agg({"amount": "sum"})
        .withColumnRenamed("sum(amount)", "total_revenue")
    )

Use dlt.read_stream() for streaming reads and dlt.read() for batch reads. Dependencies between tables are resolved automatically from what each read/read_stream references, so you never have to specify execution order.

Workflows Basics: A Multi-Task DAG

Workflows defines task dependencies as a DAG (directed acyclic graph). Each task can be a notebook, Python script, JAR, DLT pipeline, dbt project, and more, and you can assign different compute resources to each one.

# Workflows のDAG構造の概念
#
# [extract_task] ──→ [dlt_pipeline_task] ──→ [notify_task]
#       │                                         ↑
#       └──→ [validate_source_task] ──────────────┘
#
# - extract_task: 外部APIからデータ取得(Pythonノートブック)
# - dlt_pipeline_task: DLTパイプラインでETL(タスクタイプ: Pipeline)
# - validate_source_task: ソースデータの疎通確認
# - notify_task: Slack通知(成功/失敗を条件分岐で制御)

The strength of Workflows is the flexibility to set retries, timeouts, and conditional branches (if/else/for_each) per task. It can also unify non-transformation work like ML model training, external API calls, and notifications under one orchestrator.

The Combined Pattern: Workflows + DLT

The most common production pattern is to embed a DLT pipeline as a single task inside a Workflows DAG. Let DLT handle the ETL transformations and quality controls, and let Workflows orchestrate everything around them.

Task orderOwnerWhat it does
1. Data ingestionWorkflows task (notebook)Pull JSON from an external API and save it to the landing zone
2. ETL transformationsWorkflows task (DLT pipeline)Process Bronze → Silver → Gold declaratively in DLT
3. Data validationWorkflows task (notebook)Validate record counts and checksums on Gold tables
4. NotificationsWorkflows task (conditional branch)On success, send Slack notifications; on failure, page via PagerDuty

In this setup the DLT pipeline's success or failure propagates as the Workflows task status, so you can combine it with downstream conditional branches and retry settings for sophisticated error handling.

Decision Flow

Choose between DLT and Workflows based on the nature of your pipeline and your team's needs.

パイプラインの中心はテーブル変換(ETL/ELT)か?
├─ YES → データ品質管理(Expectations)が必要か?
│    ├─ YES → DLTを使う(Workflowsと併用も検討)
│    └─ NO  → シンプルならWorkflows単体、複雑ならDLTを検討
└─ NO  → MLトレーニング・外部API・通知など多様なタスクか?
     └─ YES → Workflowsを使う(ETL部分があればDLTを併用)
  • Table transformations + quality controls needed → DLT (standalone or combined with Workflows)
  • Orchestrating diverse tasks → Workflows
  • Integrating ETL + ML + notifications → Workflows + a DLT pipeline task
  • Scheduling a single notebook → Workflows alone is enough

Cost Differences

DLT bills at a DLT-specific DBU rate, which is higher than standard Jobs Compute DBUs. However, DLT also delivers cluster optimization via Enhanced Autoscaling and automates incremental processing, so the right comparison is total cost — including the development and operational cost of building the same features by hand.

Cost itemDLTWorkflows (notebook run directly)
DBU rateDLT rate (higher than Jobs Compute)Jobs Compute rate
Cluster managementAutomatic (Enhanced Autoscaling)Manual configuration (over/under-provisioning risk)
Quality-control dev costBuilt-in Expectations (no extra development)Build it yourself (dev, test, and maintenance cost)
Incremental-processing dev costManaged automatically by the frameworkImplement Structured Streaming or merge logic yourself

What the Exam Tests

  • The concrete difference between DLT (declarative) and Workflows (imperative)
  • DLT provides data quality controls via built-in Expectations; Workflows has no built-in quality features
  • Workflows can run a DLT pipeline as a task (the combined pattern)
  • DLT resolves dependencies automatically, while Workflows defines them explicitly via the DAG
  • The DBU rate difference (DLT > Jobs Compute)

Check Your Understanding

Data Engineer Associate / Professional

問題 1

A data engineer is designing a pipeline with these requirements: (1) pull data from an external API, (2) run a 3-stage Bronze → Silver → Gold ETL, (3) automatically drop quality-violating records at the Silver layer, and (4) send a Slack notification when the pipeline finishes. Which architecture is the best fit?

  1. Define every step inside a single DLT pipeline
  2. Use only notebook tasks in Workflows and implement quality checks in Python by hand
  3. Orchestrate everything in Workflows and embed the ETL portion as a DLT pipeline task
  4. Create two DLT pipelines: one for ingestion and one for ETL

正解: C

External API ingestion and Slack notifications fall outside DLT's scope (they aren't table transformations), so DLT alone cannot satisfy the requirements. Building the DAG in Workflows and embedding the ETL portion as a DLT pipeline task lets you combine DLT's Expectations-based quality controls with Workflows' flexible task orchestration, including notifications.

Frequently Asked Questions

Can a DLT pipeline run as a task inside a Workflow?

Yes. Workflows includes a task type called Delta Live Tables pipeline, which lets you embed a DLT pipeline as a single node in your DAG. A common layout is data ingestion in the first task, DLT transformations in the middle, and notifications at the end. This is the most common combined pattern, pairing DLT's declarative quality controls with Workflows' orchestration.

How does error handling differ between DLT and Workflows?

DLT handles errors automatically inside the pipeline based on Expectations (quality constraints), choosing between record, drop, or fail. Workflows lets you configure retries, conditional branches (if/else tasks), and notifications per task, giving you broader orchestration control. When combined, DLT handles data quality errors while Workflows handles infrastructure failures and task-level failures — a two-layer model.

Should small teams adopt DLT?

If your ETL pipeline has dependencies across 3+ tables and you need quality controls or lineage visualization, DLT pays off even at small scale. On the other hand, if you only need to run a single notebook on a schedule, Workflows alone is enough. Factor in the operational overhead of DLT's management tables and event logs when you decide.

Check what you learned with practice questions

Practice with certification-focused question sets

無料で問題を解いてみる
Author

NicheeLab Editorial Team

NicheeLab editorial team focused on data engineering and cloud certification learning. Content is structured around practical study needs and official exam domains.


Related articles
Databricks

Databricks Certifications: All 7 Exams, Difficulty & Study Plan (2026)

Complete guide to all 7 Databricks certifications — Data Eng...

Databricks

Databricks Exam Difficulty Ranking: All 7 Certs Compared (2026)

Every Databricks certification ranked by difficulty, with st...

Databricks

Databricks Study Guide: Fastest Pass Route & Time Estimates (2026)

How to pass Databricks certifications efficiently. Official ...

Databricks

Databricks Data Engineer Associate: Complete Guide (2026)

Domain-by-domain breakdown of the Databricks Certified Data ...

Databricks

Databricks Data Engineer Professional: Complete Guide (2026)

Tactics for the Databricks Certified Data Engineer Professio...

Browse all Databricks articles (110)
© 2026 NicheeLab All rights reserved.