MotherDuck verbinden
Diese Anleitung führt Sie durch das Verbinden einer MotherDuck-Datenbank (Cloud-DuckDB) mit Saiku Cloud. Drei Minuten, sobald Sie ein MotherDuck-Konto haben; das einfachste Cloud-Warehouse-Onboarding, das wir unterstützen, weil keine Firewall einzurichten ist.
Plan-Auswirkung: Jeder Saiku-Cloud-Plan unterstützt MotherDuck-BYOC.
Treiber: Saiku Cloud liefert DuckDBs offiziellen JDBC-Treiber.
Der URL-Präfix jdbc:duckdb:md:... routet zum Cloud-Service von
MotherDuck; derselbe Treiber bedient auch
lokale DuckDB-Dateien.
Was Sie brauchen
- Ein MotherDuck-Konto (kostenlose Stufe reicht — 10 GB Speicher, reichlich für FoodMart-große Cubes).
- Ein MotherDuck-Service-Token.
- Den Namen der Datenbank, die Saiku lesen soll.
Schritt 1 — Ein Service-Token besorgen
MotherDuck authentifiziert über ein einzelnes, langlebiges Token. Sie müssen keine Firewalls oder IP-Allowlists konfigurieren — MotherDuck übernimmt die Netzwerkerreichbarkeit transparent.
-
Melden Sie sich bei
https://app.motherduck.com/an. -
Klicken Sie auf Ihr Profil → Settings → Service tokens (oder das Äquivalent in der aktuellen Konsolen-UI — MotherDuck passt die Navigation gelegentlich an).
-
Token erstellen → geben Sie ihm einen Namen wie
saiku-cloud→ kopieren Sie sofort den resultierendeneyJh...-String. MotherDuck zeigt das Token nur einmal an. -
Speichern Sie es in Ihrem Passwort-Manager (1Password, Bitwarden) unter einem Label wie
saiku-motherduck-token.
Schritt 2 — Den Datenbanknamen identifizieren
MotherDuck zeigt Ihre Datenbanken in der linken Seitenleiste der App
an. Für FoodMart-artige Demo-Arbeit ist der Standardname meist
my_db; für produktive Cubes haben Sie Ihren eigenen Namen wie
analytics oder sales.
Schritt 3 — Die JDBC-URL bauen
Die Form:
jdbc:duckdb:md:<database>?motherduck_token=<token>Konkret:
jdbc:duckdb:md:analytics?motherduck_token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ5b3UifQ.signature-hereWas zu beachten ist:
- Das Token lebt in der URL, nicht im Passwort-Feld des Wizards. Die Benutzername- und Passwort-Felder im Wizard werden vom MotherDuck-Treiber ignoriert — füllen Sie sie mit beliebigem Inhalt (die Required-Attribute-Validierung des Wizards braucht etwas, aber der Wert erreicht niemals MotherDuck).
- Kein Port; kein Host. MotherDuck übernimmt das Routing.
- Kein SSL-Parameter — der Treiber verschlüsselt die gesamte Session standardmäßig per TLS.
Schritt 4 — Verbinden über den Saiku-Cloud-Wizard
-
Melden Sie sich bei
https://cloud.saiku.bi/an. -
Navigieren Sie zu Verbindungen in der linken Seitenleiste.
-
Klicken Sie unter 1. Warehouse-Typ wählen auf das MotherDuck-Kachel.
-
Füllen Sie aus:
- JDBC-URL — die URL aus Schritt 3.
- Benutzername — beliebig (z. B.
motherduck). Wird vom Treiber ignoriert. - Passwort — beliebig, nicht leer (z. B.
unused-token-in-url). Wird ebenfalls ignoriert.
-
Klicken Sie auf Verbindung testen.
Erwarten Sie einen grünen Ergebnis-Banner: ✓ Connection successful
plus die erkannte DuckDB-Version.
Schritt 5 — Die Verbindung speichern
Gleiche Form wie bei jedem anderen Dialekt — geben Sie das Passwortfeld erneut ein, geben Sie ihr ein Label, speichern Sie.
Fehlerbehebung
✗ Connection failed (AUTH_FAILED)
Das Token in der URL ist falsch, abgelaufen oder widerrufen.
- Erzeugen Sie ein frisches Token in der MotherDuck-Konsole.
- Stellen Sie sicher, dass Sie das gesamte Token kopiert haben — sie sind lang (300+ Zeichen) und leicht abzuschneiden.
- Prüfen Sie die URL doppelt: Es sollten KEINE Whitespaces um
motherduck_token=herum sein.
✗ Connection failed (HOST_UNREACHABLE) oder (TIMEOUT)
Der Cloud-Endpunkt von MotherDuck sollte von überall mit Internet erreichbar sein. Wenn Sie das sehen, ist wahrscheinlich MotherDuck selbst down — prüfen Sie ihre Statusseite.
✗ Connection failed (INVALID_URL)
Die URL beginnt nicht mit jdbc:duckdb:md:. Beachten Sie das
md:-Segment — das ist, was den Treiber anweist, zu MotherDuck zu
routen statt zu einer lokalen Datei. Ohne es versucht der Treiber,
eine wörtlich <database> genannte Datei im Arbeitsverzeichnis der
Engine zu öffnen.
Verbindung erfolgreich, aber die Cube-Liste ist leer
Das Token ist gültig + die Datenbank existiert, aber die Datenbank hat keine Tabellen. Entweder:
- Sie haben sich mit einer frischen leeren Datenbank verbunden — laden Sie zuerst einige Daten über die SQL-UI der MotherDuck-Konsole.
- Die Datenbank hat Tabellen, aber sie sind in einem Nicht-Default-Schema — bestätigen Sie in der Konsole und passen Sie Ihre Schema-XML an.
Lokale Dateien für selbstgehostete oder Export-Import-Workflows {#lokale-dateien-für-selbstgehostete-oder-export-import-workflows}
Der DuckDB-Treiber bedient auch lokale Dateien
(jdbc:duckdb:/path/to/file.duckdb). Auf dem cloud-gehosteten Saiku
Cloud löst dieser Pfad auf dem Dateisystem des Engine-Containers
auf, nicht auf Ihrem — daher ist der Datei-Upload-Datenpfad der
Standardweg, eine lokale Datei in Saiku zu bringen. Siehe
Eine hochgeladene Datei über DuckDB verbinden
für diesen Flow.
Für selbstgehostete Saiku-Cloud-Deployments, in denen der Operator
Dateien direkt auf dem Engine-Host stagen kann, fügen Sie
jdbc:duckdb:/var/lib/saiku/your.duckdb in den Wizard ein und
verbinden Sie normal.
Mit FoodMart ausprobieren
Möchten Sie Saiku Cloud mit diesem Dialekt testen, bevor Sie Ihre eigenen Daten verbinden? Laden Sie den FoodMart-Sample-Datensatz, gepackt für MotherDuck, herunter: