ModelingCubes
Data Source
Connect cubes to specific data warehouses.
Overview
The data_source property specifies which configured data source a cube should use. This enables multi-database architectures where different cubes query different warehouses.
Example
cubes:
- name: orders
sql_table: public.orders
data_source: default
- name: analytics_events
sql_table: events
data_source: clickhouse_analyticsSyntax
Single Data Source
cubes:
- name: users
sql_table: users
data_source: postgres_mainDefault Behavior
If data_source is omitted, the cube uses the default data source:
cubes:
- name: orders
sql_table: orders
# Uses "default" data sourceMulti-Database Architecture
Different cubes can query different databases:
cubes:
# Transactional data from Postgres
- name: orders
sql_table: public.orders
data_source: postgres
# Analytics events from ClickHouse
- name: events
sql_table: analytics.events
data_source: clickhouse
# ML features from Snowflake
- name: predictions
sql_table: ml.predictions
data_source: snowflakeData Source Configuration
Data sources are configured in your Bonnard project:
# .bon/datasources.yaml
datasources:
- name: default
type: postgres
host: localhost
database: mydb
- name: analytics
type: snowflake
account: myaccount
database: ANALYTICSCross-Database Joins
Cubes from different data sources cannot be directly joined. Use views or pre-aggregations to combine data from multiple sources.
See Also
- cubes
- cubes.sql
- workflow.deploy