Trilogy For the Data Warehouse
Trilogy For the Data Warehouse
Data Tooling That Simplifies
Trilogy helps teams query, model, test, and manage the full data life cycle directly against the warehouse they already use.
The lessons of the modern data stack, in one easy to use package.
Batteries included for:
- adhoc exploration and analysis [analysis]
- promotion to scheduled jobs [reporting]
- fast, efficient, maintainable processing [data engineering]
- local iteration and testability in DuckDB and production execution in cloud warehouses [the software lifecycle]
Built For Real Warehouse Work
Tables change. Metrics drift. Definitions get copied into dashboards, notebooks, and ad hoc SQL until there are five versions, and everyone trusts a different one.
Trilogy treats your warehouse like a durable execution layer and puts reusable logic above it. That gives analysts and engineers a better place to define meaning, test transformations, and keep query logic consistent as the underlying data model evolves.
And that principle can be pushed down into ETL.
The Trilogy CLI can be used as a purely declarative warehouse data management tool.
Declare your warehouse roots. Declare your datasources. Model your data. Refresh on demand; and run on what you need, when you need it.
How it Works
trilogy refresh
Is all you need. Based on your data model, it will identify which assets are stale and refresh them in the most efficient order.
Don't worry about dependencies; aggregation, etc. Just focus on getting your data set up right, and run it once.
import ..tree_common;
root datasource sf_update_time (
data_updated_through: sf_data_updated_through
)
file `./sf_update_time.py`;
root partial datasource sf_raw_tree_info (
TreeID: tree_id,
city: city,
qSpecies: species,
tree_name: ?tree_name,
PlantDate: ?plant_date,
DBH: ?diameter_at_breast_height,
Latitude: ?latitude,
Longitude: ?longitude,
)
grain (tree_id)
complete where city = 'USSFO'
file `./sf_tree_info.py`;
partial datasource sf_tree_info (
tree_id,
city,
species,
?tree_name,
?plant_date,
?diameter_at_breast_height,
?latitude,
?longitude,
sf_data_updated_through,
)
grain (tree_id)
complete where city = 'USSFO'
file f`https://storage.googleapis.com/trilogy_public_models/duckdb/trees/ussfo_tree_info_v{data_version}.parquet`:f`gcs://trilogy_public_models/duckdb/trees/ussfo_tree_info_v{data_version}.parquet`
freshness by sf_data_updated_through;
Features You Need
Parameterization for dev/test, easy integration with GCS/S3 buckets, tests, validation, and more.
Warehouse Flexibility
Develop locally with DuckDB, then target production engines like BigQuery and Snowflake when you are ready.
How It Fits
Trilogy is designed to sit between your team and the warehouse:
- Analysts get a faster way to ask reliable questions
- Engineers get code they can test, version, and review
- AI tools get structured context instead of fragile raw SQL prompts
Start Here
- Learn the core idea in Why Trilogy?
- Get running in Quickstart
- Explore the language in Reference
- See the browser-based product in Studio
- See the AI workflow in AI