Trilogy For the Data Warehouse
Trilogy For the Data Warehouse
Analytics Infrastructure That Works With Your Warehouse
Trilogy helps teams query, model, test, and manage analytics logic directly against the warehouse they already use.
You get the full life cycle of data development:
- adhoc exploration and analysis
- promotion to scheduled jobs
- global optimization and maintainability of the processing graph
- local iteration and testability in DuckDB and production execution in cloud warehouses
Built For Real Warehouse Work
Tables change. Metrics drift. Definitions get copied into dashboards, notebooks, and ad hoc SQL until nobody trusts the numbers.
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.
Tips
Have a problem? Reach out in our discord for support!
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
