Inferensys

Glossary

Soda Core

Soda Core is an open-source data quality testing framework that uses a declarative YAML syntax to define and execute checks for freshness, volume, schema, and custom metrics within data pipelines.
Data scientist building training data pipeline on laptop, data preprocessing visible, technical workspace.
AUTOMATED DATA TESTING

What is Soda Core?

Soda Core is an open-source, command-line data quality testing framework that enables engineers to define and execute programmatic checks on their data.

Soda Core is an open-source data quality testing framework that allows data engineers to define declarative checks in YAML files. These checks validate datasets for issues like missing values, schema changes, freshness, and custom business rule violations. It integrates directly into data pipelines and CI/CD workflows, enabling test-driven data development and preventing bad data from propagating downstream.

The framework operates by executing SQL queries against data sources—including data warehouses and data lakes—to validate defined data quality rules. It produces detailed reports on test failures and metrics. As a core component of the broader Soda data observability platform, it provides the foundational programmatic testing capability, while commercial offerings add monitoring, alerting, and root cause analysis features.

OPEN-SOURCE DATA QUALITY FRAMEWORK

Key Features of Soda Core

Soda Core is a programmatic data quality testing framework that enables data engineers to define, run, and monitor checks for freshness, volume, schema, and custom business logic directly within their data pipelines.

01

Declarative YAML Configuration

Soda Core uses a simple, human-readable YAML syntax (called a Soda Checks file) to define data quality tests. This declarative approach separates the what (the quality rule) from the how (the execution engine).

  • Define checks for a dataset in a checks.yml file.
  • Specify the data source (e.g., Snowflake, PostgreSQL, Spark).
  • Write checks like row_count > 0 or missing_count(column_name) = 0.
  • This configuration-as-code approach enables version control, peer review, and easy integration into CI/CD pipelines.
02

Programmatic Python Execution

While checks are defined in YAML, they are executed via a Python library (soda-core-sql or soda-core-spark). This provides flexibility and power for advanced use cases.

  • Install the relevant soda-core package for your data source.
  • Run checks from a CLI command: soda scan -d your_data_source -c configuration.yml checks.yml.
  • Integrate scans directly into Python data pipelines (e.g., Airflow DAGs, Databricks notebooks).
  • The Python SDK allows for dynamic check generation and programmatic result handling.
03

Built-in & Custom Metrics

The framework provides a library of standard metrics for common data quality dimensions, and allows for the creation of custom SQL metrics.

Built-in Metrics:

  • Freshness: freshness - Time since the most recent data update.
  • Volume: row_count, missing_count, missing_percentage.
  • Schema: schema - Detects changes in column names, types, or order.
  • Uniqueness: duplicate_count, distinct_count.
  • Validity: invalid_count, invalid_percentage (using regex or format checks).

Custom SQL Metrics:

  • Define your own SQL queries to calculate business-specific metrics (e.g., total_revenue, customer_churn_rate).
  • Apply thresholds and checks directly to these custom metric results.
04

Automated Anomaly Detection

Soda Core includes automated monitoring for numeric metrics using statistical methods, moving beyond static thresholds.

  • For metrics like row_count or avg_value, you can configure checks to use dynamic thresholds.
  • The system learns from historical metric values to establish a normal range.
  • It flags anomalies when current values deviate significantly from the learned pattern (e.g., using techniques similar to statistical process control).
  • This is crucial for detecting data drift—gradual changes in data distributions that static thresholds would miss.
05

Pipeline Integration & Gating

Soda Core is designed to be embedded at key stages of the data lifecycle, acting as a quality gate.

  • Pre-Production (CI/CD): Run checks on pull requests to validate changes to data models before merging.
  • Pipeline Execution: Integrate a soda scan as a task within an orchestration tool (e.g., Airflow, Dagster, Prefect). If checks fail, the pipeline can be configured to halt, preventing bad data from propagating.
  • Production Monitoring: Schedule regular scans (e.g., hourly, daily) on live data assets to monitor ongoing health and trigger alerts.
  • This enables continuous testing for data, mirroring software engineering best practices.
AUTOMATED DATA TESTING

How Soda Core Works

Soda Core is an open-source framework for programmatically validating data integrity within pipelines.

Soda Core is a data quality testing framework that enables engineers to define and execute programmatic checks on datasets using a simple, declarative YAML syntax. It operates by connecting to a data source—like a data warehouse, database, or file—and running a suite of configured checks to validate freshness, volume, schema, and custom business rules. Failed checks generate data quality incidents that can be routed to monitoring tools.

The framework's execution is typically integrated into data pipeline orchestration tools (like Airflow or dbt) or CI/CD workflows, acting as a quality gate. It separates the definition of checks (what to test) from the execution logic (how to run them), allowing teams to implement test-driven data development. Results are surfaced via exit codes, logs, or integrated into data observability platforms like Soda Cloud for centralized monitoring.

FEATURE COMPARISON

Soda Core vs. Other Data Testing Frameworks

A technical comparison of core capabilities, integration patterns, and operational models across leading open-source and commercial data quality frameworks.

Feature / CapabilitySoda CoreGreat Expectationsdbt TestMonte Carlo / Commercial Platforms

Core Architecture

Declarative YAML/CLI framework

Python library with expectation suites

Declarative YAML/SQL within dbt project

SaaS platform with agent-based collection

Primary Integration Method

CLI, Python library, Airflow operators

Python library, custom orchestration

Native within dbt build command

Proprietary cloud connectors, API

Test Definition Syntax

YAML-based checks (SodaCL)

Python code or JSON expectations

YAML or SQL in schema.yml files

Web UI, YAML, or API-driven

Programmatic Test Creation

Limited; primarily YAML config

Extensive via Python API

Limited; YAML/SQL declarative

Web UI primary, API secondary

Built-in Metric Types

Freshness, volume, schema, custom SQL

Extensive library of expectation types

Generic, unique, not_null, relationships

Pre-built monitors for common patterns

Dynamic Thresholds

Via reference checks, manual configuration

Optional, requires custom implementation

Not supported natively

Automatic via statistical baselining

Pipeline Gating

Yes, via CLI exit codes, Airflow sensors

Yes, via Python script integration

Yes, via dbt build --fail-fast

Yes, via webhook alerts, Slack/email

Data Source Coverage

20+ connectors (Snowflake, BigQuery, etc.)

15+ connectors via execution engines

Native to data warehouse via adapter

50+ commercial & cloud connectors

Result Storage & History

Local file, Soda Cloud (commercial)

Data Docs (HTML), metrics stores

dbt artifacts, run results JSON

Proprietary cloud data store, unlimited

Alerting & Notifications

Basic CLI output, Soda Cloud required for advanced

Custom via callbacks, Data Docs

CLI output, integration via dbt Cloud

Multi-channel (Slack, PagerDuty, Teams, email)

Root Cause Analysis Tools

Limited; column-level diagnostics

Basic profiling, custom data assistants

Lineage in dbt DAG, test failures

Automated lineage correlation, impact scoring

Cost Model

Open-source core, commercial cloud

Open-source, self-managed infrastructure

Open-source core, commercial cloud

Subscription SaaS, based on data volume/users

Deployment Complexity

Low; single binary, Python package

Medium; Python environment, GX server optional

Low; part of dbt project

Low; agent-based, managed service

Team Collaboration Features

Soda Cloud for shared dashboards

Data Docs for HTML sharing

dbt Cloud for centralized runs

Native multi-user roles, dashboards, audit logs

SODA CORE

Frequently Asked Questions

Essential questions and answers about Soda Core, the open-source data quality testing framework that uses YAML-based checks to validate data freshness, volume, schema, and custom metrics within data pipelines.

Soda Core is an open-source, Python-based data quality testing framework that programmatically validates data by executing checks defined in a declarative YAML file, known as a checks file. It works by connecting to a data source (like a data warehouse or data lake), scanning the data, and running a suite of user-defined tests to detect anomalies, schema drifts, and freshness issues. The framework operates on a simple principle: you define what constitutes good data (your checks), and Soda Core executes them to tell you if your data meets those standards, outputting pass/fail results and metrics. It integrates into data pipelines, CI/CD workflows, and orchestration tools (like Apache Airflow) to act as a quality gate, preventing poor-quality data from propagating downstream.

Prasad Kumkar

About the author

Prasad Kumkar

CEO & MD, Inference Systems

Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.

His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.