Ein Postgres-Warehouse verbinden
Diese Anleitung führt Sie durch das End-to-End-Verbinden einer PostgreSQL-Datenbank mit Saiku Cloud. Fünf Minuten, wenn Ihr Warehouse bereits öffentlich ist; zehn, wenn Sie eine Read-only-Rolle einrichten müssen.
Plan-Auswirkung: Jeder Saiku-Cloud-Plan (Starter, Team, Business) unterstützt Postgres-BYOC.
Was Sie brauchen
- Eine PostgreSQL 12+-Instanz, die von einer öffentlichen IPv4-Adresse erreichbar ist. Cloud-gehostete Saiku-Cloud-Kunden auf Starter/Team/Business brauchen dies — Enterprise-Kunden mit einem privaten VPC-Peering-Setup (siehe PrivateLink zu Kunden-Postgres) erhalten stattdessen private-Netzwerk-Erreichbarkeit.
- Admin-Zugriff auf Ihr Warehouse, damit Sie eine Read-only-Rolle erstellen können (oder die Anmeldedaten einer bestehenden Read-only-Rolle).
- Fünf Minuten.
Schritt 1 — Unsere Egress-IP auf die Allowlist setzen
Die Queries von Saiku Cloud an Ihr Warehouse stammen alle von einer einzigen statischen IP:
87.99.153.244Fügen Sie diese zur Firewall / Security Group / Netzwerk-Allowlist
Ihres Warehouses hinzu, bevor Sie die Verbindung testen. Der
Connection-Wizard zeigt dieselbe IP zum Zeitpunkt des Testens an,
sodass Sie sie auch von dort kopieren können — aber es im Voraus zu
tun, vermeidet den HOST_UNREACHABLE-Fehler, den Sie sonst beim
ersten Test sehen würden.
Häufige Allowlist-Orte:
- AWS RDS: VPC-Security-Group Inbound Rule → Port 5432 → Source
87.99.153.244/32. - Google Cloud SQL: Connectivity → Authorized networks →
87.99.153.244/32hinzufügen. - Azure Postgres: Networking → Firewall rules → Regel hinzufügen,
die
87.99.153.244bis87.99.153.244erlaubt. - Selbstgehostet:
pg_hba.conf-Host-Eintrag, plus die Firewall davor (UFW, iptables, Cloud-Provider-Edge).
Die IP ist stabil — sie übersteht Neustarts und Image-Rebuilds. Wir verpflichten uns zu mindestens 30 Tagen Vorlauf vor jeder Rotation. Vollständige Policy: siehe unsere Verpflichtung zur Egress-IP-Stabilität.
Schritt 2 — Eine Read-only-Rolle in Postgres erstellen
Saiku Cloud liest immer nur von Ihrem Warehouse — schreibt niemals, ändert niemals Schemas, erstellt niemals Objekte. Die Least-Privilege-Form ist eine dedizierte Read-only-Rolle:
-- Als Postgres-Superuser (oder beliebiger Benutzer mit CREATEROLE):CREATE ROLE saiku_read LOGIN PASSWORD 'pick-something-strong-here';
-- Zugriff auf die Schemas + Tabellen gewähren, die Saiku sehen soll.-- Passen Sie 'public' an das Schema/die Schemas an, in denen Ihre Daten leben.GRANT USAGE ON SCHEMA public TO saiku_read;GRANT SELECT ON ALL TABLES IN SCHEMA public TO saiku_read;GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO saiku_read;
-- Zukünftige Tabellen, die in diesem Schema erstellt werden, sollen ebenfalls lesbar sein.ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO saiku_read;Wenn Ihre Daten über mehrere Schemas verteilt sind, wiederholen Sie
die GRANT USAGE- + GRANT SELECT-Blöcke für jedes.
Schritt 3 — Die JDBC-URL bauen
Die Form:
jdbc:postgresql://<host>:<port>/<database>?sslmode=requireKonkrete Beispiele:
- AWS RDS:
jdbc:postgresql://mydb.abc123.us-east-1.rds.amazonaws.com:5432/sales?sslmode=require - Google Cloud SQL:
jdbc:postgresql://1.2.3.4:5432/sales?sslmode=require(verwenden Sie die Public IP aus der Cloud-SQL-Konsole) - Azure Postgres:
jdbc:postgresql://mydb.postgres.database.azure.com:5432/sales?sslmode=require - Selbstgehostet:
jdbc:postgresql://db.yourcompany.com:5432/sales?sslmode=require
Schlüsselparameter:
sslmode=requirewird für jedes über das öffentliche Internet erreichbare Warehouse dringend empfohlen. Die meisten managed Postgres-Services erzwingen SSL ohnehin;requirelässt den Client den Klartext-Fallback ablehnen.sslmode=verify-fullist strenger — es verifiziert zusätzlich, dass der Hostname des Server-Zertifikats passt. Verwenden Sie es, wenn das CA-Root Ihres Warehouses in unserem Trust Store ist (die meisten managed Services verwenden Let’s Encrypt oder eine bekannte CA, sodass dies out of the box funktioniert).- Überspringen Sie
?currentSchema=foound ähnliche Treiber-Tweaks, es sei denn, Sie haben einen spezifischen Grund; Saiku fragt durchgehend mit vollqualifiziertenschema.table-Verweisen ab.
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 Postgres-Kachel.
-
Füllen Sie aus:
- JDBC-URL — die URL aus Schritt 3.
- Benutzername —
saiku_read(oder wie Sie die Rolle in Schritt 2 benannt haben). - Passwort — das Passwort aus Schritt 2.
-
Klicken Sie auf Verbindung testen.
Wenn alles korrekt verdrahtet ist, sehen Sie einen grünen
Ergebnis-Banner: ✓ Connection successful plus die erkannte
Postgres-Version. Weiter zu Schritt 5.
Wenn Sie einen roten Ergebnis-Banner sehen, siehe Fehlerbehebung unten für die Fehler-Triage-Matrix.
Schritt 5 — Die Verbindung speichern
Nach einem erfolgreichen Test rendert der Wizard einen Abschnitt 3. Verbindung speichern. Füllen Sie aus:
- Passwort (zum Speichern erneut eingeben) — dasselbe Passwort, mit dem Sie getestet haben. Wir speichern das Passwort des Test-Formulars nicht, um zu vermeiden, ein Credential durch den Page-State zurückzureichen.
- Label — ein menschenlesbarer Name wie
Production warehouseoderMarketing analytics. Wird in der Verbindungsliste + im Cube-Designer angezeigt.
Klicken Sie auf Verbindung speichern. Wir leiten Sie zum Schema-Designer weiter, wo Sie entweder einen Cube über den KI-Inferenz-Flow vorschlagen oder eine Mondrian-Schema-XML hochladen können.
Fehlerbehebung
✗ Connection failed (HOST_UNREACHABLE) oder (TIMEOUT)
Wir konnten den Host auf dem angegebenen Port nicht erreichen. Häufigste Ursachen:
- Firewall / Allowlist — Schritt 1 wurde nicht gemacht oder
nicht für die richtige IP. Bestätigen Sie, dass
87.99.153.244/32in der Allowlist Ihres Warehouses ist + dass sie angewandt wurde (manche Firewalls erfordern einen Restart / Re-Apply). - DNS — der Hostname in der JDBC-URL löst nicht auf oder löst
auf eine private IP auf. Verifizieren Sie von Ihrem Laptop:
nslookup <host>. Wir verweigern aus SSRF-Schutz-Gründen die Verbindung zu RFC1918- / Loopback- / Link-Local-Adressen —HOST_DENIED(nichtHOST_UNREACHABLE) ist in diesem Fall die Oberfläche. - Falscher Port — Postgres ist standardmäßig 5432, aber managed Services verwenden gelegentlich einen Custom-Port (Heroku Postgres verwendet 5432, aber innerhalb eines Tunnels; einige On-Prem-Deployments verwenden 5433+).
✗ Connection failed (AUTH_FAILED)
Benutzername oder Passwort ist falsch. Der Wizard unterscheidet absichtlich nicht zwischen „falscher Benutzer” und „falsches Passwort” — das ist Schutz gegen Credential-Stuffing-Angriffe.
- Prüfen Sie den Benutzernamen doppelt — Postgres-Rollennamen sind
case-sensitiv (
saiku_read≠Saiku_Read). - Versuchen Sie von Ihrem Laptop mit
psql "<JDBC URL ohne den jdbc:-Präfix>"zu verbinden, um zu bestätigen, dass die Anmeldedaten außerhalb von Saiku funktionieren. - Wenn Sie das Passwort kürzlich zurückgesetzt haben, stellen Sie
sicher, dass Sie die Änderung in Postgres committet haben
(
ALTER ROLE saiku_read PASSWORD '...';) und alle Pooler erneut verbunden haben, die möglicherweise den alten Hash cachen.
✗ Connection failed (DATABASE_NOT_FOUND)
Der Host akzeptiert Ihre Anmeldedaten, aber der Datenbankname in
der JDBC-URL existiert nicht. Verifizieren Sie den Datenbanknamen
— Postgres hat normalerweise sowohl postgres als auch Ihre
Anwendungsdatenbank; Sie wollen letztere.
-- Aus psql, als beliebiger Benutzer mit Login:\l -- Datenbanken auflisten✗ Connection failed (DIALECT_UNSUPPORTED)
Die URL beginnt nicht mit jdbc:postgresql:. Wenn Sie eine
jdbc:postgres:-URL (ohne -ql) eingefügt haben, passt der
Dialekt-Resolver nicht — der JDBC-Treiber von Postgres erfordert
das postgresql-Token. Verwenden Sie die URL-Formen aus Schritt 3
wörtlich.
Alles andere
Machen Sie einen Screenshot des Wizards mit sichtbarem rotem
Ergebnis-Banner (Kind: ...-Zeile insbesondere) und senden Sie ihn
an support@saiku.bi. Das Kind-Feld sagt uns, in welcher
Fehlerklasse wir uns befinden; der Try this-Hinweis darunter
gibt unseren besten Lösungsvorschlag.
Enterprise: privates Netzwerk {#enterprise-privates-netzwerk}
Für Enterprise-Kunden mit einem privaten Netzwerk-Setup wird die Egress-IP-Regel oben durch VPC-Peering oder PrivateLink zu Ihrer Postgres-Instanz ersetzt. Der Flow des Connection-Wizards ist ansonsten identisch — private JDBC-URL einfügen, testen, speichern. 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 Postgres, herunter: