Klaviyo와 BigQuery 연결(Reverse ETL)
Klaviyo 고급 데이터 플랫폼은 Klaviyo의 표준 마케팅 애플리케이션에 포함되어 있지 않으며, 관련 기능에 액세스하려면 구독이 필요합니다. 이 요금제를 구매하는 방법을 알아보려면 결제 가이드를 확인해 주세요.
환경 설정 및 연결
개요: 다음 단계에 따라 Klaviyo를 위해 BigQuery를 준비해 주세요. 필수 스키마(데이터세트/프로젝트 내)를 생성하고, 전용 서비스 계정과 키를 설정하고, 필요한 최소 권한을 할당하고, 구성을 확인한 다음, BigQuery를 Klaviyo에 연결할 거예요.
Klaviyo에서 데이터 웨어하우스 가져오기가 작동하는 방식(스키마 구조, 필수 테이블, 필드 매핑 포함)에 대한 자세한 내용은 Klaviyo에서 데이터 웨어하우스 가져오기가 작동하는 방식을 참조하세요.
1) 필요한 스키마/데이터세트 만들기
BigQuery에서 Klaviyo에 사용할 프로젝트에 데이터세트 2개를 생성하세요.
CREATE SCHEMA `KLAVIYO_IMPORT_FROM_DWH`;
CREATE SCHEMA `KLAVIYO_TMP`; KLAVIYO_IMPORT_FROM_DWH: 이 데이터 세트에서 생성된 테이블과 뷰는 Klaviyo에서 읽기/쓰기가 가능해요.KLAVIYO_TMP: 동기화 작업 중에 사용하는 임시 또는 스테이징 데이터입니다.
2) Klaviyo 서비스 계정 및 키 만들기
Google 서비스 계정을 생성합니다(예: Klaviyo가 이 연동에만 전용으로 사용할 KLAVIYO_DATA_TRANSFER_USER)입니다. 이 계정의 JSON 키를 다운로드하고 안전하게 보관해 주세요.
- GCP Console에서 IAM & 관리자 → 서비스 계정으로 이동해 주세요.
- 새 서비스 계정을 만들거나(Klaviyo 전용으로 설정된 기존 계정을 선택할 수도 있어요).
- Keys 탭에서 JSON 유형의 새 키를 만드세요. 이 키 파일을 안전하게 보관해 주세요. Klaviyo에서 연결을 구성할 때 필요해요.
3) 필수 권한 할당
생성한 두 데이터세트 범위로, 서비스 계정에 다음 역할을 부여해 주세요:
데이터 세트 | 필수 최소 역할 | 설명 |
|---|---|---|
|
| Klaviyo가 임시 테이블, 작업 등을 생성하고 관리할 수 있도록 합니다. |
|
| Klaviyo가 테이블에서 데이터를 읽을 수 있도록 허용해요. |
-- Example commands in GCP CLI (replace placeholders):
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
--member="serviceAccount:KLAVIYO_DATA_TRANSFER_USER@YOUR_PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/bigquery.dataEditor" \
--condition=None \
--dataset="KLAVIYO_TMP"
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
--member="serviceAccount:KLAVIYO_DATA_TRANSFER_USER@YOUR_PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/bigquery.dataViewer" \
--condition=None \
--dataset="KLAVIYO_IMPORT_FROM_DWH" 4) 설정 확인(선택 사항)
4.1 데이터세트가 있는지 확인
SELECT schema_name
FROM `YOUR_PROJECT_ID.INFORMATION_SCHEMA.SCHEMATA`
WHERE schema_name IN ('KLAVIYO_IMPORT_FROM_DWH','KLAVIYO_TMP'); 4.2 서비스 계정 액세스 확인
서비스 계정 키를 사용해 BigQuery CLI 또는 API로 인증하고, 간단한 쿼리를 실행해 보세요:
bq --project_id=YOUR_PROJECT_ID \
--dataset_id=KLAVIYO_IMPORT_FROM_DWH \
query --use_legacy_sql=false \
'SELECT COUNT(*) FROM `YOUR_PROJECT_ID.KLAVIYO_IMPORT_FROM_DWH.some_table` LIMIT 1' 4.3 각 데이터세트에서 권한 확인
SELECT *
FROM `YOUR_PROJECT_ID.KLAVIYO_IMPORT_FROM_DWH.INFORMATION_SCHEMA.OBJECT_PRIVILEGES`
WHERE grantee = 'KLAVIYO_DATA_TRANSFER_USER@YOUR_PROJECT_ID.iam.gserviceaccount.com'; 4.4 선택 사항: 생성/읽기 작업 검증
-- Test create in KLAVIYO_TMP
CREATE TABLE `YOUR_PROJECT_ID.KLAVIYO_TMP.test_permissions` (id INT64);
DROP TABLE `YOUR_PROJECT_ID.KLAVIYO_TMP.test_permissions`;
-- Test select in KLAVIYO_IMPORT_FROM_DWH
SELECT * FROM `YOUR_PROJECT_ID.KLAVIYO_IMPORT_FROM_DWH.some_existing_table` LIMIT 1; 팁: Klaviyo에 제공할 동일한 서비스 계정과 키를 사용해 이러한 확인을 실행하세요. 감사를 위해 결과를 복사본으로 보관하세요.
5) Klaviyo를 BigQuery에 연결
BigQuery 환경이 구성되면 Klaviyo에서 연결을 완료해 주세요.
- Klaviyo에서 왼쪽 사이드바의 고급 → 동기화로 이동하세요.
- 동기화 만들기를 클릭합니다.
- 데이터 웨어하우스에서 데이터 가져오기 또는 내보내기를 선택하세요.
- 데이터 웨어하우스로 BigQuery를 선택하세요.
- BigQuery에 연결을 클릭해 주세요.
메시지가 표시되면 다음 연결 구성 세부 정보를 제공해 주세요.
필드 | 설명 | 위치 |
|---|---|---|
프로젝트 ID | Google Cloud 프로젝트 ID예요. | GCP 콘솔에서 프로젝트 페이지 상단에서 확인할 수 있어요. |
데이터 세트 | Klaviyo 테이블이 포함된 데이터세트(스키마)(예: | 1단계에서 만든 데이터세트를 사용하세요. 연결을 구성할 때 해당 데이터세트를 선택하세요. |
서비스 계정 키(JSON) | 서비스 계정용으로 다운로드한 JSON 키 파일. | 2단계에서 만든 JSON 키 파일의 내용을 업로드하거나 붙여넣으세요. |
연결 후: Klaviyo에서 연결을 검증하고 데이터세트에 대한 액세스를 테스트한 다음, Klaviyo로 데이터를 가져오고 Klaviyo 데이터를 BigQuery로 내보내는 양쪽 모두에 대해 동기화를 구성할 수 있도록 해요.
다음 단계: 성공적으로 연결한 후 Klaviyo에서 첫 번째 가져오기 또는 내보내기 동기화를 생성하고, BigQuery로 또는 BigQuery에서 데이터를 이동하기 시작하세요.