Zum Inhalt springen

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.

  1. Melden Sie sich bei https://app.motherduck.com/ an.

  2. Klicken Sie auf Ihr Profil → SettingsService tokens (oder das Äquivalent in der aktuellen Konsolen-UI — MotherDuck passt die Navigation gelegentlich an).

  3. Token erstellen → geben Sie ihm einen Namen wie saiku-cloud → kopieren Sie sofort den resultierenden eyJh...-String. MotherDuck zeigt das Token nur einmal an.

  4. 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-here

Was 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

  1. Melden Sie sich bei https://cloud.saiku.bi/ an.

  2. Navigieren Sie zu Verbindungen in der linken Seitenleiste.

  3. Klicken Sie unter 1. Warehouse-Typ wählen auf das MotherDuck-Kachel.

  4. 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.
  5. 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:

FoodMart-Sample-Datensatz für MotherDuck