Query Snowflake Horizon Tables on the Right Compute
Willy Lulciuc
Snowflake Horizon Catalog makes Snowflake-managed Iceberg tables available to external compute via the Iceberg REST API. This API allows engines outside of Snowflake to query those Iceberg tables.
Today, we're excited to announce Snowflake Horizon Catalog is now supported in oleander. Connect your catalog and run each workload on the right compute, without managing the infrastructure yourself.
- Bring Horizon: Connect your existing catalog.
- Query without a copy: Run against your existing Iceberg tables.
- Automatically optimized compute: oleander intelligently routes each workload to the right engine and compute size.
- Traceable by default: Lineage, cost, performance, and routing decisions on every run.
Keep your data in Snowflake Horizon. oleander handles the compute. 🌸
Register Your Horizon Catalog
Add a Horizon catalog under Settings → Lake:
- Catalog URI: Your Horizon Iceberg REST endpoint (for example,
https://<account>.snowflakecomputing.com/polaris/api/catalog). - Database, role, and region: Match the Horizon catalog database and session role.
- Auth: Personal access token (PAT), or key-pair with username and private key.
- Name: For example,
snowflake_horizon_prod. Tables show up assnowflake_horizon_prod.<namespace>.<table>.
Once connected, namespaces and tables appear in the Lake sidebar catalog view.
Query Horizon Tables with Intelligent Compute Routing
Query Horizon tables directly using their catalog.<namespace>.<table> path. Not every query needs to run on Snowflake. Different workloads benefit from different compute. With engine: 'auto', oleander intelligently routes each query to the right engine and compute size, then surfaces the decision, cost, and latency with the result.
Intelligent compute routing
Query · Data · Cost · Latency · History
Let oleander select the right compute, or override the engine when you need to.
Auto
oleander query run "SELECT COUNT(*) AS eventsFROM snowflake_horizon_prod.analytics.eventsWHERE event_time >= CURRENT_DATE - INTERVAL '7' DAY" --engine autoOr, override
oleander query run "SELECT COUNT(*) FROM snowflake_horizon_prod.analytics.events" --engine duckdb