Ansluta Klaviyo och Redshift
Advanced Klaviyo Data Platform ingår inte i Klaviyos standardmarknadsföringsapplikation och en prenumeration krävs för att få tillgång till tillhörande funktionalitet. Gå till vår faktureringsguide om du vill läsa mer om hur du köper den här planen.
Översikt
Den här guiden hjälper Redshift-administratörer att förbereda Amazon Redshift för Klaviyo, ge minsta möjliga nödvändiga åtkomst och slutföra anslutningen så att du kan importera profil enligt ett schema. Du får lära dig hur du:
- Skapa schemana
KLAVIYO_TMPochKLAVIYO_IMPORT_FROM_DWH - Skapa en dedikerad tjänstanvändare för Klaviyo
- Ge behörigheter enligt principen om minsta möjliga åtkomst
- (Valfritt) Validera behörigheter och anslutning
- Anslut Redshift till Klaviyo och börja skapa synkroniseringar
Mer bakgrund om hur import av datalager fungerar – inklusive vilka objekt som stöds och bästa praxis för tabellstruktur – finns i Förstå import av datalager i Klaviyo.
Skapa scheman som krävs
Skapa två scheman i databasen som Redshift ska använda för Klaviyo:
-- Run as a Redshift DB admin or a role with CREATE SCHEMA
CREATE SCHEMA IF NOT EXISTS klaviyo_import_from_dwh;
CREATE SCHEMA IF NOT EXISTS klaviyo_tmp; KLAVIYO_IMPORT_FROM_DWH– Lägg dina slutliga, synkklara tabeller eller vyer här. Under installationen listar Klaviyo objekt i det här schemat så att du kan välja, så inkludera bara de tabeller du planerar att importera.KLAVIYO_TMP– Används uteslutande av Klaviyo för tillfälliga/staging-tabeller under synkroniseringsjobb. Ändra inte data här – Klaviyo hanterar och rensar upp detta schema automatiskt.
Skapa Klaviyo Service-användaren
Skapa en dedikerad databasanvändare för Klaviyo med ett starkt lösenord som du kan rotera oberoende.
-- Replace with your own names and a strong password
CREATE USER klaviyo_data_transfer_user WITH PASSWORD 'REPLACE_WITH_STRONG_PASSWORD'; Skapa en roll för att hantera behörigheter för tjänstanvändaren:
CREATE ROLE klaviyo_data_transfer_role;
GRANT ROLE klaviyo_data_transfer_role TO klaviyo_data_transfer_user; Spara användarnamnet och lösenordet på ett säkert sätt – du använder dem när du ansluter Klaviyo till Redshift.
Bevilja nödvändiga behörigheter (minsta privilegium)
-- 1) Allow temporary tables
GRANT TEMPORARY ON DATABASE your_database TO ROLE klaviyo_data_transfer_role;
-- 2) Permissions on the staging schema Klaviyo manages
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) Read-only access to your import schema
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;
-- Remember to grant access to new tables in the future
-- 3a) Grant SELECT on specific views (repeat as needed)
GRANT SELECT ON VIEW klaviyo_import_from_dwh.example_view_name TO ROLE klaviyo_data_transfer_role; (Valfritt) Verifiera din konfiguration
Gör några snabba kontroller som Klaviyo-användare för att bekräfta att behörigheterna är korrekta.
-- Switch to the target database
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; Nätverksåtkomst
Klaviyo måste kunna nå din Redshift-slutpunkt.
- Offentlig Redshift-slutpunkt: lägg till Klaviyos statiska IP-adresser i din godkännandelista i brandväggen eller säkerhetsgruppen.
- Privat slutpunkt (t.ex. PrivateLink): säkerställ anslutning via din interna nätverkssökväg och dina säkerhetspolicyer.
Om du använder säkerhetsgrupper ska du tillåta inkommande åtkomst på din Redshift-port (standard 5439) för Klaviyo IP-intervall:
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/32 Förbered dina importtabeller (struktur och resultat)
Se till att alla tabeller du planerar att importera följer dessa konventioner för korrekta, effektiva inkrementella synkroniseringar:
- Tidsstämpelkolumn: Inkludera en tidsstämpel för skapande eller senaste uppdatering per rad (t.ex.
inserted_at,updated_at,modified_at). - Monotoniska uppdateringar: Tidsstämpeln ska öka varje gång en rad ändras.
- Tidszon: Använd UTC eller inkludera tidszonsinformation. Om den saknas antar Klaviyo UTC.
- Konsekventa identifierare: Använd samma profilidentifierare (
email,phone,external_idosv.) i alla importtabeller för att undvika dubbletter. - Samtyckesformat: När du synkar samtyckesdata följer du samma giltiga värden/format som används vid fil- eller SFTP-uppladdningar.
- Prestanda: Överväg sorterings- eller dist-nycklar på din tidsstämpelkolumn för effektiva inkrementella inläsningar.
- Vyer: Du kan importera från tabeller eller vyer, så länge en enkel
SELECTfungerar för Klaviyo-användaren.
Anslut Redshift till Klaviyo
- Öppna den vänstra sidopanelen i Klaviyo och gå till Advanced → Syncing.
- Klicka på Skapa synkronisering.
- Välj Importera data från ditt datalager.
- Välj Redshift.
- Klicka på Anslut till Redshift och ange följande anslutningsuppgifter:
Fält | Beskrivning |
|---|---|
Värd | Din Redshift-slutpunkt (t.ex. |
Port | 5 439 (eller din anpassade port) |
Databas | Databasen som innehåller |
Användarnamn/lösenord | Inloggningsuppgifter för Klaviyo Service-användaren |
När du har anslutit testar Klaviyo dina inloggningsuppgifter och nätverksanslutningen. När den har verifierats kan du skapa synkningar och välja tabeller eller vyer från klaviyo_import_from_dwh.
Felsökningsguide
Anslutningstestet misslyckas
- Verifiera att reglerna för brandvägg eller säkerhetsgrupp tillåter att Klaviyos IP-adresser når din Redshift-slutpunkt på rätt port.
- Bekräfta SSL-inställningarna och att du använder rätt slutpunkt (kluster jämfört med arbetsgrupp), region och port.
Tabeller visas inte
- Se till att tabeller finns i
klaviyo_import_from_dwh. - Bekräfta att Klaviyo-användaren har
USAGEpå schemat ochSELECTpå tabellerna eller vyerna.
Inga nya rader synkroniseras
- Verifiera att din tidsstämpelkolumn uppdateras vid radändringar och använder UTC eller innehåller information om tidszon.
Behörighetsfel vid körning
- Kör validerings-SQL:en igen som Klaviyo-användaren.
- Tillämpa beviljanden eller standardbehörigheter på nytt vid behov.
Säkerhet och underhåll
- Rotera lösenordet för tjänstanvändaren regelbundet och efter personaländringar.
- Begränsa Klaviyo-användaren till de två scheman ovan och ge
USAGEendast där det krävs. - Ha en enkel runbook som dokumenterar dina exakta
GRANT-uttryck och IP-intervallen som du har tillåtelselista.
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
);
-- ensure monotonically increasing timestamp on inserts/updates
-- (use your ETL/ELT to set inserted_at = GETDATE() at load time)