Snowflake용 클라우드 데이터 수집
이 페이지에서는 클라우드 데이터 수집(CDI)을 사용하여 Snowflake에서 Braze로 데이터를 동기화하는 데 필요한 모든 내용을 다룹니다. Snowflake에서 생성할 리소스, Braze에서 소스를 연결하고 동기화를 생성하는 방법, 각 데이터 유형의 소스 테이블, Snowflake 관련 문제 해결 방법을 알아보세요.
설정 개요
- Snowflake 인스턴스에서 Braze로 동기화할 테이블 또는 뷰를 설정합니다.
- Braze용 역할과 웨어하우스를 설정합니다.
- 지원되는 인증 방법 중 하나를 사용하여 Braze용 Snowflake 사용자를 설정합니다.
- Braze 대시보드에서 새 Snowflake 소스를 생성하고 Snowflake에서 인증을 완료합니다.
- Braze 대시보드에서 동기화를 생성하고 통합의 유효성을 검사한 다음 동기화를 시작합니다.

Snowflake 빠른 시작 가이드에서는 샘플 코드를 제공하고, Snowflake Streams와 CDI를 사용하여 Braze로 데이터를 동기화하는 자동화된 파이프라인을 만드는 데 필요한 단계를 안내합니다.
1단계: 소스 테이블 설정하기
이 섹션의 단계에서는 PAYLOAD 열이 있는 테이블을 생성합니다. 데이터 정의 단계에서 비주얼로 열을 매핑하거나 SQL로 쿼리를 작성할 계획이라면 기존 테이블이나 뷰를 대신 사용할 수 있습니다. 테이블 생성 단계를 건너뛰고, 동기화할 테이블이나 뷰에 대한 읽기 권한을 Braze에 부여하세요. 옵션 비교는 데이터 정의 옵션 선택하기를 참조하세요.
데이터베이스, 스키마, 테이블의 이름은 원하는 대로 지정할 수 있지만, 열 이름은 다음 탭의 정의와 일치해야 합니다. 테이블 대신 뷰나 구체화된 뷰를 사용할 수도 있습니다.

PAYLOAD 열을 사용하는 경우, 소스 테이블이나 뷰에 다음 탭에 나열되지 않은 열(예: 감사 또는 해싱용 열)을 포함할 수 있습니다. Braze는 이 탭에 설명된 열만 읽으며, 그 밖의 열은 클라우드 데이터 수집 동기화 중에 사용되지 않습니다.
동기화할 데이터 유형에 해당하는 탭을 선택하세요.
사용자 속성, 커스텀 이벤트, 구매 이벤트는 모두 동일한 형태의 소스 테이블을 사용합니다. PAYLOAD의 내용만 다릅니다.
CREATE DATABASE BRAZE_CLOUD_PRODUCTION;
CREATE SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION;
CREATE OR REPLACE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.USERS_ATTRIBUTES_SYNC (
UPDATED_AT TIMESTAMP_NTZ(9) NOT NULL DEFAULT SYSDATE(),
--at least one of external_id, alias_name and alias_label, email, phone, or braze_id is required
EXTERNAL_ID VARCHAR(16777216),
--if using user alias, both alias_name and alias_label are required
ALIAS_LABEL VARCHAR(16777216),
ALIAS_NAME VARCHAR(16777216),
--braze_id can only be used to update existing users created through the Braze SDK
BRAZE_ID VARCHAR(16777216),
--If you include both email and phone, email is used as the primary identifier
EMAIL VARCHAR(16777216),
PHONE VARCHAR(16777216),
PAYLOAD VARCHAR(16777216) NOT NULL
);
UPDATED_AT- 이 행이 테이블에서 업데이트되거나 테이블에 추가된 시간입니다. Braze는UPDATED_AT이 마지막으로 동기화된 값보다 늦은 행을 동기화합니다. 경계 타임스탬프와 정확히 일치하는 행은 같은 타임스탬프를 가진 새 행이 있으면 다시 동기화될 수 있습니다.- 사용자 식별자 열 - 테이블에는 하나 이상의 사용자 식별자 열이 포함될 수 있습니다. 각 행에는 식별자가 하나만 포함되어야 합니다(
external_id,alias_name과alias_label의 조합,braze_id,email또는phone중 하나). 소스 테이블에는 식별자 유형 한 가지, 두 가지, 세 가지, 네 가지 또는 다섯 가지 모두에 대한 열이 있을 수 있습니다.EXTERNAL_ID- 업데이트하려는 사용자를 식별합니다. 이 값은 Braze에서 사용하는external_id값과 일치해야 합니다.ALIAS_NAME및ALIAS_LABEL- 이 두 열은 사용자 별칭 객체를 생성합니다.alias_name은 고유 식별자여야 하며,alias_label은 별칭의 유형을 지정합니다. 사용자는 레이블이 서로 다른 여러 별칭을 가질 수 있지만,alias_label당alias_name은 하나만 가질 수 있습니다.BRAZE_ID- Braze 사용자 식별자입니다. 이 값은 Braze SDK에서 생성되며, Cloud Data Ingestion을 통해 Braze ID로 새 사용자를 생성할 수는 없습니다. 새 사용자를 생성하려면 외부 사용자 ID 또는 사용자 별칭을 지정하세요.EMAIL- 사용자의 이메일 주소입니다. 동일한 이메일 주소를 가진 프로필이 여러 개 있으면 가장 최근에 업데이트된 프로필이 우선적으로 업데이트됩니다. 이메일과 전화번호를 모두 포함하면 이메일이 기본 식별자로 사용됩니다.PHONE- 사용자의 전화번호입니다. 동일한 전화번호를 가진 프로필이 여러 개 있으면 가장 최근에 업데이트된 프로필이 우선적으로 업데이트됩니다.
PAYLOAD- Braze의 사용자에게 동기화할 필드로 구성된 JSON 문자열입니다.
속성 동기화의 경우 PAYLOAD는 사용자 속성 객체 형식을 따릅니다. 중첩 커스텀 속성, 객체 배열, 구독 그룹 상태를 포함할 수 있습니다. 페이로드 예시는 테이블 설정을 참조하세요.
커스텀 이벤트는 사용자 속성과 동일한 소스 테이블을 사용합니다. User attributes 탭에 표시된 테이블을 생성한 다음, PAYLOAD를 이벤트 객체로 채우세요.
이벤트를 동기화하려면 이벤트 이름이 필요합니다. time 필드는 ISO 8601 문자열 또는 yyyy-MM-dd'T'HH:mm:ss:SSSZ 형식으로 지정하세요. time 필드가 없으면 Braze는 UPDATED_AT 열 값을 이벤트 시간으로 사용합니다. app_id 및 properties를 포함한 기타 필드는 선택 사항입니다.
한 행당 하나의 이벤트를 동기화할 수 있습니다.
{
"app_id" : "your-app-id",
"name" : "rented_movie",
"time" : "2013-07-16T19:20:45+01:00",
"properties": {
"movie": "The Sad Egg",
"director": "Alex Smith"
}
}
구매 이벤트는 사용자 속성과 동일한 소스 테이블을 사용합니다. User attributes 탭에 표시된 테이블을 생성한 다음, PAYLOAD를 구매 객체로 채우세요.
구매 이벤트를 동기화하려면 product_id, currency, price가 필요합니다. 선택 사항인 time 필드는 ISO 8601 문자열 또는 yyyy-MM-dd'T'HH:mm:ss:SSSZ 형식으로 지정하세요. time 필드가 없으면 Braze는 UPDATED_AT 열 값을 이벤트 시간으로 사용합니다. app_id, quantity, properties를 포함한 기타 필드는 선택 사항입니다.
한 행당 하나의 구매 이벤트를 동기화할 수 있습니다.
{
"app_id" : "11ae5b4b-2445-4440-a04f-bf537764c9ad",
"product_id" : "Completed Order",
"currency" : "USD",
"price" : 219.98,
"time" : "2013-07-16T19:20:30+01:00",
"properties" : {
"products" : [ { "name": "Monitor", "category": "Gaming", "product_amount": 19.99 },
{ "name": "Gaming Keyboard", "category": "Gaming ", "product_amount": 199.99 }
]
}
}
카탈로그 동기화를 생성하기 전에 Braze에서 대상 카탈로그를 생성하세요. 전체 카탈로그 워크플로는 카탈로그 데이터 동기화 및 삭제를 참조하세요.
CREATE DATABASE BRAZE_CLOUD_PRODUCTION;
CREATE SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION;
CREATE OR REPLACE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC (
UPDATED_AT TIMESTAMP_NTZ(9) NOT NULL DEFAULT SYSDATE(),
--ID of the catalog item to be created or updated
ID VARCHAR(16777216) NOT NULL,
--Catalog fields and values that should be added or updated
PAYLOAD VARCHAR(16777216) NOT NULL,
--The catalog item associated with this ID should be deleted
DELETED BOOLEAN
);
다른 소스 테이블과 함께 이 테이블에 대한 액세스 권한을 Braze 역할에 부여하세요.
GRANT SELECT ON TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC TO ROLE BRAZE_INGESTION_ROLE;
통합의 이름은 Braze에서 생성한 카탈로그의 이름과 정확히 일치해야 합니다.
Braze는 동기화가 실행될 때마다 소스 테이블이 완전히 새로 고쳐지도록 카탈로그 데이터에서 뷰를 생성할 것을 권장합니다. 예를 들어 product_id와 세 개의 추가 속성이 있는 제품 데이터 테이블(product_catalog_1)이 있다면 다음 뷰를 동기화할 수 있습니다.
CREATE VIEW BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC AS
SELECT
CURRENT_TIMESTAMP as UPDATED_AT,
product_id as id,
TO_JSON(
OBJECT_CONSTRUCT (
'attribute_1',
attribute_1,
'attribute_2',
attribute_2,
'attribute_3',
attribute_3)
)as PAYLOAD FROM "product_catalog_1";
Canvas 트리거는 제로 카피 개인화를 지원합니다. 대상 Canvas 설정 및 고려 사항은 제로 카피 개인화를 참조하세요.
CREATE DATABASE BRAZE_CLOUD_PRODUCTION;
CREATE SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION;
CREATE OR REPLACE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CANVAS_TRIGGERS_SYNC (
UPDATED_AT TIMESTAMP_NTZ(9) NOT NULL DEFAULT SYSDATE(),
--at least one of external_id or alias_name and alias_label is required
EXTERNAL_ID VARCHAR(16777216),
--if using user alias, both alias_name and alias_label are required
ALIAS_LABEL VARCHAR(16777216),
ALIAS_NAME VARCHAR(16777216),
PROPERTIES VARCHAR(16777216)
);
Canvas 트리거 동기화는 다른 사용자 데이터 동기화와 세 가지 면에서 다릅니다.
- 외부 ID 또는 사용자 별칭 식별자만 지원됩니다. 이메일과 전화번호는 식별자로 지원되지 않습니다.
- 기존 Braze 사용자만 동기화할 수 있습니다. 새 사용자는 생성할 수 없습니다.
PROPERTIES가PAYLOAD열을 대체합니다. 이 열은 개인화를 위해 Canvas 항목 속성으로 사용하려는 필드를 담은 JSON 문자열입니다.
Canvas 트리거 테이블에는 다음 열이 필요합니다.
UPDATED_AT- 이 행이 업데이트되거나 테이블에 추가된 시간입니다. Braze는UPDATED_AT이 마지막으로 동기화된 값보다 이후인 행을 동기화합니다. 경계 타임스탬프와 정확히 일치하는 행은 같은 타임스탬프를 가진 새 행이 있으면 다시 동기화될 수 있습니다.- 사용자 식별자 열로
EXTERNAL_ID또는ALIAS_NAME과ALIAS_LABEL중 하나가 필요합니다. 이 열은 Canvas 메시징을 트리거할 대상 사용자를 식별합니다.EXTERNAL_ID- Canvas에 진입시킬 사용자를 식별합니다. 이 값은 Braze에서 사용하는external_id값과 일치해야 합니다.ALIAS_NAME및ALIAS_LABEL- 이 두 열로 사용자 별칭 객체를 생성합니다.alias_name은 고유 식별자여야 하며,alias_label은 별칭 유형을 지정합니다. 사용자는 레이블이 서로 다른 여러 별칭을 가질 수 있지만,alias_label당alias_name은 하나만 가질 수 있습니다.
PROPERTIES- Canvas에서 개인화 속성으로 사용할 수 있게 할 필드를 담은 JSON 문자열입니다. 사용자별 정보가 포함되어야 합니다.

모든 행이나 사용자에게 속성이 필요한 것은 아닙니다. 다만 속성 값은 유효한 JSON 문자열이어야 합니다. 행에 속성이 없으면 빈 {} 문자열을 입력하세요.
이 테이블에 대한 액세스 권한을 Braze 역할에 부여하세요.
GRANT SELECT ON TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CANVAS_TRIGGERS_SYNC TO ROLE BRAZE_INGESTION_ROLE;
시작하려면 새 동기화를 생성할 때 Canvas 트리거 데이터 유형을 선택하세요.
사용자 삭제를 위한 소스 테이블에는 하나 이상의 사용자 식별자 유형과 UPDATED_AT 타임스탬프가 포함되어야 합니다. 사용자 삭제 데이터에는 페이로드 열이 지원되지 않습니다.
UPDATED_AT- 이 행이 테이블에 업데이트되거나 추가된 시간입니다. Braze는UPDATED_AT이 마지막으로 동기화된 값보다 이후인 행을 동기화합니다. 새 행이 경계 타임스탬프와 정확히 같은 타임스탬프를 공유하는 경우, 해당 경계 타임스탬프의 행이 다시 동기화될 수 있습니다.- 사용자 식별자 열 - 각 행에는 식별자가 하나만 포함되어야 합니다.
external_id,alias_name과alias_label의 조합,braze_id중 하나를 사용하세요. 소스 테이블에는 한 가지, 두 가지 또는 세 가지 식별자 유형 모두에 대한 열이 포함될 수 있습니다.EXTERNAL_ID- 업데이트하려는 사용자를 식별합니다. Braze에서 사용하는external_id값과 일치해야 합니다.ALIAS_NAME및ALIAS_LABEL- 이 두 열은 사용자 별칭 객체를 생성합니다.alias_name은 고유 식별자여야 하며,alias_label은 별칭 유형을 지정합니다. 사용자는 레이블이 서로 다른 여러 별칭을 가질 수 있지만,alias_label당alias_name은 하나만 가질 수 있습니다.BRAZE_ID- Braze 사용자 식별자입니다. 이 식별자는 Braze SDK에서 생성되며, Cloud Data Ingestion을 통해 Braze ID로 신규 사용자를 생성할 수는 없습니다. 신규 사용자를 생성하려면 외부 사용자 ID 또는 사용자 별칭을 지정하세요.

사용자 삭제용 테이블에는 PAYLOAD 열을 포함하지 마세요. 실수로 사용자가 영구 삭제되는 것을 방지하기 위해, 소스 테이블에 페이로드 열이 있으면 동기화가 실패합니다. 그 외의 열은 포함할 수 있지만 Braze에서 무시됩니다.
CREATE OR REPLACE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.USERS_DELETES (
UPDATED_AT TIMESTAMP_NTZ(9) NOT NULL DEFAULT SYSDATE(),
--at least one of external_id, alias_name and alias_label, or braze_id is required
EXTERNAL_ID VARCHAR(16777216),
--if using user alias, both alias_name and alias_label are required
ALIAS_LABEL VARCHAR(16777216),
ALIAS_NAME VARCHAR(16777216),
--braze_id can only be used to update existing users created through the Braze SDK
BRAZE_ID VARCHAR(16777216)
);
통합 실행 중에 적절한 작업이 수행되도록 가져오기 동기화 생성 페이지에서 데이터 유형을 사용자 삭제로 설정하세요. 자세한 내용은 클라우드 데이터 수집으로 사용자 삭제하기를 참조하세요.

고객 프로필 삭제는 취소할 수 없습니다. 삭제 작업은 사용자를 영구적으로 제거하므로 데이터에 불일치가 발생할 수 있습니다. 자세한 내용은 고객 프로필 삭제의 영향을 참조하세요.
2단계: 역할 및 웨어하우스 설정하기
2.1단계: 역할 및 데이터베이스 권한 설정하기
CREATE ROLE BRAZE_INGESTION_ROLE;
GRANT USAGE ON DATABASE BRAZE_CLOUD_PRODUCTION TO ROLE BRAZE_INGESTION_ROLE;
GRANT USAGE ON SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION TO ROLE BRAZE_INGESTION_ROLE;
GRANT SELECT ON TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.USERS_ATTRIBUTES_SYNC TO ROLE BRAZE_INGESTION_ROLE;
필요에 따라 이름을 변경할 수 있지만, 권한은 앞의 예시와 일치해야 합니다.
2.2단계: 웨어하우스 설정 및 Braze 역할에 액세스 권한 부여하기
CREATE WAREHOUSE BRAZE_INGESTION_WAREHOUSE;
GRANT USAGE ON WAREHOUSE BRAZE_INGESTION_WAREHOUSE TO ROLE BRAZE_INGESTION_ROLE;

웨어하우스에는 auto-resume 플래그가 켜져 있어야 합니다. 그렇지 않은 경우, 쿼리가 실행될 때 Braze가 웨어하우스를 켤 수 있도록 웨어하우스에 대한 추가 OPERATE 권한을 Braze에 부여하세요.
2.3단계: Snowflake 네트워크 정책에서 Braze IP 허용하기(선택 사항)
Snowflake 계정의 구성에 따라 Snowflake 네트워크 정책에서 다음 IP 주소를 허용해야 할 수 있습니다. 이 설정을 활성화하는 방법에 대한 자세한 내용은 네트워크 정책 수정에 관한 Snowflake 설명서를 참조하세요.
인스턴스 US-01, US-02, US-03, US-04, US-05, US-06, US-07의 경우, 관련 IP 주소는 다음과 같습니다.
23.21.118.19134.206.23.17350.16.249.952.4.160.21454.87.8.3454.156.35.25152.54.89.23818.205.178.15
인스턴스 US-08의 경우, 관련 IP 주소는 다음과 같습니다.
52.151.246.5152.170.163.18240.76.166.15740.76.166.17040.76.166.16740.76.166.16140.76.166.15640.76.166.16640.76.166.16040.88.51.7452.154.67.1740.76.166.8040.76.166.8440.76.166.8540.76.166.8140.76.166.7140.76.166.14440.76.166.145
인스턴스 US-10의 경우, 관련 IP 주소는 다음과 같습니다.
100.25.232.16435.168.86.17952.7.44.1173.92.153.1835.172.3.12950.19.162.19
인스턴스 EU-01 및 EU-02의 경우, 관련 IP 주소는 다음과 같습니다.
52.58.142.24252.29.193.12135.158.29.22818.157.135.973.123.166.463.64.27.363.65.88.253.68.144.1883.70.107.88
인스턴스 AU-01의 경우, 관련 IP 주소는 다음과 같습니다.
13.210.1.14513.211.70.15913.238.45.5452.65.73.16754.153.242.23954.206.45.213
인스턴스 ID-01의 경우, 관련 IP 주소는 다음과 같습니다.
108.136.157.246108.137.30.20716.78.128.7116.78.14.13416.78.162.20843.218.73.35
인스턴스 JP-01의 경우, 관련 IP 주소는 다음과 같습니다.
13.159.155.21254.199.221.24113.192.23.1654.250.120.13918.181.114.2323.114.38.100
인스턴스 KR-01의 경우, 관련 IP 주소는 다음과 같습니다.
43.200.215.452.79.67.17552.79.113.603.34.212.9254.116.134.2313.37.197.225
3단계: 인증 설정하기
Braze는 2단계의 역할을 가진 Snowflake 사용자로 Snowflake에 연결합니다. 다음 인증 방법 중 하나로 사용자를 설정하세요.
| 방법 | Braze의 인증 방식 | Braze에 입력할 내용 |
|---|---|---|
| Key pair authentication | Braze generates an RSA key pair and connects as a Snowflake user that has the public key assigned. | Username and Role |
Key pair authentication
키 페어 인증을 사용하면 Braze 대시보드에서 자격 증명을 저장할 때 Braze가 RSA 키 페어를 생성합니다. 생성된 공개 키는 Braze가 연결에 사용하는 Snowflake 사용자에게 할당합니다.
사용자 설정하기
Braze용 사용자를 생성하고 앞서 생성한 역할을 부여합니다.
CREATE USER BRAZE_INGESTION_USER;
GRANT ROLE BRAZE_INGESTION_ROLE TO USER BRAZE_INGESTION_USER;

서로 다른 워크스페이스를 동일한 Snowflake 계정에 연결하는 경우, 통합을 생성하는 각 Braze 워크스페이스마다 고유 사용자를 생성해야 합니다. 하나의 워크스페이스 안에서는 여러 통합에 같은 사용자를 재사용할 수 있지만, 동일한 Snowflake 계정의 사용자가 여러 워크스페이스에 중복되면 통합 생성이 실패합니다.
사용자에게 공개 키 추가하기
이 단계는 Braze 대시보드에서 자격 증명을 입력하고 자격 증명 저장을 선택한 후에 진행하세요. Braze가 키 페어를 생성하고 공개 키를 표시합니다. Braze용으로 생성한 사용자에게 공개 키를 추가합니다.
ALTER USER BRAZE_INGESTION_USER SET RSA_PUBLIC_KEY='MIIBIjANBgkqhkiG9w0BA...';
키를 할당하려면 Snowflake에서 SECURITYADMIN 이상의 액세스 권한이 필요합니다. 자세한 내용은 Snowflake 설명서를 참조하세요.
키를 교체하려면 클라우드 데이터 수집의 데이터 액세스 관리로 이동하여 해당 계정에 대해 새 키 생성을 선택합니다. 그런 다음 새 공개 키를 사용자에게 할당합니다. 여러 통합에서 같은 사용자와 역할을 재사용하는 경우에는 공개 키를 다시 추가할 필요가 없습니다.
4단계: Braze 대시보드에서 새 소스 생성하기
Braze 대시보드에서 데이터 설정 > 클라우드 데이터 수집 > 소스로 이동하여 데이터 소스 추가를 선택한 다음 Snowflake를 선택합니다.
4.1단계: Snowflake 연결 정보 추가하기
소스 이름을 정하고 Snowflake 자격 증명과 구성을 입력한 다음 다음 단계로 진행합니다. 3단계에서 설정한 인증 방법을 선택하고 해당 자격 증명을 입력하세요.
- Key pair authentication: Username and Role
계속하기 전에 Snowflake 계정 로케이터에 입력하는 값을 확인하세요.
Snowflake 계정 로케이터 필드에는 Snowflake 계정 식별자를 입력합니다. myorganization-myaccount와 같이 계정 식별자 값만 입력하세요. https://, .snowflakecomputing.com 또는 경로는 포함하지 마세요.
Snowflake 계정 식별자를 찾는 방법은 다음과 같습니다.
- Snowsight에서 계정 메뉴를 선택합니다.
- View account details를 선택합니다.
- Account identifier 값을 복사합니다.
- Snowflake URL에서 복사하는 경우
.snowflakecomputing.com앞의 값만 사용합니다.
4.2단계: Snowflake에서 인증 완료하기
자격 증명과 구성을 입력한 후 자격 증명 저장을 선택합니다. 키 페어 인증의 경우 Braze가 RSA 키 페어를 생성하고 공개 키를 표시합니다. Snowflake로 돌아가서 Braze용으로 생성한 사용자에게 공개 키를 추가하세요.
5단계: Braze 대시보드에서 새 동기화 생성하기
데이터 설정 > 클라우드 데이터 수집 > 동기화로 이동하여 데이터 동기화 생성을 선택합니다.
동기화 세부 정보 구성 및 데이터 정의하기
동기화 이름을 입력합니다. 그런 다음 활성 소스와 동기화 데이터 유형을 선택합니다. 다음으로 비주얼 또는 테이블을 선택하고 소스 테이블을 입력하거나, SQL을 선택하여 커스텀 SQL 쿼리를 작성합니다. 마지막으로 미리보기 및 유효성 검사를 선택합니다.
유효성 검사에 성공하면 데이터 미리보기가 표시됩니다. 계속하려면 다음: 알림을 선택하세요. 유효성 검사에 실패하면 문제 해결에 도움이 되는 오류 메시지가 표시됩니다.

다음 단계로 진행하려면 동기화의 유효성 검사를 성공적으로 완료해야 합니다. 동기화 생성 페이지를 닫아야 하는 경우 임시 저장을 선택하여 진행 중인 작업을 보관하세요.
알림 기본 설정 추가
동기화 오류 알림을 받을 연락처 이메일을 입력합니다. Braze는 이 연락처 정보를 사용하여 예기치 않은 테이블 액세스 손실과 같은 통합 오류에 대한 알림을 보냅니다.
연락처 이메일로는 테이블 누락, 권한 문제 등 전역 또는 동기화 수준의 오류 알림만 전송됩니다. 행 수준 문제에 대한 알림은 전송되지 않습니다. 전역 오류는 동기화 실행을 막는 연결상의 심각한 문제를 나타냅니다.
이러한 문제에는 다음이 포함될 수 있습니다.
- 연결 문제
- 리소스 부족
- 권한 문제
- 카탈로그 티어의 공간 부족(카탈로그 동기화에만 해당)
스케줄 설정
마지막으로 동기화를 비반복 또는 반복으로 구성합니다.
비반복 동기화는 대시보드에서 지금 동기화를 선택하거나 동기화 트리거 엔드포인트를 호출할 때만 실행됩니다.
반복 동기화는 짧게는 5분마다, 길게는 한 달에 한 번까지 실행할 수 있습니다. 기본적으로 대시보드에서 설정할 수 있는 가장 짧은 간격은 15분이며, 이를 통해 웨어하우스 컴퓨팅 비용과 요청량을 관리할 수 있습니다. 5분 간격으로 동기화하려면 Braze 지원팀 또는 고객 성공 매니저에게 문의하세요. Braze는 반복 동기화를 UTC 기준으로 스케줄링합니다.

통합이 초안 상태에서 활성 상태로 전환되려면 유효성 검사를 성공적으로 완료해야 합니다. 생성 페이지를 닫더라도 통합은 저장되며, 세부 정보 페이지를 다시 방문하여 변경하고 유효성을 검사할 수 있습니다.
동기화 실행하기
동기화가 활성화되면 설정 중에 구성한 스케줄에 따라 실행됩니다. 스케줄 외에 동기화를 실행하거나 최신 데이터를 가져오려면 지금 동기화를 선택하세요. 이 실행은 정기적으로 예약된 향후 동기화에 영향을 주지 않습니다. 데이터가 업데이트될 때 자동으로 동기화를 시작하려면 파이프라인에서 동기화 트리거 엔드포인트를 호출하세요.
추가 통합 또는 사용자 설정하기(선택 사항)
Braze와 여러 통합을 설정할 수 있습니다. 추가 동기화를 생성할 때 Snowflake 계정에 연결하는 경우 기존 자격 증명을 재사용할 수 있습니다.
여러 통합에서 동일한 사용자와 역할을 재사용하는 경우 공개 키를 다시 추가할 필요가 없습니다.
Snowflake를 연결된 소스로 사용하기
연결된 소스는 Braze로 데이터를 동기화하는 방식의 제로 카피 대안입니다. Braze는 기본 데이터를 복사하지 않고 Snowflake 인스턴스를 직접 쿼리하여 CDI Segment를 빌드합니다. 개념, 제한 사항, 비용 영향에 대해서는 연결된 소스를 참조하세요.
1단계: 역할 생성 및 권한 부여하기
연결된 소스에서 사용할 역할을 생성합니다. 이 역할은 CDI 세그먼트 확장에서 사용할 수 있는 테이블 목록을 생성하고, 소스 테이블을 쿼리하여 새 Segment를 만드는 데 사용됩니다. 연결된 소스가 생성되면 Braze는 소스 스키마에서 사용자가 사용할 수 있는 모든 테이블의 이름과 설명을 검색합니다.
스키마의 모든 테이블에 대한 액세스 권한을 부여하거나 특정 테이블에만 권한을 부여할 수 있습니다. Braze 역할이 액세스할 수 있는 모든 테이블은 CDI 세그먼트 확장에서 쿼리할 수 있습니다.
Braze에서 Segment를 업데이트하기 전에 Braze가 CDI 세그먼트 확장 쿼리 결과로 테이블을 생성할 수 있도록 create table 권한이 필요합니다. Braze는 Segment마다 임시 테이블을 생성하며, 이 테이블은 Braze가 Segment를 업데이트하는 동안에만 유지됩니다.
CREATE ROLE BRAZE_INGESTION_ROLE;
GRANT USAGE ON DATABASE BRAZE_CLOUD_PRODUCTION TO ROLE BRAZE_INGESTION_ROLE;
GRANT USAGE ON SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION TO ROLE BRAZE_INGESTION_ROLE;
GRANT CREATE TABLE ON SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION TO ROLE BRAZE_INGESTION_ROLE;
-- grant access to all current and future tables or views in the schema
GRANT SELECT ON ALL TABLES IN SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION TO ROLE BRAZE_INGESTION_ROLE;
GRANT SELECT ON FUTURE TABLES IN SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION TO ROLE BRAZE_INGESTION_ROLE;
-- grant access to specific tables or views in the schema
GRANT SELECT ON TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.USERS_ATTRIBUTES_SYNC TO ROLE BRAZE_INGESTION_ROLE;
웨어하우스 설정은 2.2단계와 같고, 네트워크 정책 설정은 2.3단계와 같습니다. 3단계: 인증 설정하기의 방법 중 하나로 Braze가 연결할 사용자를 설정하세요.
2단계: Braze에서 연결된 소스 생성하기
데이터 설정 > 클라우드 데이터 수집 > 연결된 소스로 이동하여 데이터 소스 추가를 선택한 다음 Snowflake를 선택합니다.
소스 설정에서 다음을 입력합니다.
- 자격 증명: 계정 로케이터 및 인증 방법에 해당하는 필드. 다음을 입력합니다: Username and Role.
- 구성: 웨어하우스, 데이터베이스, 스키마
키 페어 인증의 경우, 새 Snowflake 자격 증명을 생성하는 중이라면 연결을 테스트하기 전에 자격 증명 저장 및 RSA 키 생성을 선택하세요.
연결된 소스의 이름을 정합니다. 이 이름은 새 CDI 세그먼트 확장을 생성할 때 사용 가능한 소스 목록에 표시됩니다.
이 소스의 최대 런타임을 구성합니다. Braze는 최대 런타임을 초과하는 모든 쿼리를 자동으로 중단합니다. 허용되는 최대 런타임은 60분이며, 런타임을 낮추면 Snowflake 계정에서 발생하는 비용을 줄일 수 있습니다. 이 설정은 이 소스를 사용하는 동기화 및 CDI 세그먼트 확장을 포함하여 이 소스를 통해 실행되는 쿼리에 적용됩니다.
키 페어 인증의 경우 연결 테스트 단계에서 RSA 공개 키를 기록해 두세요. Snowflake에서 통합을 완료하는 데 필요합니다.
3단계: Snowflake 구성 마무리하기
키 페어 인증의 경우, 사용자에게 공개 키 추가하기에 설명된 대로 이전 단계에서 기록한 공개 키를 Snowflake의 사용자에게 추가합니다. 이렇게 하면 Braze가 Snowflake에 연결할 수 있습니다.
Snowflake에서 인증을 완료한 후 Braze에서 연결 테스트를 선택한 다음 완료를 선택합니다. 이제 연결된 소스가 생성되어 CDI 세그먼트 확장에서 사용할 준비가 되었습니다.
Braze와 여러 연결된 소스를 설정할 수 있지만, 각 소스는 서로 다른 스키마에 연결하도록 구성해야 합니다. 추가 연결을 생성할 때 동일한 Snowflake 계정에 연결하는 경우 기존 자격 증명을 재사용할 수 있습니다. 여러 통합에서 동일한 사용자와 역할을 재사용하는 경우 공개 키를 다시 추가할 필요가 없습니다.
기존 열에서 페이로드 형식 지정하기
내부적으로 각 속성을 별도의 열에 저장하는 것을 선호하는 경우, Braze와의 동기화를 채우려면 해당 열을 JSON 문자열로 변환해야 합니다. Snowflake에서 다음 쿼리를 사용하여 소스 열을 CDI 필드 형식으로 지정하세요.
CREATE TABLE "EXAMPLE_USER_DATA"
(attribute_1 string,
attribute_2 string,
attribute_3 number,
my_user_id string);
SELECT
CURRENT_TIMESTAMP as UPDATED_AT,
my_user_id as EXTERNAL_ID,
TO_JSON(
OBJECT_CONSTRUCT (
'attribute_1',
attribute_1,
'attribute_2',
attribute_2,
'yet_another_attribute',
attribute_3)
)as PAYLOAD FROM "EXAMPLE_USER_DATA";
속성을 null로 설정하는 대신 완전히 제거하려면 TO_JSON(OBJECT_CONSTRUCT_KEEP_NULL(...))를 사용하세요.
최적화에 대한 자세한 안내는 클라우드 데이터 수집 모범 사례를 참조하세요.
문제 해결
연결 테스트 실행 속도가 느린 경우
연결 테스트는 데이터 웨어하우스에서 실행되므로 웨어하우스 용량을 늘리면 속도가 향상될 수 있습니다. 서버리스 SQL 인스턴스를 사용하면 워밍업 시간이 최소화되고 쿼리 처리량이 향상되지만, 통합 비용이 약간 더 높아질 수 있습니다.
Snowflake 인스턴스 연결 오류: Incoming request with IP is not allowed to access Snowflake
공식 Braze IP를 IP 허용 목록에 추가해 보세요. 자세한 내용은 Snowflake 네트워크 정책에서 Braze IP 허용하기를 참조하세요.
고객 구성으로 인한 SQL 실행 오류: 002003 (42S02): SQL compilation error: does not exist or not authorized
테이블이 존재하지 않으면 테이블을 생성하세요. 테이블이 존재한다면 사용자와 역할에 테이블을 읽을 수 있는 권한이 있는지 확인하세요.
스키마를 사용할 수 없음
이 오류가 발생하면 지정된 사용자 또는 역할에 해당 스키마에 대한 액세스 권한을 부여하세요.
역할을 사용할 수 없음
이 오류가 발생하면 해당 사용자가 지정된 역할을 사용할 수 있도록 허용하세요.
사용자 액세스 비활성화됨
이 오류가 발생하면 해당 사용자가 Snowflake 계정에 액세스할 수 있도록 허용하세요.
현재 키 및 이전 키로 Snowflake 인스턴스 연결 오류
이 오류가 발생하면 사용자가 Braze 대시보드에 표시된 현재 공개 키를 사용하고 있는지 확인하세요. 키를 교체하려면 사용자에게 공개 키 추가하기를 참조하세요.
SQL 검사를 실행할 위치
CDI 통합에서 사용하는 것과 동일한 테이블 또는 뷰를 대상으로 Snowflake SQL 편집기에서 직접 유효성 검사를 실행하세요. Projects > Worksheets로 이동합니다. 자세한 내용은 Snowflake Worksheets를 참조하세요.
관련 페이지
- 필수 열과 페이로드 형식은 테이블 설정을 참조하세요.
- 동기화 일정 설정과 데이터 포인트 효율성은 모범 사례를 참조하세요.
- 동기화 실행 모니터링은 동기화 로그 및 관측 가능성을 참조하세요.
- 모든 소스에 공통된 질문은 FAQ를 참조하세요.