Universal SQL Architecture
Evidence uses a Universal SQL architecture that allows you to connect to multiple data sources and query them using standard SQL. Each data source connector implements a common interface that:- Executes SQL queries against your data warehouse or database
- Streams results efficiently in batches
- Maps native data types to Evidence’s type system (string, number, date, boolean)
- Handles authentication and connection management
How Data Sources Work
When you connect a data source to Evidence:- Configuration: Define connection parameters in your
connection.yamlfile - Authentication: Each connector handles authentication (service accounts, tokens, passwords, etc.)
- Query Execution: SQL files in your project are executed against the connected data source
- Type Mapping: Native database types are mapped to Evidence types for consistent rendering
- Streaming: Results are streamed in batches for memory-efficient processing
Supported Data Sources
Evidence supports a wide range of data warehouses, databases, and file formats:BigQuery
Google Cloud’s data warehouse
Snowflake
Cloud data platform
PostgreSQL
Popular open-source database
Redshift
Amazon’s data warehouse
DuckDB
Embedded analytical database
MotherDuck
Cloud-native DuckDB
MySQL
Popular relational database
SQL Server
Microsoft SQL Server
SQLite
Embedded database
Databricks
Lakehouse platform
Trino
Distributed SQL query engine
CSV Files
CSV and flat files
Connection Configuration
All data sources are configured using aconnection.yaml file in your Evidence project:
Type System
Evidence maps native database types to four core types:- string: Text, JSON, XML, time-only values
- number: Integers, decimals, floats
- date: Dates, timestamps, datetimes
- boolean: True/false values