Klaviyo und Redshift verbinden
Advanced KDP ist nicht in der standardmäßigen Marketinganwendung von Klaviyo enthalten. Für den Zugriff auf die entsprechenden Funktionen ist ein Abonnement erforderlich. In unserem Abrechnungsleitfaden erfährst du, wie du dieses Abonnement kaufst.
Übersicht
In diesem Leitfaden erklären wir Redshift-Administratoren, wie sie Amazon Redshift für Klaviyo vorbereiten, den erforderlichen Mindestzugriff gewähren und die Verbindung abschließen, damit du Profildaten planmäßig importieren kannst. Hier erfährst du Folgendes:
- Erstellen der Schemata
KLAVIYO_TMPundKLAVIYO_IMPORT_FROM_DWH - Dedizierten Dienstbenutzer für Klaviyo erstellen
- Berechtigungen mit geringsten Berechtigungen erteilen
- (Optional) Berechtigungen und Konnektivität überprüfen
- Verbinde Redshift mit Klaviyo und beginne mit der Synchronisierung
Hintergrundinformationen zur Funktionsweise von Data-Warehouse-Import, einschließlich unterstützter Objekte und Best Practices für die Tabellenstruktur, finden Sie unter Grundlegendes zu Data-Warehouse-Import in Klaviyo.
Erforderliche Schemata erstellenErforderliche Schemata erstellen
Erstelle zwei Schemata in der Datenbank, die Redshift für Klaviyo verwendet:
-- Ausführung als Redshift DB Admin oder Rolle mit CREATE SCHEMA CREATE SCHEMA IF NOT EXISTS klaviyo_import_from_dwh; CREATE SCHEMA IF NOT EXISTS klaviyo_tmp;
-
KLAVIYO_IMPORT_FROM_DWH– Platziere deine endgültigen, synchronisierungsbereiten Tabellen oder Aufrufe hier. Während der Einrichtung listet Klaviyo Objekte in diesem Schema auf, aus denen du wählen kannst. Füge daher nur die Tabellen ein, die du importieren möchtest. -
KLAVIYO_TMP– Wird ausschließlich von Klaviyo für temporäre/Staging-Tabellen während Synchronisierungsaufträgen verwendet. Bearbeite die Daten hier nicht – Klaviyo verwaltet und bereinigt dieses Schema automatisch.
Erstelle den Klaviyo-Dienstbenutzer
Erstelle einen dedizierten Datenbankbenutzer für Klaviyo mit einem sicheren Passwort, das du unabhängig voneinander drehen kannst.
-- Ersetze dies durch deine eigenen Namen und ein starkes Passwort CREATE USER klaviyo_data_transfer_user WITH PASSWORD 'REPLACE_WITH_STRONG_PASSWORD';
Erstelle eine Rolle zum Verwalten von Zuschüssen für den Dienstbenutzer:
CREATE ROLE klaviyo_data_transfer_role; GRANT ROLE klaviyo_data_transfer_role TO klaviyo_data_transfer_user;
Speichere den Benutzernamen und das Passwort sicher – du wirst sie verwenden, wenn du Klaviyo mit Redshift verbindest.
Erforderliche Berechtigungen erteilen (geringste Berechtigung)Erforderliche Berechtigungen erteilen (geringste Berechtigung)
-- 1) Erlaube temporären Tabellen GRANT TEMPORARY ON your DATABASE_DATABASE TO ROLE klaviyo_data_transfer_role; -- 2) Berechtigungen für das Stagingschema Klaviyo managt GRANT USAGE ON SCHEMA klaviyo_tmp TO ROLE klaviyo_data_transfer_role; GRANT CREATE ON SCHEMA klaviyo_tmp TO ROLE klaviyo_data_transfer_role; -- 3) Schreibgeschützter Zugriff auf dein Importschema GRANT USAGE ON SCHEMA klaviyo_import_from_dwh TO ROLE klaviyo_data_transfer_role; GRANT SELECT ON ALL TABLES IN SCHEMA klaviyo_import_from_dwh TO ROLE klaviyo_data_transfer_role; -- Denke daran, Zugriff auf neue Tabellen in Schema zu gewähren die Zukunft -- 3a) Gewähre SELECT bei bestimmten Ansichten (bei Bedarf wiederholen) Gewähre SELECT ON VIEW klaviyo_import_from_dwh.beispiel_view_name TO ROLE klaviyo_data_transfer_role;(Optional) Überprüfe deine Einrichtung
(Optional) Überprüfe deine Einrichtung
Führe ein paar Schnellüberprüfungen durch, um zu überprüfen, ob die Klaviyo-Benutzer*innen die richtigen Zuschüsse erhalten.
-- Wechsle zur Zieldatenbank SET search_path TO klaviyo_tmp; -- 4.1 Validate create/read in KLAVIYO_TMP CREATE TABLE IF NOT EXISTS permission_check (id INT); INSERT INTO permission_check VALUES (1); SELECT COUNT(*) FROM permission_check; -- expect 1 DROP TABLE permission_check; -- 4.2 Confirm visibility of import tables SET search_path TO klaviyo_import_from_dwh; SELECT tablename FROM pg_table_def WHERE schemaname = 'klaviyo_import_from_dwh' LIMIT 25; -- 4.3 Confirm SELECT on a source table or view SELECT * FROM klaviyo_import_from_dwh.EXAMPLE_TABLE;Netzwerkzugriff
Netzwerkzugriff
Klaviyo muss deinen Redshift-Endpunkt erreichen können.
- Öffentlicher Redshift-Endpunkt: Whitelist der allgemeingültigen IPs von Klaviyo in deiner Firewall oder Sicherheitsgruppe.
- Privater Endpunkt (z. B. PrivateLink): Stelle die Konnektivität über deinen internen Netzwerkpfad und deine Sicherheitsrichtlinien sicher.
Wenn du Sicherheitsgruppen verwendest, gewähre eingehenden Zugriff auf deinen Redshift-Port (Standard 5439) für die IP-Bereiche von Klaviyo:
184,72.183.187/32 52,206.71.52/32 3,227.146.32/32 44,198.39.11/32 35,172.58.121/32 3,228.37.244/32 54,88.219.8/32 3.214.211.176/32Importtabellen vorbereiten (Struktur und Performance)
Importtabellen vorbereiten (Struktur und Performance)
Stelle sicher, dass alle Tabellen, die du importieren möchtest, diese Konventionen für eine genaue, effiziente inkrementelle Synchronisierung befolgen:
-
Zeitstempelspalte: Füge einen Zeitstempel für die Erstellung pro Zeile oder die letzte Aktualisierung ein (z. B.
inserted_at,updated_at,modified_at). - Monotone Updates: Der Zeitstempel sollte erhöht werden, wenn sich eine Zeile ändert.
- Zeitzone: Verwende UTC oder füge Informationen zur Zeitzone ein. Falls nicht vorhanden, geht Klaviyo von UTC aus.
-
Einheitliche Kennungen: Verwende in allen Importtabellen dieselben Profilkennungen (
E-Mail,Telefon,externe IDusw.), um doppelte Kennungen zu vermeiden. - Einwilligungsformate: Beim Synchronisieren von Einwilligungsdaten solltest du die gleichen gültigen Werte/Formate wie beim Datei- oder SFTP-Upload verwenden.
- Performance: Sortier- oder Verteilungsschlüssel in deiner Zeitstempelspalte für effiziente inkrementelle Lesezugriffe.
-
Views: Du kannst aus Tabellen oder Views importieren, solange ein einfaches
SELECTfür den Klaviyo-Benutzer funktioniert.
Redshift mit Klaviyo verbinden
- In Klaviyo öffnest du die linke Seitenleiste und gehst zu Erweitert → Synchronisierung.
- Klicke auf Synchronisierung erstellen.
- Wähle Daten aus deinem Data Warehouse importieren.
- Wähle Redshift.
- Klicke auf Mit Redshift verbinden und gib die folgenden Verbindungsdetails ein:
| Feld | Beschreibung |
|---|---|
| Host | Dein Redshift-Endpunkt (z. B. example-cluster.abc123.us-east-1.redshift.amazonaws.com) |
| Port | 5439 (oder dein benutzerdefinierter Port) |
| Datenbank | Die Datenbank mit klaviyo_tmp und klaviyo_import_from_dwh
|
| Benutzername/Passwort | Die Zugangsdaten des Klaviyo-Diensts |
Nachdem du die Verbindung hergestellt hast, testet Klaviyo deine Zugangsdaten und die Netzwerkkonnektivität. Nach der Verifizierung kannst du Synchronisierungen erstellen und Tabellen oder Ansichten aus klaviyo_import_from_dwh auswählen.
Tipps zur Fehlerbehebung
Verbindungstest fehlgeschlagen
- Vergewissere dich, dass die Firewall- oder Sicherheitsgruppenregeln es Klaviyos IPs ermöglichen, deinen Redshift-Endpunkt über den richtigen Port zu erreichen.
- Bestätige die SSL-Einstellungen und stelle sicher, dass du den richtigen Endpunkt (Cluster vs. Arbeitsgruppe), die richtige Region und den richtigen Port verwendest.
Tabellen werden nicht angezeigt
- Stelle sicher, dass die Tabellen in
klaviyo_import_from_dwh enthaltensind. - Vergewissere dich, dass der Klaviyo-Benutzer
USAGEim Schema undSELECTin den Tabellen oder Sichten hat.
Keine Synchronisierung neuer Zeilen
- Überprüfe, ob deine Zeitstempelspalte bei Zeilenänderungen aktualisiert wird und UTC verwendet oder Zeitzoneninformationen enthält.
Berechtigungsfehler zur Laufzeit
- Führen Sie die SQL-Validierung als Klaviyo-Benutzer erneut aus.
- Weisen Sie ggf. erneut Berechtigungen oder Standardberechtigungen zu.
Sicherheit und Wartung
- Drehen Sie das Dienstbenutzerpasswort regelmäßig und nach Personaländerungen.
- Beschränke den Klaviyo-Benutzer auf die beiden obigen Schemata und gewähre
USAGEnur, wenn dies erforderlich ist. - Führe ein einfaches Runbook, in dem du deine genauen
GRANT-Anweisungen und die IP-Bereiche dokumentierst, die du aufgelistet hast.
FAQ
Kann ich aus mehreren Redshift-Datenbanken importieren?
Ja. Erstelle die beiden Schemas in jeder Datenbank und verbinde Objekte aus jeder Datenbank als separate Synchronisierungen.
Kann ich materialisierte Ansichten verwenden?
Ja. Erteile dem Klaviyo-Benutzer SELECT für die Materialized View.
Anhang: Beispiel-DDL für eine einfache Importtabelle
CREATE TABLE klaviyo_import_from_dwh.profile_base ( external_id VARCHAR(128), email VARCHAR(320), phone VARCHAR(32), first_name VARCHAR(128), last_name VARCHAR(128), country VARCHAR(64), inserted_at TIMESTAMP ); -- sicherstellt, dass der Zeitstempel bei Einfügungen/Aktualisierungen monoton erhöht wird -- (verwende deine ETL/ELT, um inserted_at = GETDATE() beim Ladezeitpunkt festzulegen.)