SFTP 및 데이터 웨어하우스 동기화를 통해 사용자 지정 개체를 가져옵니다.
사용자 정의 개체 일괄 수집
SFTP와 데이터 웨어하우스 가져오기(DWH)의 두 가지 방법을 사용하여 사용자 정의 개체 레코드 를 일괄적으로 가져올 수 있습니다. 두 가지 방법을 모두 사용하면 원시 레코드를 데이터 소스로 로드한 다음 Klaviyo UI의 사용자 지정 개체 유형에 연결할 수 있습니다.
이 문서에서는 각 방법의 작동 방식, 파일 형식 지정 방법, 가져오기 도중 및 가져오기 후 예상되는 사항에 대해 설명합니다.
시작하기 전에 알아야 할 것
사용자 지정 객체에 익숙해지려면 사용자 지정 객체 시작하기 및 Custom Objects API 개요를 참고하세요.
사용자 정의 개체 기능에는 일괄 수집/동기화를 구성할 때 염두에 두어야 할 몇 가지 부분이 있습니다.
- 사용자 지정 객체 데이터 소스는 유연한 사용자 정의 스키마예요. 데이터 소스 레코드는 데이터 소스의 레코드를 나타내요. 참고: 이러한 항목은 Klaviyo에 유지되므로, 과거에 로드한 데이터 소스 레코드를 기반으로 향후 다양한 스키마/객체를 만들 수 있어요.
- 사용자 정의 개체 자체는 개체 스키마 및 데이터 소스와 개체 간의 매핑 스키마로 구성됩니다.
- 서로 다른 사용자 정의 개체는 동일하거나 서로 다른 필드 매핑을 사용하여 단일 데이터 소스에 매핑할 수 있습니다.
SFTP에서 사용자 정의 개체를 가져오려면 데이터 원본 레코드를 만들 데이터 원본의 ID가 필요합니다. API를 통해 만들거나 새 사용자 지정 개체를 만들 때 웹 UI에서 만들 수 있습니다. 사용자 정의 개체에 대한 데이터 웨어하우스 동기화의 첫 번째 동기화 주기 동안 자동으로 만들 수도 있습니다.
방법 1: SFTP 가져오기
데이터 출처
가져오기로 타겟팅할 커스텀 객체 데이터 소스 ID를 식별하고, 다음과 같이 ID가 포함된 config.json 파일을 생성하세요:
{
"data_source_id": "01KTMWCZ8ZMNZS0HG5HQNX0H6E"
} 디렉터리 구조
SFTP 루트에서 /imports/custom_objects/에 새 폴더를 만드세요. 폴더 이름은 데이터가 처리되는 방식에 영향을 주지 않습니다.
data_source_id이(가) 포함된 config.json 파일을 새 폴더에 복사하세요.
업로드할 데이터 파일을 새 폴더에 넣어 주세요. *.csv 및 *.jsonl 파일이 처리됩니다.
{company_id}/
imports/
profiles/
events/
custom_objects/
pets/ ← User-defined folder
config.json ← Configuration file with data_source_id
pet_records.csv ← CSV file to process
pet_records.jsonl ← JSONL file to process 하위 디렉터리 없이 custom_objects/ 바로 아래에 배치된 파일은 거부돼요. 모든 사용자 지정 개체 가져오기는 이름이 지정된 하위 폴더 안에 있어야 해요.
지원되는 파일 형식
형식 | 확장 프로그램 | 참고 |
|---|---|---|
CSV |
| 열 이름은 데이터 원본 정의와 일치해야 합니다. |
JSONL |
| 줄당 하나의 JSON 개체입니다. 속성 이름은 데이터 원본 정의와 일치해야 합니다. 중첩된 개체와 배열은 그대로 지원되고 저장됩니다. |
레코드에 중첩된 데이터 또는 배열이 포함되어 있는 경우 JSONL을 사용하는 것이 좋습니다.
CSV 서식 지정
- 첫 번째 행은 헤더 행이어야 합니다. 열 이름은 데이터 원본 정의와 일치해야 합니다.
- CSV 셀 내의 중첩 JSON은 큰따옴표로 묶어야 하며 내부 큰따옴표는 큰따옴표 문자로 이스케이프해야 합니다(예:
""). - 빈 셀은 null 값이 아닌 부재 필드로 처리됩니다.
CSV 예시:
subscription_id,product_name,status,start_date
sub_001,Premium Plan,active,2025-01-15
sub_002,Basic Plan,inactive,2024-06-01 JSONL 서식 지정
- 각 줄은 유효한 JSON 객체(
{...})여야 해요. - 개체가 아닌 줄(예: 배열 또는 프리미티브)은 건너뛰고 오류로 계산됩니다.
- 빈 줄은 자동으로 무시됩니다.
- 중첩된 개체와 배열은 통과하여 완전히 저장됩니다.
예시 JSONL은 다음과 같습니다.
{"subscription_id": "sub_001", "product_name": "Premium Plan", "status": "active", "start_date": "2025-01-15"}
{"subscription_id": "sub_002", "product_name": "Basic Plan", "status": "inactive", "start_date": "2024-06-01", "metadata": {"source": "shopify", "tags": ["vip", "annual"]}} 가져오는 동안 발생하는 작업입니다.
- Klaviyo가 하위 디렉터리 경로를 감지하고 리소스 유형이
custom_objects임을 확인합니다. - Klaviyo는 계정의
config.json에data_source_id이(가) 포함된 사용자 지정 객체 데이터 소스가 있는지 확인합니다. - 레코드는 일괄 처리당 최대 500개의 레코드로 일괄 추출되어 처리됩니다.
- 각 배치는 일괄 API에서 사용되는 동일한 파이프라인을 통해 데이터 출처에 기록됩니다.
- 작업이 완료되면 완료 알림(이메일 또는 제품 내)을 받게 됩니다.
오류 처리
- 잘못된 행 (잘못된 형식의 CSV 또는 구문 분석할 수 없는 JSONL 줄)은 건너뛰게 됩니다. 작업에서 파일의 나머지 부분을 계속 처리합니다.
- 완료 알림에는 건너뛴 행 수와 발생한 오류 요약이 포함됩니다.
- 폴더에
.config.json이(가) 없거나 구성의 데이터 소스 ID가 유효하지 않으면, 파일이 처리되지 않아요. 다시 시도하려면, 다른 이름으로 파일을 다시 업로드해야 해요. 기존 파일은 30일 후 삭제돼요.
방법 2: 데이터 웨어하우스 가져오기
개요
Snowflake, Databricks 또는 BigQuery를 사용하는 경우 데이터 웨어하우스 동기화를 구성하여 사용자 지정 개체를 직접 가져올 수 있습니다. 설정 플로우는 프로필 및 이벤트와 동일합니다. 웨어하우스를 연결하고 테이블이나 보기를 선택한 다음 사용자 정의 개체 를 리소스 유형으로 선택합니다.
동기화를 구성하는 중입니다.
- 연동 > 데이터 웨어하우스로 이동하여 웨어하우스 연결을 엽니다.
- 새 가져오기 동기화를 만들거나 기존 가져오기 동기화를 편집하세요.
- 리소스 유형 아래에서 사용자 정의 개체 를 선택합니다.
- 레코드를 라우팅할 데이터 출처를 선택합니다.
- 기존 데이터 출처의 경우: 데이터 웨어하우스 열 이름은 데이터 출처 정의와 일치해야 합니다.
- 아직 데이터 출처가 없는 경우 첫 번째 동기화 실행 시 자동으로 데이터 출처가 생성되고 이름이 "데이터 동기화: {sync_name}"가 됩니다. 이 이름은 원하는 대로 수정할 수 있습니다. 데이터 소스 스키마를 설정하기 위해 하나 이상의 레코드를 가져올 때까지 새 개체를 구성할 수 없다는 점에 유의하세요.
- 동기화를 저장하고 활성화합니다.
동기화 동작
- 레코드는 호출당 최대 500개씩 일괄적으로 처리됩니다.
- 실패한 행은 행 수준 세부 정보(예: 잘못된 형식의 값, 누락된 식별자)와 함께 다운로드 가능한 오류 파일에 기록됩니다.
- 각 동기화 실행은 동기화의 로그 탭에서 볼 수 있는 로그 항목 을 생성하며, 추출, 변환, 로드 진행률 및 모든 오류에 대한 세부 정보가 표시됩니다.
가져온 후: 기존 데이터 출처를 사용하는 경우
하나 이상의 사용자 정의 개체가 이미 해당 데이터 출처로 구성되어 있는 경우, API를 통해 데이터 출처 레코드를 추가한 경우와 마찬가지로 새 데이터 출처 레코드에서 생성됩니다.
아직 해당 데이터 출처를 사용하는 사용자 정의 개체가 없는 경우 새 개체 마법사를 사용하여 새 개체를 만들고 동기화에 사용된 데이터 출처를 선택합니다. 데이터 소스 스키마가 설정되도록 하나 이상의 레코드를 가져왔는지 확인합니다.