Ein Snowflake-Warehouse verbinden
Diese Anleitung führt Sie durch das Verbinden eines Snowflake-Accounts mit Saiku Cloud. Zehn Minuten, wenn Sie mit der Snowflake-Konsole vertraut sind; dreißig, wenn Sie auch RSA-Schlüsselpaar-Auth einrichten müssen (empfohlen für Service-Accounts).
Plan-Auswirkung: Jeder Saiku-Cloud-Plan unterstützt
Snowflake-BYOC. Snowflake-geprägte Kunden landen meist auf [Team]
oder [Business] (dediziertes Engine-Pod), aber [Starter]
funktioniert ebenfalls.
Treiber: Saiku Cloud liefert Snowflakes offiziellen JDBC-Treiber (Apache 2.0). Der Treiber ist ~100 MB groß, weil das Wire-Protokoll von Snowflake Apache-Arrow-nativ ist; die Arrow-Bündelung ist nicht verhandelbar.
Was Sie brauchen
- Einen Snowflake-Account (Trial-Accounts unter signup.snowflake.com — 30 Tage kostenlos, $400 Guthaben).
- Admin-Zugriff, um eine Rolle + einen Benutzer zu erstellen, ODER die Anmeldedaten einer bestehenden Read-only-Rolle.
- Den Snowflake-Account-Identifier —
<orgname>-<accountname>oder die alte Form<accountname>.<region>.<cloud>.
Schritt 1 — Unsere Egress-IP auf die Allowlist setzen (falls Ihr Account Network-Policy aktiviert hat)
Die Queries von Saiku Cloud an Ihr Warehouse stammen alle von
87.99.153.244.
Snowflake-Accounts, die ab 2024 erstellt wurden, haben standardmäßig Network Policy aktiviert — eine Allowlist von IPs, die sich authentifizieren dürfen. Wenn Ihr Account keine Policy hat, überspringen Sie diesen Schritt; Snowflake akzeptiert standardmäßig Verbindungen von beliebigen IPs.
So fügen Sie die IP von Saiku Cloud hinzu:
-- Als ACCOUNTADMIN:CREATE NETWORK POLICY saiku_cloud_allow ALLOWED_IP_LIST = ('87.99.153.244');
-- Auf Ihren Service-Benutzer anwenden (oder auf den Account, je nach Form):ALTER USER saiku_read SET NETWORK_POLICY = saiku_cloud_allow;Wenn Sie eine bestehende Network Policy mit anderen IPs darin haben,
fügen Sie 87.99.153.244 zur bestehenden Liste hinzu, statt sie zu
ersetzen.
Schritt 2 — Eine Read-only-Rolle + einen Benutzer erstellen
Snowflakes Rollenmodell: Ein Benutzer hat eine Standardrolle; die Rolle hat Grants. Saiku Cloud benötigt SELECT auf die Tabellen, die es liest.
-- Als 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;Passen Sie ANALYTICS / PUBLIC / COMPUTE_WH an Ihren Account an.
RSA-Schlüsselpaar-Auth (für Produktion empfohlen)
Für Service-Accounts wird die Passwort-Auth in einigen Snowflake-Regionen abgekündigt. Der Ersatz ist RSA-Schlüsselpaar:
# Einen 2048-Bit-RSA-Privatschlüssel generierenopenssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocryptopenssl rsa -in rsa_key.p8 -pubout -out rsa_key.pubLaden Sie den öffentlichen Schlüssel zum Benutzer hoch:
ALTER USER saiku_read SET RSA_PUBLIC_KEY = 'MIIBIjANBgkqhkiG9w0BAQEFA...';Verweisen Sie in der JDBC-URL auf den Pfad der Privatschlüssel-Datei
(der Engine-Container benötigt Lesezugriff — für die Shared Engine
von Saiku Cloud fügen Sie den Schlüsselinhalt inline über
private_key_file_pwd ein).
Schritt 3 — Die JDBC-URL bauen
Die Form:
jdbc:snowflake://<account>.snowflakecomputing.com/?db=<DATABASE>&warehouse=<WAREHOUSE>&role=<ROLE>Konkret:
jdbc:snowflake://abc12345.us-east-1.aws.snowflakecomputing.com/?db=ANALYTICS&warehouse=COMPUTE_WH&role=SAIKU_READEROder mit dem neueren <orgname>-<accountname>-Identifier:
jdbc:snowflake://yourorg-yourdb.snowflakecomputing.com/?db=ANALYTICS&warehouse=COMPUTE_WH&role=SAIKU_READERSchlüsselparameter:
db=— der Datenbankname. Erforderlich (sonst routet Snowflake Queries an den Default des Benutzers, der meist falsch ist).warehouse=— das Compute-Warehouse. Erforderlich.role=— die anzunehmende Rolle. Muss zu dem passen, was Sie in Schritt 2 gewährt haben.- TLS ist bei Snowflake immer an — kein SSL-Parameter zu setzen.
Schritt 4 — Verbinden über den Saiku-Cloud-Wizard
-
Melden Sie sich bei
https://cloud.saiku.bi/an. -
Navigieren Sie zu Verbindungen in der linken Seitenleiste.
-
Klicken Sie unter 1. Warehouse-Typ wählen auf das Snowflake-Kachel.
-
Füllen Sie aus:
- JDBC-URL — die URL aus Schritt 3.
- Benutzername —
saiku_read(oder Ihr Service-Account-Benutzername). - Passwort — das Passwort aus Schritt 2.
-
Klicken Sie auf Verbindung testen.
Erwarten Sie einen grünen Ergebnis-Banner: ✓ Connection successful
plus die erkannte Snowflake-Version. Die erste Snowflake-Verbindung
dauert 5–15 Sekunden (Auth + Warehouse-Start, falls es pausiert
war); nachfolgende Tests sind schneller.
Schritt 5 — Die Verbindung speichern
Gleiche Form wie bei jedem anderen Dialekt — geben Sie das Passwort erneut ein, geben Sie ihr ein Label, speichern Sie.
Fehlerbehebung
✗ Connection failed (HOST_UNREACHABLE) oder (TIMEOUT)
- Falscher Account-Identifier — der Teil vor
.snowflakecomputing.comist der gesamte Identifier.abc12345.us-east-1.awsist ein Identifier;abc12345allein löst nicht auf. Snowflakes Dokumentation ist hier verwirrend; kopieren Sie den Identifier von der Account-Details-Seite der Snowflake-Konsole. - Network Policy — wenn Ihr Account eine Network Policy hat und
die IP von Saiku Cloud nicht auf der Allowlist steht, lässt
Snowflake die Verbindung still ablaufen. Fügen Sie
87.99.153.244gemäß Schritt 1 hinzu.
✗ Connection failed (AUTH_FAILED)
Snowflake-Fehler 390100 / 390101 / 28000.
- Case des Benutzernamens — Snowflake-Benutzernamen sind im
Speicher standardmäßig UPPERCASE. Tippen Sie
saiku_read, und er wird alsSAIKU_READgespeichert. Die JDBC-Schicht ist beim Nachschlagen case-insensitiv, sodass dies meist nicht beißt — aber wenn Sie den Benutzernamen beim Erstellen in doppelte Anführungszeichen gesetzt haben, wird der Case bewahrt + muss exakt passen. - MFA — wenn MFA für den Benutzer aktiviert ist, schlägt die Passwort-Auth fehl. Entweder MFA für den Service-Benutzer deaktivieren oder RSA-Schlüsselpaar-Auth verwenden (RSA-Abschnitt in Schritt 2).
- Rolle existiert nicht — wenn
role=in der URL eine Rolle benennt, die der Benutzer nicht annehmen kann, gibt Snowflake Auth-Failed zurück statt eines spezifischeren Fehlers. Verifizieren Sie mitSHOW GRANTS TO USER saiku_read;in der Konsole.
✗ Connection failed (DATABASE_NOT_FOUND)
Die Datenbank in der URL existiert nicht ODER die Rolle hat kein
USAGE darauf.
GRANT USAGE ON DATABASE ANALYTICS TO ROLE saiku_reader; behebt
letzteres; ersteres erfordert den korrigierten Datenbanknamen.
Verbindung funktioniert, aber Cubes rendern nicht
USAGE auf der Datenbank reicht nicht — Saiku braucht auch USAGE
auf dem Schema und SELECT auf den Tabellen. Die vollständige
Grant-Kette steht in Schritt 2. Ein häufiger Fehler ist, Database
USAGE zu gewähren, aber Schema USAGE zu vergessen.
Alles andere
Machen Sie einen Screenshot des Wizards mit sichtbarem rotem
Ergebnis-Banner (Kind: ...-Zeile insbesondere) und senden Sie ihn
an support@saiku.bi.
Enterprise: PrivateLink
Für Enterprise-Kunden kann Snowflakes
AWS-PrivateLink-Endpunkt
den öffentlichen Netzwerkpfad vollständig ersetzen. Die JDBC-URL
ändert sich zu einer
<account>.privatelink.snowflakecomputing.com-Form; die
IP-Allowlist wird irrelevant. Kontaktieren Sie Ihr Account-Team, um
das Peering bereitzustellen.
Mit FoodMart ausprobieren
Möchten Sie Saiku Cloud mit diesem Dialekt testen, bevor Sie Ihre eigenen Daten verbinden? Laden Sie den FoodMart-Sample-Datensatz, gepackt für Snowflake, herunter: