Przejdź do głównej zawartości

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.244

Dodaj 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.244 jako regułę pojedynczego IP.
  • Self-hosted: firewall przed (UFW, iptables, security group Twojego dostawcy chmury) plus <allow_for_users> w users.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_password to najprostsza metoda auth; ClickHouse Cloud obsługuje też sha256_password i double_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_read z ciasnymi limitami max_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=true

Konkretne 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 sterownik clickhouse-jdbc-all bundluje natywne biblioteki LZ4 + Brotli + Zstd.

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 ClickHouse.

  4. Uzupełnij:

    • JDBC URL — URL z Kroku 3.
    • Usernamesaiku_read (lub jakkolwiek nazwałeś użytkownika w Kroku 2).
    • Password — hasło z Kroku 2.
  5. 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.
  • LabelProduction ClickHouse lub Analytics warehouse.

Kliknij Zapisz połączenie.

Rozwiązywanie problemów

✗ Connection failed (HOST_UNREACHABLE) lub (TIMEOUT)

  1. Zły port — użyłeś 9000 (protokół natywny) zamiast 8123 (HTTP) lub 8443 (HTTPS). Poprawka jest w Kroku 3.
  2. Firewall / IP allowlist — Krok 1 nie został zastosowany. „IP access list” ClickHouse Cloud czasem zajmuje minutę na propagację po zapisie; spróbuj ponownie.
  3. DNSnslookup <host> z Twojego laptopa. Jeśli rozwiązuje się na prywatne IP, ochrona SSRF wynurzyłaby HOST_DENIED (nie HOST_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> w users.xml. Dodaj 87.99.153.244 do tej listy lub usuń klauzulę <allow_for_hosts>, by pozwolić skądkolwiek (i polegaj na firewallu).
  • plaintext_password vs sha256_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:

Przykładowy zbiór FoodMart dla ClickHouse