Koppla ihop Klaviyo och Redshift
Advanced Klaviyo Data Platform ingår inte i Klaviyo:s standardmarknadsföringsapplikation, och en prenumeration krävs för att få tillgång till tillhörande funktionalitet. Gå till vår faktureringsguide för att lära dig mer om hur du köper denna plan.
Översikt
Den här guiden visar Redshift-administratörer hur man förbereder Amazon Redshift för Klaviyo, ger den minsta åtkomst som krävs och slutför anslutningen så att du kan importera profildata enligt ett schema. Du kommer att lära dig hur du gör:
- Skapa schemana
KLAVIYO_TMPochKLAVIYO_IMPORT_FROM_DWH - Skapa en dedikerad serviceanvändare för Klaviyo
- Tilldela behörigheter med lägsta privilegium
- (Valfritt) Verifiera behörigheter och anslutning
- Anslut Redshift till Klaviyo och börja skapa synkroniseringar
För bakgrund om hur import av datalager fungerar - inklusive objekt som stöds och bästa praxis för tabellstruktur - se Förstå import av datalager i Klaviyo.
Skapa nödvändiga schemanSkapa nödvändiga scheman
Skapa två scheman i den databas som Redshift ska använda för Klaviyo:
-- Kör som en Redshift DB-administratör eller en roll med CREATE SCHEMA CREATE SCHEMA IF NOT EXISTS klaviyo_import_from_dwh; CREATE SCHEMA IF NOT EXISTS klaviyo_tmp;
-
KLAVIYO_IMPORT_FROM_DWH- Placera dina slutliga, synkroniseringsfärdiga tabeller eller vyer här. Under installationen listar Klaviyo objekt i detta schema som du kan välja mellan, så inkludera bara de tabeller som du planerar att importera. -
KLAVIYO_TMP- Används uteslutande av Klaviyo för tillfälliga/staging-tabeller under synkroniseringsjobb. Modifiera inte data här - Klaviyo hanterar och rensar upp detta schema automatiskt.
Skapa Klaviyo Användare av tjänsten
Skapa en dedikerad databasanvändare för Klaviyo med ett starkt lösenord som du kan rotera oberoende av varandra.
-- Ersätt med dina egna namn och ett starkt lösenord CREATE USER klaviyo_data_transfer_user WITH PASSWORD 'REPLACE_WITH_STRONG_PASSWORD';
Skapa en roll för att hantera anslag för tjänsteanvändaren:
CREATE ROLE klaviyo_data_transfer_role; GRANT ROLE klaviyo_data_transfer_role TO klaviyo_data_transfer_user;
Förvara användarnamnet och lösenordet på ett säkert sätt - du kommer att använda dem när du ansluter Klaviyo till Redshift.
Tilldela nödvändiga behörigheter (minsta möjliga privilegium)Tilldela nödvändiga behörigheter (minsta möjliga privilegium)
-- 1) Tillåt tillfälliga tabeller GRANT TEMPORARY ON DATABASE your_database TO ROLE klaviyo_data_transfer_role; -- 2) Behörigheter på det stagingschema som Klaviyo hanterar 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) Skrivskyddad åtkomst till ditt 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; -- Kom ihåg att ge tillgång till nya tabeller i framtiden -- 3a) Ge SELECT på specifika vyer (upprepa vid behov) GRANT SELECT ON VIEW klaviyo_import_from_dwh.example_view_name TO ROLE klaviyo_data_transfer_role;(Valfritt) Verifiera din installation
(Valfritt) Verifiera din installation
Gör några snabba kontroller som Klaviyo-användare för att bekräfta att bidragen är korrekta.
-- Byt till måldatabasen SET search_path TO klaviyo_tmp; -- 4.1 Validera skapande/läsning i 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 Bekräfta synligheten för importtabeller SET search_path TO klaviyo_import_from_dwh; SELECT tablename FROM pg_table_def WHERE schemaname = 'klaviyo_import_from_dwh' LIMIT 25; -- 4.3 Bekräfta SELECT på en källtabell eller vy SELECT * FROM klaviyo_import_from_dwh.EXAMPLE_TABLE;Tillgång till nätverk
Tillgång till nätverk
Klaviyo måste kunna nå din Redshift-slutpunkt.
- Public Redshift slutpunkt: godkännandelista Klaviyo's statiska IP-adresser i din brandvägg eller säkerhetsgrupp.
- Privat slutpunkt (t.ex. PrivateLink): säkerställ anslutning via din interna nätverksväg och säkerhetspolicy.
Om du använder säkerhetsgrupper ska du tillåta inkommande åtkomst på din Redshift-port (standard 5439) för Klaviyo:s IP-områden:
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/32Förbered dina importtabeller (struktur & prestanda)
Förbered dina importtabeller (struktur & prestanda)
Se till att alla tabeller som du planerar att importera följer dessa konventioner för korrekta och effektiva inkrementella synkroniseringar:
-
Kolumn med tidsstämpel: Inkludera en tidsstämpel för skapande eller senaste uppdatering per rad (t.ex.
inserted_at,updated_at,modified_at). - Monotoniska uppdateringar: Tidsstämpeln bör öka när en rad ändras.
- Tidszon: Använd UTC eller inkludera information om tidszon. Om den saknas antar Klaviyo UTC.
-
Konsekventa identifierare: Använd samma profilidentifierare
(e-post,telefon,external_idetc.) i alla importtabeller för att undvika dubbletter. - Format för samtycke: När du synkroniserar samtyckesdata ska du följa samma giltiga värden/format som används vid fil- eller SFTP-uppladdningar.
- Prestanda: Tänk på att sortera eller dist-nycklar på din timestamp-kolumn för effektiva inkrementella läsningar.
-
Vyer: Du kan importera från tabeller eller vyer, så länge som en enkel
SELECTfungerar för Klaviyo-användaren.
Anslut Redshift till Klaviyo
- I Klaviyo öppnar du det vänstra sidofältet och går till Avancerat → Synkronisering.
- Klicka på Skapa synkronisering.
- Välj Importera data från ditt datalager.
- Välj Redshift.
- Klicka på Connect to Redshift och ange följande anslutningsuppgifter:
| Fält | Beskrivning |
|---|---|
| Värd | Din Redshift-slutpunkt (t.ex. example-cluster.abc123.us-east-1.redshift.amazonaws.com) |
| Port | 5439 (eller din anpassade port) |
| Databas | Databasen som innehåller klaviyo_tmp och klaviyo_import_from_dwh
|
| Användarnamn / Lösenord | Användaruppgifter för tjänsten Klaviyo |
När du har anslutit kommer Klaviyo att testa dina referenser och nätverksanslutning. När du har verifierat kan du skapa synkroniseringar och välja tabeller eller vyer från klaviyo_import_from_dwh.
Felsökningsguide
Anslutningstestet misslyckas
- Kontrollera att brandväggens eller säkerhetsgruppens regler tillåter Klaviyo:s IP-adresser att nå din Redshift slutpunkt på rätt port.
- Bekräfta SSL-inställningarna och att du använder rätt slutpunkt (kluster eller arbetsgrupp), region och port.
Tabellerna visas inte
- Se till att tabellerna finns i
klaviyo_import_from_dwh. - Bekräfta att Klaviyo-användaren har
USAGEpå schemat ochSELECTpå tabellerna eller vyerna.
Ingen synkronisering av nya rader
- Kontrollera att din tidsstämpelkolumn uppdateras vid radändringar och använder UTC eller innehåller tidszoninformation.
Behörighetsfel vid körning
- Kör valideringen SQL igen som Klaviyo-användare.
- Återapplicera anslag eller standardbehörigheter vid behov.
Säkerhet och underhåll
- Byt lösenord för serviceanvändare regelbundet och efter personalförändringar.
- Begränsa Klaviyo-användaren till de två schemana ovan och ge
USAGEendast där det krävs. - Ha en enkel körbok som dokumenterar dina exakta
GRANT-satseroch de IP-områden som du har listat som tillåtna.
Vanliga frågor
Kan jag importera från flera Redshift-databaser?
Ja. Skapa de två schemana i varje databas och anslut objekt från var och en som separata synkroniseringar.
Kan jag använda materialiserade vyer?
Ja. Ge SELECT på den materialiserade vyn till Klaviyo-användaren.
Bilaga: Exempel på DDL för en enkel importtabell
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 ); -- säkerställa monotont ökande tidsstämpel vid infogningar/uppdateringar -- (använd din ETL/ELT för att ställa in inserted_at = GETDATE() vid laddningstid)