Skip to content

Data sources

Data Sources is where Saiku Cloud learns how to reach your data. It has two tabs, and between them they cover every way data gets into the product:

  • Warehouses — a database you already run. You supply the connection details once, and from then on cubes read live from it.
  • Files — CSV, Parquet, JSON or Excel you upload. Saiku spins up a database from them and queries that, so you don’t need a warehouse at all.

Both feed the same semantic model. One cube definition, whichever side the rows came from.

Supported warehouses

Five you can connect today, each with its own walkthrough — click the one you’re using:

ClickHouse appears in the picker as coming soon — the engine bundles the driver and the connection guide is written, but we haven’t opened it up yet. If you’re waiting on it, say so and we’ll weight it accordingly.

The same DuckDB driver also reads uploaded DuckDB files, which arrive through the Files tab rather than this one.

Want to try Saiku before pointing it at production?

Each guide ends with a FoodMart download — the classic OLAP sample dataset (five years of fictional grocery sales, ~10 MB, 37 tables) pre-packaged for that dialect. Load it somewhere harmless and follow Sign up & first cube end to end in under an hour. No migration, no risk to real data.

The connect flow

The Warehouses tab is a three-step form. It stays on one page — you’re never bounced through a wizard.

  1. Pick warehouse type. Choosing one swaps the form below it and surfaces a link to that dialect’s connection guide.

  2. Enter credentials + test. You get named fields, not a URL to hand-assemble — Host, Port, Database for Postgres; account and warehouse for Snowflake; a JSON key box for BigQuery, and so on. Saiku builds the JDBC URL for you and shows a preview of what it assembled, including secure defaults like sslmode=require.

    Exotic setup? Advanced — paste a JDBC URL instead hands you the raw field.

  3. Test connection. We open a short-timeout connection from our servers (egress IP 87.99.153.244), run a trivial query, and report back — with plain-English failures like auth failed, host unreachable, database not found, timeout, plus the detected server version when it works.

  4. Save connection. The save panel only appears once a test has passed. Give the connection a label you’ll recognise in a dropdown six months from now, and save. You land in the cube author, ready to draft your first cube from this warehouse.

Allowlisting our IP

If your warehouse sits behind a firewall, allow 87.99.153.244. Every connection Saiku Cloud makes to a customer warehouse leaves from that one address.

What you can do with a saved connection

Each row in Existing connections carries the actions you’ll actually reach for:

  • Design a cube — jump into the cube author with this warehouse pre-selected.
  • Use a template — provision a ready-made cube into this warehouse.
  • Test — re-run the connectivity check. First thing to try when a cube goes Broken.
  • Rotate credentials — a disclosure that takes a fresh JDBC URL, username and password. This is also your edit surface: the connection keeps its identity, its dialect, and every schema reference pointing at it, so a password change or a host move doesn’t mean rebuilding your cubes.
  • Remove — delete the connection. Deletion is idempotent, so a double-click from a stale tab won’t 404 at you.

What we store, and what we don’t

Your password is encrypted before it reaches our database, with a key kept somewhere the database can’t read. The plaintext exists for a few milliseconds at a time, while we’re actually opening a connection to your warehouse, and then it’s gone. Someone holding a full copy of our database still couldn’t read your credentials.

The broader picture is in Tenant isolation.

  • Files — the other tab; upload data when there’s no warehouse to point at.
  • Schemas — author a cube on top of a connection.
  • Cube library — provision a working cube and its sample data in one click.
  • FoodMart sample datasets — test data for every supported dialect.