Podłączanie hurtowni Snowflake
Ten przewodnik prowadzi Cię przez podłączanie konta Snowflake do Saiku Cloud. Dziesięć minut, jeśli czujesz się komfortowo w konsoli Snowflake; trzydzieści, jeśli musisz też skonfigurować auth parą kluczy RSA (zalecane dla kont serwisowych).
Wpływ na poziom: każdy poziom Saiku Cloud obsługuje Snowflake BYOC. Klienci o kształcie Snowflake zwykle lądują na [Team] lub [Business] (dedykowany pod silnika), ale [Starter] też działa.
Sterownik: Saiku Cloud dostarcza oficjalny sterownik JDBC Snowflake (Apache 2.0). Sterownik ma ~100 MB, bo protokół wire Snowflake jest natywny dla Apache Arrow; bundlowanie Arrow jest nienegocjowalne.
Czego będziesz potrzebować
- Konta Snowflake (próbne konta na signup.snowflake.com — 30 dni za darmo, $400 kredytów).
- Dostępu admina, by utworzyć rolę + użytkownika, ALBO poświadczeń istniejącej roli tylko do odczytu.
- Snowflake’owego identyfikatora konta —
<orgname>-<accountname>lub starszego kształtu<accountname>.<region>.<cloud>.
Krok 1 — Wpisz nasze egress IP do allowlisty (jeśli Twoje konto ma włączoną network policy)
Zapytania Saiku Cloud do Twojej hurtowni wszystkie pochodzą z 87.99.153.244.
Konta Snowflake utworzone w 2024+ mają network policy włączoną domyślnie — allowlistę IP dopuszczonych do uwierzytelnienia. Jeśli Twoje konto nie ma polityki, pomiń ten krok; Snowflake akceptuje połączenia z dowolnego IP domyślnie.
Aby dodać IP Saiku Cloud:
-- Jako ACCOUNTADMIN:CREATE NETWORK POLICY saiku_cloud_allow ALLOWED_IP_LIST = ('87.99.153.244');
-- Zastosuj do użytkownika serwisowego (lub do konta, w zależności od kształtu):ALTER USER saiku_read SET NETWORK_POLICY = saiku_cloud_allow;Jeśli masz istniejącą network policy z innymi IP, dodaj 87.99.153.244 do istniejącej listy, zamiast ją zastępować.
Krok 2 — Utwórz rolę i użytkownika tylko do odczytu
Model ról Snowflake: użytkownik ma rolę domyślną; rola ma granty. Saiku Cloud potrzebuje SELECT na tabelach, które będzie czytać.
-- Jako ACCOUNTADMIN:CREATE ROLE saiku_reader;GRANT USAGE ON WAREHOUSE COMPUTE_WH TO ROLE saiku_reader;GRANT USAGE ON DATABASE ANALYTICS TO ROLE saiku_reader;GRANT USAGE ON SCHEMA ANALYTICS.PUBLIC TO ROLE saiku_reader;GRANT SELECT ON ALL TABLES IN SCHEMA ANALYTICS.PUBLIC TO ROLE saiku_reader;GRANT SELECT ON FUTURE TABLES IN SCHEMA ANALYTICS.PUBLIC TO ROLE saiku_reader;
CREATE USER saiku_read PASSWORD = 'pick-something-strong' DEFAULT_ROLE = saiku_reader DEFAULT_WAREHOUSE = COMPUTE_WH;
GRANT ROLE saiku_reader TO USER saiku_read;Dostosuj ANALYTICS / PUBLIC / COMPUTE_WH do swojego konta.
Auth parą kluczy RSA (zalecane dla produkcji)
Dla kont serwisowych auth hasłem jest wycofywana w niektórych regionach Snowflake. Zastępcza jest para kluczy RSA:
# Wygeneruj klucz prywatny RSA 2048-bitopenssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocryptopenssl rsa -in rsa_key.p8 -pubout -out rsa_key.pubWgraj klucz publiczny do użytkownika:
ALTER USER saiku_read SET RSA_PUBLIC_KEY = 'MIIBIjANBgkqhkiG9w0BAQEFA...';W JDBC URL wskaż ścieżkę pliku klucza prywatnego (kontener silnika potrzebuje dostępu do odczytu — dla współdzielonego silnika Saiku Cloud wklej zawartość klucza inline przez private_key_file_pwd).
Krok 3 — Zbuduj JDBC URL
Kształt:
jdbc:snowflake://<account>.snowflakecomputing.com/?db=<DATABASE>&warehouse=<WAREHOUSE>&role=<ROLE>Konkretnie:
jdbc:snowflake://abc12345.us-east-1.aws.snowflakecomputing.com/?db=ANALYTICS&warehouse=COMPUTE_WH&role=SAIKU_READERAlbo z nowszym identyfikatorem <orgname>-<accountname>:
jdbc:snowflake://yourorg-yourdb.snowflakecomputing.com/?db=ANALYTICS&warehouse=COMPUTE_WH&role=SAIKU_READERKluczowe parametry:
db=— nazwa bazy danych. Wymagane (inaczej Snowflake rutuje zapytania do domyślnej użytkownika, która zwykle jest zła).warehouse=— hurtownia obliczeniowa. Wymagane.role=— rola do przyjęcia. Dopasuj do tego, co nadałeś w Kroku 2.- TLS jest zawsze włączone ze Snowflake — bez parametru SSL do ustawienia.
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 Snowflake.
-
Uzupełnij:
- JDBC URL — URL z Kroku 3.
- Username —
saiku_read(lub nazwa Twojego konta serwisowego). - Password — hasło z Kroku 2.
-
Kliknij Testuj połączenie.
Spodziewaj się zielonego bannera wyniku: ✓ Connection successful plus wykryta wersja Snowflake. Pierwsze połączenie Snowflake zajmuje 5–15 sekund (auth + spinup hurtowni, jeśli była zapauzowana); kolejne testy są szybsze.
Krok 5 — Zapisz połączenie
Ten sam kształt co każdy inny dialekt — wpisz ponownie hasło, nadaj etykietę, zapisz.
Rozwiązywanie problemów
✗ Connection failed (HOST_UNREACHABLE) lub (TIMEOUT)
- Zły identyfikator konta — część przed
.snowflakecomputing.comto cały identyfikator.abc12345.us-east-1.awsto jeden identyfikator;abc12345sam nie rozwiąże się. Dokumentacja Snowflake jest tutaj myląca; skopiuj identyfikator ze strony szczegółów konta w konsoli Snowflake. - Network policy — jeśli Twoje konto ma network policy, a IP Saiku Cloud nie ma na allowliście, Snowflake po cichu timeoutuje połączenie. Dodaj
87.99.153.244zgodnie z Krokiem 1.
✗ Connection failed (AUTH_FAILED)
Błąd Snowflake 390100 / 390101 / 28000.
- Wielkość liter nazwy użytkownika — nazwy użytkowników Snowflake domyślnie WIELKIE LITERY w magazynie. Wpisz
saiku_read, a jest zapisane jakoSAIKU_READ. Warstwa JDBC jest case-insensitive przy lookupie, więc to zwykle nie boli — ale jeśli otoczyłeś nazwę użytkownika podwójnymi cudzysłowami przy tworzeniu, wielkość liter jest zachowana + musi pasować dokładnie. - MFA — jeśli MFA jest włączone na użytkowniku, auth hasłem zawiedzie. Albo wyłącz MFA dla użytkownika serwisowego, albo użyj auth parą kluczy RSA (sekcja RSA w Kroku 2).
- Rola nie istnieje — jeśli
role=w URL-u nazywa rolę, której użytkownik nie może przyjąć, Snowflake zwraca auth-failed zamiast bardziej specyficznego błędu. ZweryfikujSHOW GRANTS TO USER saiku_read;w konsoli.
✗ Connection failed (DATABASE_NOT_FOUND)
Baza w URL-u nie istnieje LUB rola nie ma USAGE na niej. GRANT USAGE ON DATABASE ANALYTICS TO ROLE saiku_reader; naprawia to drugie; pierwsze wymaga poprawienia nazwy bazy.
Połączenie działa, ale kostki się nie renderują
USAGE na bazie nie wystarczy — Saiku potrzebuje też USAGE na schemie i SELECT na tabelach. Pełny łańcuch grantów jest w Kroku 2. Częsty błąd to nadanie USAGE na bazie z zapomnieniem o USAGE na schemie.
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: PrivateLink
Dla klientów Enterprise endpoint Snowflake AWS PrivateLink może całkowicie zastąpić ścieżkę publicznej sieci. JDBC URL zmienia się na kształt <account>.privatelink.snowflakecomputing.com; allowlist IP staje się nieistotny. 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 Snowflake: