Klaviyo en Redshift verbinden
Advanced Klaviyo Data Platform is niet inbegrepen in Klaviyo’s standaard marketingtoepassing en je hebt een abonnement nodig om toegang te krijgen tot de bijbehorende functionaliteit. Ga naar onze factureringsgids om te lezen hoe je dit abonnement kunt aanschaffen.
Overzicht
Deze handleiding begeleidt Redshift-beheerders bij het voorbereiden van Amazon Redshift voor Klaviyo, het verlenen van de minimaal vereiste toegang en het voltooien van de verbinding, zodat je profielgegevens volgens een planning kunt importeren. Je leert hoe je:
- Maak de schema's
KLAVIYO_TMPenKLAVIYO_IMPORT_FROM_DWHaan - Maak een speciale servicegebruiker aan voor Klaviyo
- Verleen machtigingen met het principe van minimale rechten
- (Optioneel) Valideer machtigingen en connectiviteit
- Verbind Redshift met Klaviyo en begin met het maken van synchronisaties
Voor achtergrondinformatie over hoe import uit datawarehouse werkt — inclusief ondersteunde objecten en best practices voor tabelstructuur — zie Inzicht in import uit datawarehouse in Klaviyo.
Vereiste schema's maken
Maak 2 schema's in de database die Redshift zal gebruiken voor 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– Plaats hier je definitieve, klaar-om-te-synchroniseren tabellen of weergaven. Tijdens de setup toont Klaviyo objecten in dit schema waar je uit kunt kiezen, dus neem alleen de tabellen op die je wilt importeren.KLAVIYO_TMP– Wordt uitsluitend door Klaviyo gebruikt voor tijdelijke/staging-tabellen tijdens synchronisatietaken. Wijzig hier geen gegevens—Klaviyo beheert en ruimt dit schema automatisch op.
Maak de Klaviyo Service-gebruiker aan
Maak een speciale databasegebruiker voor Klaviyo aan met een sterk wachtwoord dat je onafhankelijk kunt roteren.
-- Replace with your own names and a strong password
CREATE USER klaviyo_data_transfer_user WITH PASSWORD 'REPLACE_WITH_STRONG_PASSWORD'; Maak een rol aan om machtigingen voor de servicegebruiker te beheren:
CREATE ROLE klaviyo_data_transfer_role;
GRANT ROLE klaviyo_data_transfer_role TO klaviyo_data_transfer_user; Sla de gebruikersnaam en het wachtwoord veilig op—je gebruikt ze wanneer je Klaviyo met Redshift verbindt.
Vereiste machtigingen verlenen (minimale bevoegdheden)
-- 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; (Optioneel) Verifieer je installatie
Voer een paar snelle controles uit als de Klaviyo-gebruiker om te bevestigen dat de machtigingen correct zijn.
-- 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; Netwerktoegang
Klaviyo moet je Redshift-eindpunt kunnen bereiken.
- Openbaar Redshift-eindpunt: zet de statische IP-adressen van Klaviyo op de positieve lijst in je firewall of beveiligingsgroep.
- Privé-eindpunt (bijv. PrivateLink): zorg voor connectiviteit via je interne netwerkpad en beveiligingsbeleid.
Als je beveiligingsgroepen gebruikt, sta je inkomende toegang toe op je Redshift-poort (standaard 5439) voor de IP-bereiken van 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/32 Bereid je importtabellen voor (structuur en prestaties)
Zorg ervoor dat alle tabellen die je wilt importeren deze conventies volgen voor nauwkeurige, efficiënte incrementele synchronisaties:
- Tijdstempelkolom: Voeg een tijdstempel voor aanmaak of laatste update per rij toe (bijv.
inserted_at,updated_at,modified_at). - Monotone updates: de tijdstempel moet toenemen telkens wanneer een rij verandert.
- Tijdzone: gebruik UTC of voeg tijdzone-informatie toe. Als dit ontbreekt, gaat Klaviyo uit van UTC.
- Consistente identificatiecodes: Gebruik dezelfde profiel-ID's (
email,phone,external_id, enz.) in alle importtabellen om duplicaten te voorkomen. - Toestemmingsindelingen: Volg bij het synchroniseren van toestemmingsgegevens dezelfde geldige waarden/indelingen als die worden gebruikt bij bestands- of SFTP-uploads.
- Prestaties: Overweeg sort- of dist-keys op je timestampkolom voor efficiënte incrementele reads.
- Weergaven: Je kunt importeren uit tabellen of weergaven, zolang een eenvoudige
SELECTwerkt voor de Klaviyo-gebruiker.
Redshift verbinden met Klaviyo
- Open in Klaviyo de linkerzijbalk en ga naar Geavanceerd → Synchroniseren.
- Klik op Synchronisatie aanmaken.
- Selecteer Gegevens importeren uit je datawarehouse.
- Kies Redshift.
- Klik op Verbinding maken met Redshift en voer de volgende verbindingsgegevens in:
Veld | Beschrijving |
|---|---|
Host | Je Redshift-eindpunt (bijv. |
Poort | 5439 (of je aangepaste poort) |
Database | De database met |
Gebruikersnaam / wachtwoord | De inloggegevens van de Klaviyo Service-gebruiker |
Nadat je verbinding hebt gemaakt, test Klaviyo je inloggegevens en netwerkconnectiviteit. Zodra dit is geverifieerd, kun je synchronisaties maken en tabellen of weergaven selecteren uit klaviyo_import_from_dwh.
Tips voor probleemoplossing
Verbindingstest mislukt
- Controleer of firewall- of beveiligingsgroepsregels Klaviyo's IP's toestaan om je Redshift-eindpunt te bereiken via de juiste poort.
- Bevestig de SSL-instellingen en dat je het juiste eindpunt (cluster vs. workgroup), de juiste regio en poort gebruikt.
Tabellen worden niet weergegeven
- Zorg dat tabellen in
klaviyo_import_from_dwhstaan. - Bevestig dat de Klaviyo-gebruiker
USAGEheeft op het schema enSELECTop de tabellen of weergaven.
Geen nieuwe rijen worden gesynchroniseerd
- Controleer of je tijdstempelkolom wordt bijgewerkt bij rijwijzigingen en UTC gebruikt of tijdzone-informatie bevat.
Machtigingsfouten tijdens runtime
- Voer de validatie-SQL opnieuw uit als de Klaviyo-gebruiker.
- Verleen indien nodig opnieuw rechten of standaardprivileges.
Beveiliging en onderhoud
- Wijzig het wachtwoord van de servicegebruiker regelmatig en na personeelswisselingen.
- Beperk de Klaviyo-gebruiker tot de twee bovenstaande schema's en verleen
USAGEalleen waar nodig. - Houd een eenvoudig runbook bij waarin je je exacte
GRANT-instructies en de IP-bereiken die je op de allowlist hebt gezet documenteert.
Veelgestelde vragen
Kan ik uit meerdere Redshift-databases importeren?
Ja. Maak de twee schema's in elke database en koppel objecten uit elke database als afzonderlijke synchronisaties.
Kan ik gematerialiseerde weergaven gebruiken?
Ja. Verleen SELECT op de gematerialiseerde weergave aan de Klaviyo-gebruiker.
Bijlage: voorbeeld-DDL voor een eenvoudige importtabel
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)