Klaviyo 고급 데이터 플랫폼은 Klaviyo의 표준 마케팅 애플리케이션에 포함되어 있지 않으며, 관련 기능에 액세스하려면 구독이 필요합니다. 이 요금제를 구매하는 방법을 알아보려면 결제 가이드를 확인해 주세요.

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

개요

이 가이드는 Redshift 관리자가 Klaviyo에 Amazon Redshift를 준비하고, 필요한 최소 권한을 부여하고, 연결을 완료하여 예약된 일정에 따라 프로필 데이터를 가져올 수 있도록 안내해요. 다음 내용을 알아보세요:

  1. KLAVIYO_TMPKLAVIYO_IMPORT_FROM_DWH 스키마 만들기
  2. Klaviyo용 전용 서비스 사용자를 생성하세요
  3. 최소 권한 원칙에 따라 권한을 부여하세요
  4. (선택 사항) 권한 및 연결 상태를 확인하세요.
  5. Redshift를 Klaviyo에 연결하고 동기화를 생성하기 시작하세요.

데이터 웨어하우스 가져오기 작동 방식(지원되는 객체 및 테이블 구조 모범 사례 포함)에 대한 배경은 Klaviyo에서 데이터 웨어하우스 가져오기 이해하기를 참고해 주세요.

필수 스키마 생성

Klaviyo에서 사용할 Redshift 데이터베이스에 스키마 2개를 생성하세요:

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 – 최종적으로 동기화할 준비가 된 테이블 또는 뷰를 여기에 배치해 주세요. 설정하는 동안 Klaviyo에서 이 스키마의 객체를 나열해 선택할 수 있도록 하므로, 가져올 예정인 테이블만 포함해 주세요.
  • KLAVIYO_TMP ― 동기화 작업 중 임시/스테이징 테이블을 위해 Klaviyo에서만 사용해요. 여기 있는 데이터는 수정하지 마세요. Klaviyo에서 이 스키마를 자동으로 관리하고 정리해요.

Klaviyo 서비스 사용자를 만드세요

강력한 비밀번호를 사용해 Klaviyo 전용 데이터베이스 사용자를 만들고, 비밀번호를 독립적으로 교체할 수 있도록 설정해 주세요.

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

서비스 사용자에 대한 권한 부여를 관리할 역할을 생성하세요:

auto
CREATE ROLE klaviyo_data_transfer_role;
GRANT ROLE klaviyo_data_transfer_role TO klaviyo_data_transfer_user;

사용자 이름과 비밀번호를 안전하게 저장해 두세요. Klaviyo를 Redshift에 연결할 때 사용하게 돼요.

필요한 권한 부여(최소 권한 원칙)

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;

(선택 사항) 설정을 확인하세요

Klaviyo 사용자로 몇 가지 빠른 확인을 실행해 권한 부여가 올바른지 확인하세요.

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;

네트워크 액세스

Klaviyo가 Redshift 엔드포인트에 연결할 수 있어야 해요.

  • 공개 Redshift 엔드포인트: 방화벽 또는 보안 그룹에서 Klaviyo의 고정 IP를 허용 목록에 추가하세요.
  • 프라이빗 엔드포인트(예: PrivateLink): 내부 네트워크 경로와 보안 정책을 통해 연결을 보장하세요.

보안 그룹을 사용하는 경우, Klaviyo의 IP 범위에 대해 Redshift 포트(기본값 5439)에서 인바운드 액세스를 허용하세요:

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

가져오기 테이블을 준비하세요(구조 & 성능).

정확하고 효율적인 증분 동기화를 위해 가져오려는 모든 테이블이 다음 규칙을 따르는지 확인해 주세요.

  • 타임스탬프 열: 행별 생성 또는 마지막 업데이트 타임스탬프(예: inserted_at, updated_at, modified_at)를 포함해 주세요.
  • 단조 업데이트: 행이 변경될 때마다 타임스탬프가 증가해야 해요.
  • 시간대: UTC를 사용하거나 시간대 정보를 포함하세요. 누락된 경우 Klaviyo는 UTC로 간주해요.
  • 일관된 식별자: 중복을 방지하려면 가져오기 테이블 전반에서 동일한 프로필 식별자(email, phone, external_id 등)를 사용하세요.
  • 동의 형식: 동의 데이터를 동기화할 때는 파일 또는 SFTP 업로드에 사용된 것과 동일한 유효한 값/형식을 따르세요.
  • 성과: 증분 읽기를 효율적으로 수행하려면 타임스탬프 열에서 정렬 키 또는 dist 키를 고려해 보세요.
  • 보기: 간단한 SELECT이(가) Klaviyo 사용자에게 작동하기만 하면, 테이블이나 보기에서 가져올 수 있어요.

Redshift를 Klaviyo에 연결하기

  1. Klaviyo에서 왼쪽 사이드바를 열고 고급 → 동기화로 이동합니다.
  2. 동기화 만들기를 클릭합니다.
  3. 데이터 웨어하우스에서 데이터 가져오기를 선택해 주세요.
  4. Redshift를 선택합니다.
  5. Redshift에 연결을 클릭하고 다음 연결 세부 정보를 입력해 주세요:

필드

설명

호스트

Redshift 엔드포인트(예: example-cluster.abc123.us-east-1.redshift.amazonaws.com)

포트

5,439(또는 커스텀 포트)

데이터베이스

klaviyo_tmp 및 이(가) 포함된 데이터베이스 klaviyo_import_from_dwh

사용자 이름/비밀번호

Klaviyo 서비스 사용자 자격 증명

연결한 후 Klaviyo에서 자격 증명과 네트워크 연결을 테스트해요. 확인이 완료되면 동기화를 생성하고 klaviyo_import_from_dwh에서 테이블 또는 뷰를 선택할 수 있어요.

문제 해결 팁

연결 테스트 실패

  • 방화벽 또는 보안 그룹 규칙이 올바른 포트에서 Klaviyo의 IP가 Redshift 엔드포인트에 도달할 수 있도록 허용하는지 확인합니다.
  • SSL 설정과 올바른 엔드포인트(클러스터 vs. 워크그룹), 리전, 포트를 사용하고 있는지 확인해 주세요.

표가 표시되지 않아요.

  • 표가 klaviyo_import_from_dwh에 있는지 확인하세요.
  • Klaviyo 사용자가 스키마에 USAGE을(를) 갖고 테이블 또는 뷰에 SELECT을(를) 갖고 있는지 확인하세요.

동기화되는 새 행이 없습니다.

  • 타임스탬프 열이 행 변경 시 업데이트되며 UTC를 사용하거나 시간대 정보가 포함되어 있는지 확인해 주세요.

런타임 시 권한 오류

  • Klaviyo 사용자로 유효성 검사 SQL을 다시 실행하세요.
  • 필요한 경우 권한 부여 또는 기본 권한을 다시 적용하세요.

보안 및 유지 관리

  • 서비스 사용자 비밀번호는 정기적으로, 그리고 직원 변경 후에 교체해 주세요.
  • Klaviyo 사용자를 위의 두 스키마로 제한하고, 필요한 경우에만 USAGE에 권한을 부여합니다.
  • 정확한 GRANT 문과 허용 목록에 추가한 IP 범위를 문서화한 간단한 런북을 유지하세요.

자주 묻는 질문

여러 Redshift 데이터베이스에서 가져올 수 있나요?
예, 그렇습니다. 각 데이터베이스에 2개의 스키마를 만들고, 각각의 객체를 별도의 동기화로 연결하세요.

구체화된 뷰를 사용할 수 있나요?
예, 그렇습니다. Klaviyo 사용자에게 구체화된 뷰에서 SELECT을(를) 부여해 주세요.

부록: 간단한 가져오기 테이블용 예시 DDL

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)
이 도움말 문서가 유용했나요?
이 형식은 도움말 문서 피드백 용도로만 사용하세요. 지원 팀에 문의하는 방법.

Klaviyo에서 자세히 살펴보기

커뮤니티
동료, 파트너, Klaviyo 전문가와 연결되어 영감을 받고 인사이트를 공유하며, 모든 궁금한 사항에 대해 답을 얻으세요.
파트너
특정 작업을 도와주거나 지속적인 마케팅 관리를 위해 Klaviyo 인증 전문가를 고용하세요.
지원

계정을 통해 지원에 액세스하세요.

이메일 지원 (무료 체험 및 유료 계정) 연중무휴 24시간 사용 가능

채팅/가상 비서
사용 가능 여부는 위치 및 요금제 유형에 따라 다름