databricks-pipelines

Develop Lakeflow Spark Declarative Pipelines on Databricks with Python or SQL.

4|1|Updated May 22, 2026
One-click install
npx skills add https://github.com/ThomazRossito/ai-data-agents --skill databricks-pipelines-thomazrossito
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: databricks-pipelines
Source: https://github.com/ThomazRossito/ai-data-agents/tree/main/plugins/ai-data-agents/skills/databricks-pipelines
Command: npx skills add https://github.com/ThomazRossito/ai-data-agents --skill databricks-pipelines-thomazrossito

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Building batch and streaming data pipelines on Databricks requires choosing the right dataset types, APIs, and deployment workflows, and mistakes like mismatched streaming/batch pairs or legacy DLT syntax cause validation errors and failed updates. ## Core Features & Use Cases - Decision Guidance: A decision tree maps user requirements to the correct dataset type (Streaming Table, Materialized View, Temporary View, Sink) and features like Auto Loader, Auto CDC, Append Flows, and Expectations. - API Reference Tables: Feature-to-API mappings for Python and SQL with links to detailed reference files covering CDC, sinks, Kafka ingestion, expectations, and table features like liquid clustering. - Workflow Scaffolding: Three project workflows covering standalone DAB bundles, pipelines in existing bundles, and rapid CLI iteration, including deploy, run, polling, and failure-diagnosis commands. - Legacy Migration: A complete mapping from legacy DLT syntax (import dlt, apply_changes, LIVE. prefix) to the modern pyspark.pipelines API. - Use Case: A data engineer asked to build a medallion pipeline ingesting JSON files from cloud storage into Bronze, cleansing into Silver with expectations, and aggregating into Gold gets scaffolded project files, correct streaming table definitions, and deploy commands. ## Quick Start Ask the agent to create a Databricks declarative pipeline that ingests files from a cloud storage path into a streaming table and aggregates the results into a materialized view.

Frequently Asked Questions about databricks-pipelines

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a streaming table in Databricks Lakeflow pipelines?▼

In SQL use CREATE OR REFRESH STREAMING TABLE with a streaming source such as FROM STREAM read_files(...). In Python use the @dp.table() decorator returning a streaming DataFrame from spark.readStream. Batch sources require a materialized view instead.

What is the difference between a streaming table and a materialized view in Databricks?▼

Streaming tables process streaming or incremental sources append-only with exactly-once semantics, while materialized views store batch query results and recompute aggregates when source rows change. Aggregations over streaming sources belong in a materialized view using a batch read.

How do I migrate legacy DLT code to the modern pipelines API?▼

Replace import dlt with from pyspark import pipelines as dp, swap dlt.read for spark.read.table, and convert dlt.apply_changes to dp.create_auto_cdc_flow. The LIVE. prefix and CREATE STREAMING LIVE TABLE syntax must also be removed or rewritten.

Does Lakeflow support SCD Type 2 change data capture?▼

Yes, Auto CDC supports SCD Type 2 via dp.create_auto_cdc_flow in Python or AUTO CDC INTO ... STORED AS SCD TYPE 2 in SQL. History tables add __START_AT and __END_AT columns, and current rows are filtered with WHERE __END_AT IS NULL.

Why is my Databricks pipeline update stuck or failing?▼

Poll the specific update_id with databricks pipelines get-update rather than top-level pipeline state, which can flip back to RUNNING on retry. On FAILED, extract error.exceptions[0].message from list-pipeline-events, since the top-level message only says the update failed.

Can I write pipeline output to Kafka or external systems?▼

Yes, but sinks are Python-only. Use dp.create_sink() with format kafka or delta and write via @dp.append_flow targeting the sink. The value column is mandatory for Kafka, typically serialized with to_json(struct(*)).