Zaawansowana platforma danych klientów Klaviyo nie wchodzi w skład standardowej aplikacji marketingowej Klaviyo, a dostęp do powiązanych z nią funkcji wymaga subskrypcji. Przejdź do naszego przewodnika po rozliczeniach, aby dowiedzieć się, jak kupić ten plan.

Screenshot 2025-11-09 at 12.41.47 PM.png
Screenshot 2025-11-09 at 12.41.47 PM.png

Przegląd

Ten przewodnik przeprowadza administratorów Redshift przez przygotowanie Amazon Redshift do Klaviyo, przyznanie minimalnego wymaganego dostępu oraz ukończenie połączenia, aby móc importować dane profilu zgodnie z harmonogramem. Dowiesz się, jak:

  1. Utwórz schematy KLAVIYO_TMP i KLAVIYO_IMPORT_FROM_DWH
  2. Utwórz dedykowanego użytkownika usługi dla Klaviyo
  3. Przyznaj uprawnienia zgodnie z zasadą najmniejszych uprawnień
  4. (Opcjonalnie) Zweryfikuj uprawnienia i łączność
  5. Połącz Redshift z Klaviyo i zacznij tworzyć synchronizacje

Aby dowiedzieć się więcej o tym, jak działa import z hurtowni danych — w tym o obsługiwanych obiektach i najlepszych praktykach dotyczących struktury tabel — zobacz Informacje o imporcie z hurtowni danych w Klaviyo.

Utwórz wymagane schematy

Utwórz dwa schematy w bazie danych, których Redshift będzie używać dla Klaviyo:

auto
-- 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 – Umieść tutaj ostateczne tabele lub widoki gotowe do synchronizacji. Podczas konfiguracji Klaviyo wyświetla obiekty w tym schemacie do wyboru, więc uwzględnij tylko tabele, które planujesz zaimportować.
  • KLAVIYO_TMP – Używane wyłącznie przez Klaviyo do tymczasowych/tabel przejściowych podczas zadań synchronizacji. Nie modyfikuj tutaj danych — Klaviyo automatycznie zarządza tym schematem i go czyści.

Utwórz użytkownika usługi Klaviyo Service

Utwórz dedykowanego użytkownika bazy danych dla Klaviyo z silnym hasłem, które możesz niezależnie rotować.

auto
-- Replace with your own names and a strong password
CREATE USER klaviyo_data_transfer_user WITH PASSWORD 'REPLACE_WITH_STRONG_PASSWORD';

Utwórz rolę do zarządzania przyznaniami dla użytkownika usługi:

auto
CREATE ROLE klaviyo_data_transfer_role;
GRANT ROLE klaviyo_data_transfer_role TO klaviyo_data_transfer_user;

Przechowuj nazwę użytkownika i hasło w bezpiecznym miejscu — będą potrzebne podczas łączenia Klaviyo z Redshift.

Przyznaj wymagane uprawnienia (najmniejsze niezbędne uprawnienia)

auto
-- 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;

(Opcjonalnie) Zweryfikuj konfigurację

Wykonaj kilka szybkich kontroli jako użytkownik Klaviyo, aby potwierdzić, że uprawnienia są prawidłowe.

auto
-- 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;

Dostęp do sieci

Klaviyo musi mieć możliwość połączenia się z Twoim punktem końcowym Redshift.

  • Publiczny punkt końcowy Redshift: dodaj statyczne adresy IP Klaviyo do białej listy w zaporze sieciowej lub w grupie zabezpieczeń.
  • Prywatny punkt końcowy (np. PrivateLink): zapewnij łączność za pośrednictwem wewnętrznej ścieżki sieciowej i zasad bezpieczeństwa.

Jeśli używasz grup zabezpieczeń, zezwól na dostęp przychodzący na porcie Redshift (domyślnie 5439) dla zakresów adresów IP Klaviyo:

auto
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

Przygotuj tabele importu (struktura i wydajność)

Upewnij się, że wszystkie tabele, które planujesz zaimportować, są zgodne z tymi konwencjami, aby zapewnić dokładne i wydajne przyrostowe synchronizacje:

  • Kolumna znacznika czasu: Uwzględnij znacznik czasu utworzenia lub ostatniej aktualizacji dla każdego wiersza (np. inserted_at, updated_at, modified_at).
  • Aktualizacje monotoniczne: znacznik czasu powinien się zwiększać za każdym razem, gdy wiersz ulega zmianie.
  • Strefa czasowa: Użyj UTC lub dodaj informacje o strefie czasowej. Jeśli ich brakuje, Klaviyo przyjmuje UTC.
  • Spójne identyfikatory: Używaj tych samych identyfikatorów profilu (email, phone, external_id itd.) w tabelach importu, aby uniknąć duplikatów.
  • Formaty zgód: Podczas synchronizowania danych o zgodzie stosuj te same prawidłowe wartości/formaty co w przypadku przesyłania plików lub przez SFTP.
  • Wydajność: Rozważ użycie kluczy sortowania lub dystrybucji w kolumnie znacznika czasu, aby zapewnić wydajne odczyty przyrostowe.
  • Widoki: Możesz importować z tabel lub widoków, o ile dla użytkownika Klaviyo działa proste SELECT.

Połącz Redshift z Klaviyo

  1. W Klaviyo otwórz lewy pasek boczny i przejdź do Advanced → Syncing.
  2. Kliknij Utwórz synchronizację.
  3. Wybierz Importuj dane z hurtowni danych.
  4. Wybierz Redshift.
  5. Kliknij Połącz z Redshift i wprowadź poniższe szczegóły połączenia:

Pole

Opis

Host

Twój punkt końcowy Redshift (np. example-cluster.abc123.us-east-1.redshift.amazonaws.com)

Port

5439 (lub port niestandardowy)

Baza danych

Baza danych zawierająca klaviyo_tmp oraz klaviyo_import_from_dwh

Nazwa użytkownika / Hasło

Dane logowania użytkownika usługi Klaviyo Service

Po połączeniu Klaviyo przetestuje Twoje dane uwierzytelniające i łączność sieciową. Po weryfikacji możesz tworzyć synchronizacje i wybierać tabele lub widoki z klaviyo_import_from_dwh.

Wskazówki dotyczące rozwiązywania problemów

Test połączenia nie powiódł się

  • Sprawdź, czy reguły zapory sieciowej lub grupy zabezpieczeń umożliwiają adresom IP Klaviyo dotarcie do punktu końcowego Redshift na właściwym porcie.
  • Potwierdź ustawienia SSL oraz to, że używasz prawidłowego punktu końcowego (klaster vs. grupa robocza), regionu i portu.

Tabele się nie wyświetlają

  • Upewnij się, że tabele są w klaviyo_import_from_dwh.
  • Potwierdź, że użytkownik Klaviyo ma USAGE w schemacie oraz SELECT w tabelach lub widokach.

Brak synchronizacji nowych wierszy

  • Sprawdź, czy kolumna ze znacznikiem czasu aktualizuje się przy zmianach w wierszach i używa UTC lub zawiera informacje o strefie czasowej.

Błędy uprawnień w czasie wykonywania

  • Uruchom ponownie weryfikację SQL jako użytkownik Klaviyo.
  • W razie potrzeby ponownie zastosuj uprawnienia lub domyślne przywileje.

Zabezpieczenia i konserwacja

  • Regularnie zmieniaj hasło użytkownika usługi oraz po zmianach kadrowych.
  • Ogranicz użytkownika Klaviyo do dwóch powyższych schematów i przyznaj USAGE tylko tam, gdzie jest to wymagane.
  • Prowadź prosty runbook, w którym dokumentujesz dokładne instrukcje GRANT i zakresy adresów IP, które dodałeś(-aś) do listy dozwolonych.

Najczęściej zadawane pytania

Czy mogę importować z wielu baz danych Redshift?
Tak. Utwórz dwa schematy w każdej bazie danych i połącz obiekty z każdej z nich jako osobne synchronizacje.

Czy mogę używać widoków materializowanych?
Tak. Przyznaj SELECT na widoku zmaterializowanym użytkownikowi Klaviyo.

Załącznik: przykładowy kod DDL dla prostej tabeli importu

auto
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)
Czy ten artykuł był pomocny?
Ten formularz służy tylko do przesyłania opinii na temat artykułów. Dowiedz się, jak skontaktować się z zespołem ds. pomocy.

Dowiedz się od Klaviyo więcej

Społeczność
Nawiązuj kontakty z osobami na podobnych stanowiskach, partnerami oraz ekspertami i ekspertkami Klaviyo – inspirujcie się nawzajem, wymieniajcie spostrzeżeniami i pomagajcie szukać odpowiedzi na nurtujące Was pytania.
Partnerzy
Zatrudnij certyfikowanego eksperta Klaviyo, który pomoże Ci w konkretnym zadaniu lub w ciągłym zarządzaniu marketingiem.
Pomoc

Uzyskaj wsparcie za pośrednictwem konta.

E-mail do zespołu ds. pomocy (konta w bezpłatnym okresie próbnym oraz konta płatne) Całodobowa dostępność

Czat/wirtualna pomoc
Dostępność różni się w–zależności od lokalizacji i typu planu.