Przejdź do głównej zawartości

Podłączanie MotherDuck

Ten przewodnik prowadzi Cię przez podłączanie bazy danych MotherDuck (chmurowe DuckDB) do Saiku Cloud. Trzy minuty, gdy masz konto MotherDuck; najprostszy onboarding hurtowni chmurowej, który obsługujemy, bo nie ma firewalla do konfigurowania.

Wpływ na poziom: każdy poziom Saiku Cloud obsługuje MotherDuck BYOC.

Sterownik: Saiku Cloud dostarcza oficjalny sterownik JDBC DuckDB. Prefiks URL-a jdbc:duckdb:md:... rutuje do usługi chmurowej MotherDuck; ten sam sterownik obsługuje też lokalne pliki DuckDB.

Czego będziesz potrzebować

  • Konta MotherDuck (free tier wystarczy — 10 GB magazynu, mnóstwo na kostki rozmiaru FoodMart).
  • Tokenu serwisowego MotherDuck.
  • Nazwy bazy danych, którą chcesz, by Saiku czytało.

Krok 1 — Zdobądź token serwisowy

MotherDuck uwierzytelnia przez jeden długożyjący token. Nie musisz konfigurować firewalli ani allowlist IP — MotherDuck obsługuje osiągalność sieciową transparentnie.

  1. Zaloguj się na https://app.motherduck.com/.

  2. Kliknij swój profil → SettingsService tokens (lub odpowiednik w bieżącym UI konsoli — MotherDuck okazjonalnie podkręca nawigację).

  3. Create token → nadaj nazwę typu saiku-cloud → skopiuj wynikowy string eyJh... natychmiast. MotherDuck pokazuje token tylko raz.

  4. Zapisz w menedżerze haseł (1Password, Bitwarden) pod etykietą typu saiku-motherduck-token.

Krok 2 — Zidentyfikuj nazwę bazy danych

MotherDuck pokazuje Twoje bazy w lewym pasku bocznym aplikacji. Dla pracy demonstracyjnej w stylu FoodMart domyślna nazwa to zwykle my_db; dla produkcyjnych kostek będziesz miał własną nazwę typu analytics lub sales.

Krok 3 — Zbuduj JDBC URL

Kształt:

jdbc:duckdb:md:<database>?motherduck_token=<token>

Konkretnie:

jdbc:duckdb:md:analytics?motherduck_token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ5b3UifQ.signature-here

Co warto zauważyć:

  • Token żyje w URL-u, nie w polu hasła kreatora. Pola username + password w kreatorze są ignorowane przez sterownik MotherDuck — wypełnij je czymkolwiek (walidacja wymaganych atrybutów kreatora potrzebuje czegoś, ale wartość nigdy nie dociera do MotherDuck).
  • Bez portu; bez hosta. MotherDuck obsługuje routing.
  • Bez parametru SSL — sterownik TLS-szyfruje całą sesję domyślnie.

Krok 4 — Podłącz przez kreator Saiku Cloud

  1. Zaloguj się na https://cloud.saiku.bi/.

  2. Idź do Połączenia na lewym pasku bocznym.

  3. Pod 1. Wybierz typ hurtowni kliknij kafelek MotherDuck.

  4. Uzupełnij:

    • JDBC URL — URL z Kroku 3.
    • Username — cokolwiek (np. motherduck). Ignorowane przez sterownik.
    • Password — cokolwiek niepuste (np. unused-token-in-url). Też ignorowane.
  5. Kliknij Testuj połączenie.

Spodziewaj się zielonego bannera wyniku: ✓ Connection successful plus wykryta wersja DuckDB.

Krok 5 — Zapisz połączenie

Ten sam kształt co każdy inny dialekt — wpisz ponownie pole hasła, nadaj etykietę, zapisz.

Rozwiązywanie problemów

✗ Connection failed (AUTH_FAILED)

Token w URL-u jest zły, wygasł lub unieważniony.

  • Wygeneruj świeży token w konsoli MotherDuck.
  • Upewnij się, że skopiowałeś cały token — są długie (300+ znaków) i łatwo je przyciąć.
  • Sprawdź dwukrotnie URL: NIE powinno być białych znaków wokół motherduck_token=.

✗ Connection failed (HOST_UNREACHABLE) lub (TIMEOUT)

Endpoint chmurowy MotherDuck powinien być osiągalny zewsząd z internetem. Jeśli to widzisz, MotherDuck samo prawdopodobnie jest położone — sprawdź ich stronę statusu.

✗ Connection failed (INVALID_URL)

URL nie zaczyna się od jdbc:duckdb:md:. Zauważ segment md: — to mówi sterownikowi, by rutować do MotherDuck, a nie do lokalnego pliku. Bez niego sterownik próbuje otworzyć dosłowny plik nazwany <database> w katalogu roboczym silnika.

Połączenie się powodzi, ale lista kostek jest pusta

Token jest ważny + baza istnieje, ale baza nie ma tabel. Albo:

  • Podłączyłeś się do świeżej, pustej bazy — załaduj jakieś dane najpierw przez UI SQL konsoli MotherDuck.
  • Baza ma tabele, ale są w nie-domyślnej schemie — potwierdź w konsoli i dostosuj XML schemy.

Lokalne pliki dla self-hosted lub przepływów eksport-import {#local-files-for-self-hosted-or-export-import-workflows}

Sterownik DuckDB obsługuje też pliki lokalne (jdbc:duckdb:/path/to/file.duckdb). Na hostowanym Saiku Cloud ta ścieżka rozwiązuje się na filesystem kontenera silnika, nie Twoim — więc ścieżka danych przez wgrywanie pliku to standardowy sposób, by wprowadzić plik lokalny do Saiku. Zobacz Odpytywanie wgranego pliku przez DuckDB dla tego przepływu.

Dla wdrożeń self-hosted Saiku Cloud, gdzie operator może stageować pliki bezpośrednio na hoście silnika, wklej jdbc:duckdb:/var/lib/saiku/your.duckdb w kreator i połącz normalnie.

Spróbuj z FoodMart

Chcesz przetestować Saiku Cloud z tym dialektem przed podłączeniem własnych danych? Pobierz przykładowy zbiór FoodMart spakowany dla MotherDuck:

Przykładowy zbiór FoodMart dla MotherDuck