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.
-
Zaloguj się na
https://app.motherduck.com/. -
Kliknij swój profil → Settings → Service tokens (lub odpowiednik w bieżącym UI konsoli — MotherDuck okazjonalnie podkręca nawigację).
-
Create token → nadaj nazwę typu
saiku-cloud→ skopiuj wynikowy stringeyJh...natychmiast. MotherDuck pokazuje token tylko raz. -
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-hereCo 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
-
Zaloguj się na
https://cloud.saiku.bi/. -
Idź do Połączenia na lewym pasku bocznym.
-
Pod 1. Wybierz typ hurtowni kliknij kafelek MotherDuck.
-
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.
-
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: