Bring data quality together. In Databricks and beyond.

Soda
vs
Monte Carlo
Anomalo
Great Expectations
Databricks
In-house solution

Data teams at

Data contracts

Bring every check for a dataset together. Manage technical checks and business requirements in shared contracts, across Databricks and your other sources.

orders contract.yml0 checks
dataset: prod/public/orders
checks:
- row_count:never empty
- freshness:updated within 6 hours
column: updated_at
columns:
- name: order_id
checks:
- duplicate:no repeated orders
- name: customer_id
checks:
- missing:never empty
- name: status
checks:
- invalid:paid, shipped or refunded
valid_values: [paid, shipped, refunded]
- name: amount
data_type: decimalalways a number
Orders must not be empty
Orders arrive within 6 hours
order_id must be unique
customer_id IS NOT NULL
status IN ('paid','shipped','refunded')
amount must be a number
Orders must not be empty
Orders arrive within 6 hours
order_id must be unique
customer_id IS NOT NULL
status IN ('paid','shipped','refunded')
amount must be a number
Scattered checks
Checks in one place Slide to bring together
Sodavs Databricks
Engineers and business users define quality together.
One shared contract.
DatabricksSoda
Expectations and DQX support reusable rules. Soda organizes checks and ownership in shared contracts across Databricks and your other sources.
Rules in Databricks.

Data observability

Find the issue behind the metric. Use monitoring to spot changes and business checks to find records that break your rules.

A healthy metriccan hide an invalid record
Row 48,216−42.00
Find affected records Drag the loupe
Sodavs Databricks
4 anomalies found
90 days agoconnected+2 wks
Use historical metrics to spot unusual patterns.
See what changed.
DatabricksSoda
Native monitoring tracks table health; DQX also detects unusual rows. Soda combines monitoring and business checks across your connected sources.
Monitoring in Databricks.

AI-assisted coverage

Cover more data without writing every check. Let Autopilot draft contracts. Add your team’s business requirements with Copilot, the UI or code.

Soda Contract AutopilotReady to draft
sales.orders14checks
sales.customers11checks
sales.payments16checks
sales.invoices9checks
ops.shipments12checks
ops.inventory7checks
web.sessions6checks
web.events9checks
sales.refunds8checks
ops.products10checks
ops.returns7checks
ops.vendors6checks
finance.ledger15checks
finance.accounts8checks
finance.billing10checks
web.campaigns5checks
Databricks16 tables
Hold
Manual authoringOne table at a time
sales.ordersmanual
sales.customersmanual
sales.paymentsmanual
sales.invoicesmanual
ops.shipmentsmanual
ops.inventorymanual
web.sessionsmanual
web.eventsmanual
sales.refundsmanual
ops.productsmanual
ops.returnsmanual
ops.vendorsmanual
finance.ledgermanual
finance.accountsmanual
finance.billingmanual
web.campaignsmanual
Draft checks at scale Hold to preview
Sodavs Databricks
Autopilot drafts checks. Your team adds context.
Start with AI.
DatabricksSoda
DQX also generates rules with AI. Soda’s Autopilot and Copilot help your team build and refine shared contracts across sources.
AI-assisted rules.

Migration testing

Verify what reaches Databricks. Find missing records and changed values before the switch. Keep checking quality after the move.

Postgrespublic.orderssource
order_idcustomeramountstatus
48213c_104258.40paid
48214c_2210310.00paid
48215c_083174.10shipped
48216c_1187129.99paid
48217c_552018.00refunded
48218c_0412245.50shipped
48219c_778199.00paid
Databricksmain.sales.orderstarget
order_idcustomeramountstatus
48213c_104258.40paid
48214c_221031.00paid
48215c_083174.10shipped
48216NULL129.99paid
48217c_552018.00refunded
48218c_0412245.50pending
48219c_778199.00paid
Check every record
Sodavs Databricks
Find differences between source and target.
Check every record.
DatabricksSoda
DQX provides aggregate comparisons and custom SQL checks. Soda packages source-to-target record comparisons into reconciliation checks.
Build on Spark checks.

Infrastructure

Keep failed records in your own warehouse. Investigate issues in your diagnostics warehouse, with shared check results across Databricks and your other sources.

Your cloud
Snowflake
Failed rows
row 48216
row 48301
row 48377
Rows stay private Drag a row
Sodavs Databricks
Failed rows stay in your diagnostics warehouse.
Keep rows private.
DatabricksSoda
DQX runs in your Databricks environment. With Soda, failed rows stay in your Diagnostics Warehouse while Soda Cloud receives metadata and check results.
Your Databricks environment.

How 2K, HelloFresh and Make use Soda.

“Data contracts brought transparency and also bigger cooperation between different teams.”
Renata Hlavová, Data Engineer
Renata Hlavová
  • We went from detection to prevention. Most data quality tooling will tell you something broke after it broke. Our goal is to catch it before that reaches the dashboards and datasets in the first place.
    Sid Srivastava

    Sid SrivastavaDirector of Data Governance

  • Investing in data quality is key for cross-functional teams to make accurate, complete decisions…
    Mario Konschake

    Mario KonschakeDirector, Data Platform

  • A business analyst or data analyst can write and provision checks themselves through self-service.
    Gu Xie

    Gu XieHead of Data Engineering

  • Soda has integrated seamlessly into our technology stack.
    Sutaraj Dutta
    CarTrawler

    Sutaraj DuttaData Engineering Manager

  • We're catching issues we never would've noticed before.
    Zach Phillips

    Zach PhillipsProduct Analyst

  • It's about how it reshaped our approach to data quality and product mindset.
    Tommy Dodge
    FirstParty

    Tommy DodgeDirector of Analytics

Frequently asked questions

Choosing a data quality platform.

Who writes the checks. How you get coverage. Where your data stays.

Explore the documentation
  • Add Soda when your data quality requirements span Databricks, other data sources and the teams that use them. Soda brings business checks, data contracts, monitoring and diagnostics into a shared platform. Engineers can work in code while business users contribute requirements through the UI. You can keep Databricks as your data platform and use Soda to manage quality across your data sources.

    See Soda working with Databricks
  • Lakeflow expectations validate records as pipelines run. Delta NOT NULL and CHECK constraints enforce conditions when data is written; primary and foreign keys are informational. Unity Catalog quality monitoring detects changes in table health and profiles data. DQX is a separate Databricks Labs framework for Spark validation, with rules, quarantine, a browser UI and other quality features. These tools have different execution models, availability and support terms.

  • Soda lets teams author shared contracts through code, a no-code editor or AI. DQX Studio also offers browser-based rules, AI suggestions, approvals and ODCS contract import. Its current documentation labels Studio Experimental. Both provide ways to capture business requirements; the choice is how you want to manage those requirements across your teams and data sources.

  • Yes. DQX can train models on representative data to identify unusual records and explain which fields contributed to each result. This differs from native table monitoring for freshness and completeness. DQX documents batch training and streaming scoring; its models do not currently retrain automatically. Teams need to plan for reviewing results and retraining as normal data patterns change.

  • DQX is a Databricks Labs project provided without a formal Databricks support SLA. Its maintainers direct issues to GitHub, where they are reviewed as time permits. This applies to DQX, not to Databricks’ supported native products. Teams evaluating DQX should account for operating and upgrading the framework. Soda offers commercial product support, with premium support on its Enterprise plan.

  • Yes. Existing controls can continue running while you introduce Soda on selected datasets or requirements. Keeping native controls does not itself import their definitions or results into Soda; migration and integration requirements need a separate review. Existing business logic can be adapted into Soda contract checks, including custom SQL, with validation before older checks are retired.

    Explore Soda’s contract checks
  • Yes. Soda supports Databricks SQL alongside sources such as Snowflake, BigQuery, PostgreSQL and SQL Server. Teams can manage quality requirements across those systems in Soda rather than limiting their quality program to one platform. Connection methods and available features vary by source, so review the supported integration for each system you want to cover.

    See Soda’s supported data sources
  • Yes. Soda supports metric and record-level reconciliation between source and target datasets. Keyed row comparisons can identify missing records and mismatched values before a migration is complete. Teams can then keep running quality checks against the target. Run reconciliation through Soda Runner or the reconciliation extension for Python workflows; confirm plan and source support when planning the migration.

    Explore source-to-target reconciliation
  • Soda offers hosted and self-hosted Runners. With a self-hosted Runner, checks execute in your environment; a Diagnostics Warehouse keeps failed-row data in your warehouse for investigation. Soda Cloud receives metadata, check results and monitoring metrics. The exact data flow depends on your deployment, so choose the Runner and diagnostics configuration that meets your access and privacy requirements.

    Review Soda’s data flows

Introduction meeting 30 minutes Zoom

Put your checks where put theirs.

Thirty minutes with the Soda team to learn how your checks work today and how Soda can help you and your team.

  • Two short steps, then pick a time
  • Soda runs inside your own network
  1. 1You
  2. 2Your company
  3. 3Your time
Sodavs
Anomalo
Great Expectations
Databricks
In-house solution