Which enterprise sources can Lakeflow Connect ingest from?
Lakeflow Connect offers managed connectors for enterprise systems including Salesforce, Workday, Jira, Confluence, Zendesk, Google Ads, and Meta Ads, plus database sources such as SQL Server, MySQL, and PostgreSQL and file sources such as Google Drive and SharePoint. Database connectors use change data capture through an ingestion gateway, while query-based connectors read the source directly on a schedule without CDC configuration. Connector release states vary, so check the release-state documentation for each connector before production use.
How many data connectors does Lakeflow support?
Lakeflow Connect offers managed connectors across SaaS applications such as Salesforce, Workday, HubSpot, Jira, Confluence, Slack, Zendesk, Google Ads, and Meta Ads, along with database sources such as SQL Server, MySQL, and PostgreSQL and file sources such as Google Drive and SharePoint. Some SaaS connectors use OAuth-only authentication, and connector release states vary. Check the release-state documentation for each connector before production use.
How does Auto Loader ingest new files incrementally into Databricks?
Auto Loader incrementally ingests new files as they land in cloud storage, so each run picks up only new data without manual bookkeeping. It reads common formats including JSON, CSV, XML, Parquet, Avro, ORC, and text, and it infers schemas automatically. Directory listing is the default detection mode, and Databricks recommends file notification mode for most workloads.
How do I orchestrate multi-step data workflows on Databricks?
Lakeflow Jobs orchestrates multi-task workflows that combine notebook, Python script, and Lakeflow pipeline tasks, with dependencies between tasks. Jobs can run on a schedule or when new files arrive in a Unity Catalog location, and you can send failure and duration alerts by email, Slack, or webhook. Run history, per-task logs, and system tables give you visibility into each run.
How do I ingest SharePoint or Google Drive data into Databricks?
Lakeflow Connect includes managed file connectors for SharePoint and Google Drive, so you can bring that content into Databricks without writing custom ingestion code. The connectors run on custom schedules that you define, and each schedule creates a job. Lakeflow Connect also covers Salesforce, Workday, Jira, HubSpot, and database sources such as PostgreSQL, MySQL, and SQL Server.
How do I ingest data from a SaaS app or enterprise source into Databricks?
Lakeflow Connect provides managed connectors for SaaS applications and databases, including Salesforce, Workday, Jira, HubSpot, MySQL, PostgreSQL, and SQL Server. Connectors ingest changed data incrementally where the source supports it, on custom schedules you define, and they reach out to the source's APIs or query the database directly. Community and custom connectors cover sources without a managed connector.
What is a Databricks job or workflow?
A Lakeflow Jobs workflow orchestrates one or more tasks, such as notebooks, Python scripts, and Lakeflow pipelines, with scheduling and dependencies between tasks. Jobs can run on a schedule or when new files arrive in a Unity Catalog location, and you can receive failure and duration alerts by email, Slack, or webhook. Run history and per-task logs let you monitor each run.
What are declarative pipelines in Apache Spark?
Databricks contributed Declarative Pipelines to the open-source Apache Spark project, extending Spark's declarative model from single queries to multi-table batch and streaming pipelines. Engineers declare the datasets and how each is derived in SQL or Python, and Spark handles dependency tracking, execution order, incremental processing, checkpointing, retries and backfills. The model was inspired by Delta Live Tables, and Lakeflow pipelines are built on Apache Spark Declarative Pipelines.
How do I get notified about failed or delayed Databricks jobs?
Lakeflow Jobs notifications can fire on start, success, failure, duration-threshold exceeded, and streaming-backlog threshold exceeded events. Recipients are set per notification as email addresses or admin-configured system destinations such as Slack, Microsoft Teams, PagerDuty or HTTP webhooks, with up to three system destinations per event type. The docs do not describe per-user or per-group event routing.
How does Lakeflow Connect replace traditional Fivetran or Airbyte connectors for data ingestion?
Lakeflow Connect provides managed connectors for sources such as Salesforce, Workday, MySQL, PostgreSQL, and SQL Server, and it loads only changed data after the first run when the source supports incremental ingestion. Ingestion runs inside Databricks, so you do not operate a separate connector service, and the data lands in Delta tables that your pipelines and Unity Catalog governance already cover. Confirm incremental support per connector, because some sources and tables do not support it yet.
How do we implement CDC and maintain SCD Type II dimensions?
In Lakeflow Spark Declarative Pipelines, AUTO CDC maintains SCD Type 2 history natively, tracking versions with __START_AT and __END_AT columns, and AUTO CDC FROM SNAPSHOT handles sources where CDC is not enabled. The Lakeflow Connect overview lists SQL Server among database CDC connectors.
Is it true that Databricks has no system tables for job and pipeline runs?
No. Job and pipeline run history is exposed as governed system tables in the system.lakeflow schema, including jobs, job_tasks, job_run_timeline, job_task_run_timeline, pipelines, and pipeline_update_timeline. You can query runs, retries, and failures across the workspaces in your account in the same cloud region with SQL. Duration columns are fully populated for single-task jobs created with the legacy Jobs APIs, and job_task_run_timeline covers the other runs.
What are the best practices for the medallion architecture in Databricks?
Databricks defines three layers. Bronze holds raw, unvalidated data in its original form, grows incrementally, and keeps history for reprocessing and auditing. Silver holds validated, cleaned, and enriched data, and should keep at least one validated record-level representation that is not aggregated. Gold holds highly refined, aggregated, business-aligned datasets tuned for dashboards, ML, and applications.
What is the best way to ingest data from an API into Databricks?
Lakeflow Connect is Databricks' managed ingestion framework, with database, SaaS, file, streaming and community connectors, and you can build a custom connector for a source that no managed or community connector supports. SaaS connectors cover sources such as Salesforce, HubSpot, Jira and Workday. Managed connectors are governed by Unity Catalog. Their ingestion pipelines run on serverless compute, while standard database CDC gateways run on classic compute. The first run ingests all selected data, and later runs use change tracking to ingest only changed data when possible.
What happens in each medallion layer (bronze, silver, gold) and between the layers?
Bronze stores raw, unvalidated source data incrementally and keeps its history for reprocessing and auditing; it feeds the silver layer. Silver turns that data into validated, cleaned, and enriched records through steps such as cleansing, deduplication, normalization, and quality enforcement. Gold produces aggregated, business-aligned datasets optimized for analytics, dashboards, ML, and applications.
How do you implement medallion layers in Databricks?
Organize data into bronze (raw as ingested), silver (validated, cleaned, and enriched), and gold (aggregated, business-aligned) layers, following the Databricks medallion definitions. In Lakeflow Spark Declarative Pipelines, streaming tables are designed for append-only sources and process each input once, while materialized views serve refreshed results for downstream consumers. For changing source data such as CDC feeds, use AUTO CDC rather than appending.
How do you specify different schemas for Lakeflow Declarative Pipeline tables?
In SQL, CREATE STREAMING TABLE accepts a column specification where you declare column names, types, comments, generated columns, identity columns, defaults, and masks, along with data quality expectations. Table clauses include PARTITIONED BY or CLUSTER BY, comments, and TBLPROPERTIES, and each table defines its own column list. Table constraints such as primary and foreign keys are informational and not enforced.
How do checkpoint configuration changes affect a Structured Streaming query, and how do you re-ingest data?
A checkpoint stores the query's source offsets, committed micro-batches, state, and query ID, so a restart with the same checkpoint resumes where it left off. Changes to input sources, output sinks, or stateful operations generally require a new checkpoint, while adding or removing filters and changing trigger intervals are generally safe. Deleting the checkpoint or switching to a new location makes the query start fresh, and each query should have its own checkpoint location.
How does read_files relate to Auto Loader in Databricks?
read_files is a SQL table-valued function that reads files under a provided location, including cloud paths on S3, ADLS, and GCS, and returns the data in tabular form. When you use it in a streaming table query with the STREAM keyword, it leverages Auto Loader. It supports JSON, CSV, XML, TEXT, BINARYFILE, PARQUET, AVRO, and ORC files.
What are the bronze, silver, and gold layers in a medallion architecture?
The bronze layer holds raw, unvalidated data in its original form, appended incrementally, and it mainly feeds the silver layer. The silver layer holds validated, cleaned, and enriched data, where deduplication and normalization happen, and it keeps at least one validated non-aggregated representation of each record. The gold layer holds highly refined, aggregated, business-aligned datasets tuned for analytics, dashboards, ML, and applications.
What are best practices for structuring an ETL pipeline with the Databricks medallion architecture?
Organize the pipeline into bronze, silver, and gold layers. Bronze keeps raw, unvalidated source data appended over time, silver holds validated, cleaned, deduplicated, and normalized records, and gold holds aggregated, business-aligned datasets for dashboards, analytics, ML, and applications. Each layer builds on the one before it, moving data from raw to consumption-ready.
Can Spark Declarative Pipelines ingest JSON sources?
Yes. read_files supports JSON, along with CSV, XML, TEXT, BINARYFILE, PARQUET, AVRO, and ORC files. When read_files is used in a streaming table query with the STREAM keyword, it leverages Auto Loader to ingest new files. This lets a Lakeflow Declarative Pipeline ingest JSON sources with SQL.
How does Lakeflow Connect organize its connectors?
Lakeflow Connect organizes connectors by source type, including database, SaaS, file, and streaming connectors. Database connectors include MySQL, PostgreSQL, and SQL Server, and SaaS connectors include Salesforce, HubSpot, and Workday. Community and custom connectors are also documented.
Is PostgreSQL supported by Lakeflow Connect database connectors?
Yes. PostgreSQL is a supported database CDC connector in Lakeflow Connect, alongside MySQL, SQL Server, and Oracle. The connector uses change data capture to ingest changes incrementally from the source database.
Which task types can a Lakeflow Jobs workflow include?
Lakeflow Jobs supports notebook, Lakeflow designer, Lakeflow Integrations (Beta), Clean Room notebook, Python script, Python wheel, SQL, pipeline (including database table sync and ingestion variants), SQL Alert (Public Preview), dashboard, Power BI, dbt, dbt platform (Public Preview), JAR, Spark Submit, and Genie Code tasks. Control-flow tasks include Run Job, If/else, and For each. Each task can be configured with its own dependencies and settings.
Can Lakeflow Connect ingest GitLab repository and CI/CD data into Databricks?
Yes. The Lakeflow Connect GitLab connector ingests repository, project, group, CI/CD, and security data into Databricks. It supports incremental ingestion and SCD Type 2 history (except for tables with VARIANT columns), and it handles new and deleted columns automatically. Pipelines can be created in the UI, the API, or Declarative Automation Bundles, using OAuth U2M authentication. The connector is in Beta and a workspace admin must enable it on the Previews page.
Can I query a history of all Lakeflow pipelines and their update runs in SQL?
Yes. The system.lakeflow.pipelines table tracks pipelines across your account as a slowly changing history of configuration, and system.lakeflow.pipeline_update_timeline records each pipeline update with its timing and related metadata. Both tables cover all workspaces in the account that share a cloud region, support streaming reads, and retain 365 days of records, with the latest pipeline record kept beyond that window.
The Spark UI has dozens of tabs and graphs. Where do I even start on a slow job?
Databricks' Spark UI guide gives a sequence: start with the Jobs Timeline to find major issues, look at the longest stage, check for skew or spill, determine whether that stage is I/O bound, and then look for other causes of slow stage runtime. If the timeline shows failing jobs, long gaps between jobs, or many small jobs, the guide says to follow the link for that pattern instead. You open the Spark UI from your cluster's page by clicking Spark UI. Working through this order helps you narrow the problem before you change any configuration.
Should my code match on error message text, or is there a stable way to handle Spark errors?
Databricks recommends matching on the error condition, SQLSTATE, and message parameters rather than message text, because message text is not stable across releases and may be changed or localized without notice. In Python, catch PySparkException and use getErrorClass, getSqlState, and getMessageParameters. In Scala, use SparkThrowable with the same accessors. In SQL, define a compound-statement condition handler and use GET DIAGNOSTICS to read the condition. Building error handling on those fields keeps it working through upgrades.
A Spark stage is slow but barely reads or writes anything. Where is the time going?
When a stage is slow with little I/O, the Spark UI guide sends you to the associated SQL query and its SQL DAG. Look for slow UDFs, which you can test by commenting them out to see whether the pipeline speeds up, and for small-file overhead on scan or write operators. Also check for Cartesian or nested loop joins, which the guide calls very expensive, and for explode() or exploding joins, where a few input rows multiply into many outputs. Each check has a fix the guide describes, such as native functions, OPTIMIZE, or range join optimization.
CDC plus SCD Type 2 on Delta is complicated. When is it actually worth building?
Build it when you need history, not just the latest state. Lakeflow's AUTO CDC APIs handle keys, sequencing, deletes and SCD Type 2 for you: with STORED AS SCD TYPE 2, the target keeps each version with __START_AT and __END_AT columns, and the SEQUENCE BY column decides which change applies last, so late or out-of-order changes land correctly. If you only need the current row, a Delta MERGE upsert is less machinery and is often enough. Databricks recommends the AUTO CDC APIs over the APPLY CHANGES APIs, which are still available, so use AUTO CDC for new work.