Klaviyo 및 Redshift 연결

read
Last updated at:

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

스크린샷 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에서 데이터 웨어하우스 가져오기 이해를 참조하세요.

필수 스키마 만들기

Redshift가 Klaviyo 에 사용할 데이터베이스에 두 개의 스키마를 생성합니다:

-- Redshift DB 관리자 또는 역할로 실행 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 전용 데이터베이스 사용자를 만듭니다.

-- 자신의 이름과 강력한 비밀번호로 바꾸기
CREATE USER klaviyo_data_transfer_user WITH PASSWORD 'REPLACE_WITH_STRONG_PASSWORD';

서비스 사용자의 보조금을 관리할 역할을 만듭니다:

CREATE ROLE klaviyo_data_transfer_role;
GRANT ROLE klaviyo_data_transfer_role TO klaviyo_data_transfer_user;

사용자 이름과 비밀번호를 안전하게 보관하세요. Klaviyo를 Redshift에 연결할 때 사용하게 됩니다.

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

-- 1) 임시 테이블 허용
GRANT TEMPORARY ON DATABASE your_database TO ROLE klaviyo_data_transfer_role;

-- 2) 스테이징 스키마에 대한 권한 Klaviyo 관리
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) 가져오기 스키마에 대한 읽기 전용 액세스 권한 부여
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;
-- 향후 새 테이블에 대한 액세스 권한을 부여하는 것을 잊지 마세요

-- 3a) 특정 뷰에 SELECT 권한을 부여합니다(필요에 따라 반복)
GRANT SELECT ON VIEW klaviyo_import_from_dwh.예제_보기_이름 TO 역할 klaviyo_data_transfer_role;

(선택 사항) 설정 확인

Klaviyo 사용자로 몇 가지 간단한 검사를 실행하여 보조금이 올바른지 확인합니다.

-- 대상 데이터베이스로 전환
SET search_path TO klaviyo_tmp;

-- 4.1 KLAVIYO_TMP에서 생성/읽기 검증
CREATE TABLE IF NOT EXISTS permission_check (id INT);
INSERT INTO permission_check VALUES (1);
SELECT COUNT(*) FROM permission_check; -- 예상 1
DROP TABLE permission_check;

-- 4.2 가져오기 테이블의 가시성 확인
SET search_path TO klaviyo_import_from_dwh;
SELECT tablename FROM pg_table_def
WHERE schemaname = 'klaviyo_import_from_dwh'
LIMIT 25;

-- 4.3 소스 테이블에서 SELECT 확인 또는 조회
SELECT * FROM klaviyo_import_from_dwh.EXAMPLE_TABLE;

네트워크 액세스

Klaviyo 가 Redshift 엔드포인트에 도달할 수 있어야 합니다.

  • 공용 Redshift 엔드포인트: 허용 목록 Klaviyo의 방화벽 또는 보안 그룹에 있는 고정 IP.
  • 비공개 엔드포인트(예: PrivateLink): 내부 네트워크 경로 및 보안 정책을 통해 연결성을 보장합니다.

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

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

가져오기 테이블 준비(구조 & performance)

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

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

Redshift를 다음에 연결 Klaviyo

  1. Klaviyo 에서 왼쪽 사이드바를 열고 고급 → 동기화로 이동합니다.
  2. 동기화 생성을 클릭합니다.
  3. 데이터 웨어하우스에서 데이터 가져오기를 선택합니다.
  4. Redshift를 선택합니다.
  5. Redshift에 연결을 클릭하고 다음 연결 세부 정보를 입력합니다:
필드 설명
호스트 Redshift 엔드포인트( 예: example-cluster.abc123.us-east-1.redshift.amazonaws.com)
포트 5439(또는 사용자 지정 포트)
데이터베이스 klaviyo_tmpklaviyo_import_from_dwh가포함된 데이터베이스
사용자 이름/비밀번호 Klaviyo 서비스 사용자 자격 증명

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

문제 해결 팁

연결 테스트 실패

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

테이블이 표시되지 않음

  • 테이블이 klaviyo_import_from_dwh에 있는지 확인합니다.
  • Klaviyo 사용자에게 스키마에 USAGE가 있고 테이블 또는 뷰에 SELECT가 있는지 확인합니다.

새 행 동기화 없음

  • 행 변경 시 타임스탬프 열이 업데이트되고 UTC를 사용하거나 표준 시간대 정보를 포함하는지 확인합니다.

런타임 시 권한 오류

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

보안 및 유지 관리

  • 서비스 사용자 비밀번호는 정기적으로 그리고 직원이 바뀔 때마다 교체하세요.
  • Klaviyo 사용자를 위의 두 스키마로 제한하고 필요한 경우에만 사용 권한을 부여하세요.
  • 정확한 GRANT 문과 허용 목록에 포함된 IP 범위를 문서화한 간단한 런북을 보관하세요.

자주 묻는 질문

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

구체화된 뷰를 사용할 수 있나요?
예, 그렇습니다. 구체화된 보기에서 SELECT를 Klaviyo 사용자에게 부여합니다.

부록: 간단한 가져오기 테이블에 대한 DDL 예제

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

-- 삽입/업데이트 시 단조롭게 증가하는 타임스탬프 보장
-- (ETL/ELT를 사용하여 로드 시 삽입_at = GETDATE() 설정)
x
도움이 되었습니까?
0명 중 0명이 도움이 되었다고 했습니다.