Connection
Authentication uses key-pair signing. No passwords are stored.Setup
- Open Settings → Lake and find Snowflake connections.
- Fill in the required fields:
- Optionally set a default warehouse, database, and role to scope queries.
Generating a key pair
snowflake_key.pem into the Private key field. The key is stored encrypted.
Querying
Tables are reachable asconnection_name.schema.table:
A Snowflake connection table selects DuckDB. DuckDB is the only engine that attaches external connections, so the query router routes any query naming a connection table here before it considers input size - leave
engine on auto. Asking for Bloom, Polars, or Spark on one of these queries returns an engine capability error rather than rerouting silently.A Horizon catalog is different: it is a real Iceberg catalog, so DuckDB and Spark can both read it.Snowflake Horizon
Snowflake Horizon is Snowflake’s built-in Iceberg catalog, powered by Polaris. Registering it gives you full Iceberg REST catalog access against your Snowflake-managed Iceberg tables - DuckDB queries, Polars workloads, and Spark jobs alike. Unlike a connection, a Horizon catalog is a real Iceberg catalog, so it is not limited to DuckDB.Setup
- Open Settings → Lake and find External catalogs.
- Select Snowflake Horizon as the catalog type.
- Fill in the required fields:
- Choose an authentication method:
- Personal Access Token (PAT)
- Key-pair
Generate a PAT in Snowflake and paste it into the Secret field. This is the simplest option.
Querying
Once registered, the catalog is available under its name everywhere:Credential vending is handled automatically via the Iceberg REST protocol. No S3 or GCS credentials need to be configured manually.
oleander routes to DuckDB or Spark - Bloom mounts only oleander. See Catalogs for how registered catalogs behave across the platform.