Podłączanie hurtowni ClickHouse
Ten przewodnik prowadzi Cię przez podłączanie bazy danych ClickHouse (ClickHouse Cloud lub self-hosted) do Saiku Cloud. Pięć minut, jeśli Twoja hurtownia jest już publiczna; dziesięć, jeśli musisz utworzyć użytkownika tylko do odczytu.
Wpływ na poziom: każdy poziom Saiku Cloud (Starter, Team, Business) obsługuje ClickHouse BYOC.
Czego będziesz potrzebować
- Instancji ClickHouse 23.8+ (starsze wersje działają, ale powierzchnia dialektu, którą testujemy, to 23.8+).
- Osiągalności sieciowej — zobacz Krok 1.
- Dostępu admina do hurtowni, żebyś mógł utworzyć użytkownika tylko do odczytu (lub poświadczeń istniejącego użytkownika tylko do odczytu).
Krok 1 — Wpisz nasze egress IP do allowlisty
Zapytania Saiku Cloud do Twojej hurtowni wszystkie pochodzą z jednego statycznego IP:
87.99.153.244Dodaj to do allowlisty sieciowej Twojej hurtowni przed testem połączenia. Uwagi per dostawca:
- ClickHouse Cloud: Console → Twoja usługa → Settings → Network → IP access list. Dodaj
87.99.153.244jako regułę pojedynczego IP. - Self-hosted: firewall przed (UFW, iptables, security group Twojego dostawcy chmury) plus
<allow_for_users>wusers.xml, jeśli zawęziłeś, kto może się łączyć.
IP jest stabilne — zobowiązujemy się do minimum 30 dni uprzedzenia przed jakąkolwiek rotacją. Pełna polityka: nasze zobowiązanie do stabilności egress IP.
Krok 2 — Utwórz użytkownika tylko do odczytu w ClickHouse
Saiku Cloud tylko czyta z Twojej hurtowni — nigdy nie pisze, nigdy nie zmienia schem. Kształt najmniejszych uprawnień:
-- Jako użytkownik default lub inny superuser:CREATE USER saiku_read IDENTIFIED WITH plaintext_password BY 'pick-something-strong';
-- Nadaj dostęp do odczytu do baz, które chcesz, żeby Saiku widziało.-- Powtórz dla każdej bazy.GRANT SELECT ON analytics.* TO saiku_read;Kilka uwag:
plaintext_passwordto najprostsza metoda auth; ClickHouse Cloud obsługuje teżsha256_passwordidouble_sha1_password. Każda działa z naszym połączeniem JDBC — sterownik haszuje przed transmisją.- ClickHouse Cloud ma UI do zarządzania użytkownikami (Console → Users), jeśli wolisz nie pisać SQL.
- Profil ustawień: rozważ utworzenie osobnego profilu dla
saiku_readz ciasnymi limitamimax_memory_usage+max_execution_time, żeby rozhulane zapytanie nie wpłynęło na Twój produkcyjny workload. Zobacz dokumentację kwot ClickHouse.
Krok 3 — Zbuduj JDBC URL
Kształt:
jdbc:clickhouse://<host>:<port>/<database>?ssl=trueKonkretne przykłady:
- ClickHouse Cloud:
jdbc:clickhouse://my-service.us-east-1.aws.clickhouse.cloud:8443/default?ssl=true&sslMode=STRICT - Self-hosted z reverse-proxy HTTPS:
jdbc:clickhouse://ch.yourcompany.com:443/analytics?ssl=true - Self-hosted plaintext (tylko sieć prywatna):
jdbc:clickhouse://ch.internal:8123/analytics. Egress IP Saiku Cloud musi być dopuszczone na warstwie sieci; plaintext jest OK WEWNĄTRZ zaufanej sieci, ale nie przez otwarty internet.
Kluczowe parametry:
ssl=true— włącza TLS. Wymagane dla ClickHouse Cloud + zalecane dla każdego publicznego wdrożenia.sslMode=STRICT— weryfikuje, że cert serwera buduje łańcuch do CA, któremu ufamy, + weryfikuje, że hostname pasuje. ClickHouse Cloud używa Let’s Encrypt, więc to działa od ręki.compress=true— opt-in kompresja po stronie klienta (LZ4 domyślnie). Tnie rozmiar payloadu JDBC dla dużych zbiorów wyników; zwykle wygrana dla obciążeń BI. Shaded sterownikclickhouse-jdbc-allbundluje natywne biblioteki LZ4 + Brotli + Zstd.
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 ClickHouse.
-
Uzupełnij:
- JDBC URL — URL z Kroku 3.
- Username —
saiku_read(lub jakkolwiek nazwałeś użytkownika w Kroku 2). - Password — hasło z Kroku 2.
-
Kliknij Testuj połączenie.
Zielony banner wyniku: ✓ Connection successful plus wykryta wersja ClickHouse → przejdź do Kroku 5.
Czerwony banner wyniku → zobacz Rozwiązywanie problemów.
Krok 5 — Zapisz połączenie
Po udanym teście kreator renderuje sekcję 3. Zapisz połączenie. Uzupełnij:
- Password (wpisz ponownie do zapisu) — to samo hasło.
- Label —
Production ClickHouselubAnalytics warehouse.
Kliknij Zapisz połączenie.
Rozwiązywanie problemów
✗ Connection failed (HOST_UNREACHABLE) lub (TIMEOUT)
- Zły port — użyłeś 9000 (protokół natywny) zamiast 8123 (HTTP) lub 8443 (HTTPS). Poprawka jest w Kroku 3.
- Firewall / IP allowlist — Krok 1 nie został zastosowany. „IP access list” ClickHouse Cloud czasem zajmuje minutę na propagację po zapisie; spróbuj ponownie.
- DNS —
nslookup <host>z Twojego laptopa. Jeśli rozwiązuje się na prywatne IP, ochrona SSRF wynurzyłabyHOST_DENIED(nieHOST_UNREACHABLE).
✗ Connection failed (AUTH_FAILED)
Błąd ClickHouse 192 / 193 / 516. Nazwa użytkownika lub hasło jest złe.
- Wrażliwość na wielkość liter w nazwie — nazwy użytkowników ClickHouse są case-sensitive.
- Dopuszczone hosty — Twój użytkownik może być zablokowany do konkretnych IP przez
<allow_for_hosts>wusers.xml. Dodaj87.99.153.244do tej listy lub usuń klauzulę<allow_for_hosts>, by pozwolić skądkolwiek (i polegaj na firewallu). plaintext_passwordvssha256_password— oba działają z naszym sterownikiem, ale jeśli pomyliłeś typ hashu zapisanego dla użytkownika z hasłem, które podałeś, sprawdzenie hashu po stronie serwera zawodzi. Zwykle problem tylko, gdy migrujesz użytkownika między typami hashu.
✗ Connection failed (DATABASE_NOT_FOUND)
Błąd ClickHouse 81. Host akceptuje Twoje poświadczenia, ale nazwa bazy danych w JDBC URL nie istnieje. Sprawdź:
SHOW DATABASES;✗ Connection failed (DIALECT_UNSUPPORTED)
URL nie zaczyna się od jdbc:clickhouse:. Jeśli wkleiłeś URL jdbc:ch:, resolver dialektu dopasowuje go jako osobny schemat i też akceptuje — ale upewnij się, że sam URL zaczyna się od jednego z tych dwóch.
Cokolwiek innego
Zrób zrzut ekranu kreatora z widocznym czerwonym bannerem wyniku (linia Kind: ... w szczególności) i wyślij na support@saiku.bi.
Enterprise: sieć prywatna
Dla klientów Enterprise z ustawieniem sieci prywatnej reguła egress IP jest zastępowana peeringiem VPC. Reszta przepływu kreatora połączeń jest identyczna. Skontaktuj się z zespołem konta, by zaprowidować peering.
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 ClickHouse: