CDI를 사용한 제로 복사 개인화
CDI를 사용하여 제로 복사 개인화를 위한 Canvas 트리거를 동기화하는 방법을 알아보세요. 이 기능은 데이터 저장 솔루션에서 사용자별 정보에 액세스하여 대상 Canvas로 전달합니다. 캔버스 단계에는 Braze 고객 프로필에 저장되지 않는 개인화 필드를 선택적으로 포함할 수 있습니다.
Canvas 트리거 동기화
빠른 시작 단계
Braze CDI에 이미 익숙하다면, Canvas 트리거 동기화 설정은 사용자 데이터 CDI 통합 프로세스와 거의 같습니다. 다만 다음과 같은 차이점이 있습니다.
- 외부 ID 또는 사용자 별칭 식별자만 지원됩니다. 이메일과 전화번호는 지원되는 식별자가 아닙니다.
- 기존 Braze 사용자만 동기화할 수 있습니다. 새 사용자는 생성할 수 없습니다.
payload열 대신properties를 사용합니다. 이 열은 개인화를 위해 Canvas 항목 속성으로 사용할 필드의 JSON 문자열입니다.
시작하려면 새 동기화를 생성할 때 Canvas 트리거 데이터 유형을 선택하세요.
Canvas 트리거 사용
1단계: Canvas 트리거용 데이터 소스 설정
1.1단계: Snowflake에서 소스 테이블 설정
다음 예시의 이름을 그대로 사용하거나 데이터베이스, 스키마, 테이블 이름을 직접 정할 수 있습니다. 테이블 대신 뷰나 구체화된 뷰를 사용해도 됩니다.
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)
);
데이터베이스, 스키마, 테이블 이름은 원하는 대로 지정할 수 있지만, 열 이름은 위의 정의와 일치해야 합니다.
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 문자열이어야 합니다. 행에 속성이 없으면 빈 {} 문자열을 입력하세요.
1.2단계: 자격 증명 설정
역할, 웨어하우스, 사용자를 설정하고 적절한 권한을 부여합니다. 기존 동기화에서 사용하던 자격 증명이 있다면 재사용할 수 있지만, Canvas 트리거 소스 테이블에 대한 액세스 권한도 확장해야 합니다.
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.CANVAS_TRIGGERS_SYNC TO ROLE BRAZE_INGESTION_ROLE;
CREATE WAREHOUSE BRAZE_INGESTION_WAREHOUSE;
GRANT USAGE ON WAREHOUSE BRAZE_INGESTION_WAREHOUSE TO ROLE BRAZE_INGESTION_ROLE;
CREATE USER BRAZE_INGESTION_USER;
GRANT ROLE BRAZE_INGESTION_ROLE TO USER BRAZE_INGESTION_USER;
이 예시의 CREATE USER 문은 RSA 키 페어 인증용입니다. 워크로드 아이덴티티 페더레이션을 사용하는 경우, 위와 같이 역할과 웨어하우스를 생성하고 Snowflake 자격 증명 양식에서 서비스 사용자를 생성하세요. 역할, 웨어하우스, 데이터베이스 권한 부여는 동일하게 유지됩니다. 다음 단계의 네트워크 정책도 그대로 적용됩니다. 실행할 문과 실행 위치는 워크로드 아이덴티티 페더레이션을 위한 Snowflake 구성을 참조하세요.
1.3단계: 네트워크 정책 구성
계정에 네트워크 정책이 있는 경우, CDI 서비스 연결을 활성화하려면 Braze IP를 허용 목록에 추가하세요. IP 목록은 클라우드 데이터 수집을 참조하세요.
1.1단계: Redshift에서 소스 테이블 설정
다음 예시의 이름을 그대로 사용하거나 데이터베이스, 스키마, 테이블 이름을 직접 정할 수 있습니다. 테이블 대신 뷰나 구체화된 뷰를 사용해도 됩니다.
CREATE DATABASE BRAZE_CLOUD_PRODUCTION;
CREATE SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION;
CREATE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CANVAS_TRIGGERS_SYNC (
updated_at timestamptz default sysdate not null,
--at least one of external_id or alias_name and alias_label is required
external_id varchar not null,.
--if using user alias, both alias_name and alias_label are required
alias_label varchar,
alias_name varchar,
properties varchar(max)
);
데이터베이스, 스키마, 테이블 이름은 원하는 대로 지정할 수 있지만, 열 이름은 위의 정의와 일치해야 합니다.
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 문자열이어야 합니다. 행에 속성이 없으면 빈 {} 문자열을 입력하세요.
1.2단계: 자격 증명 설정
역할, 웨어하우스, 사용자를 설정하고 적절한 권한을 부여합니다. 기존 동기화에서 사용하던 자격 증명이 있다면 재사용할 수 있지만, Canvas 트리거 소스 테이블에 대한 액세스 권한도 확장해야 합니다.
CREATE USER braze_user PASSWORD '{password}';
GRANT USAGE ON SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION to braze_user;
GRANT SELECT ON TABLE CANVAS_TRIGGERS_SYNC TO braze_user;
1.3단계: 네트워크 정책 구성
계정에 네트워크 정책이 있는 경우, CDI 서비스 연결을 활성화하려면 Braze IP를 허용 목록에 추가하세요. IP 목록은 클라우드 데이터 수집을 참조하세요.
1.1단계: 소스 테이블용 새 프로젝트 또는 데이터 세트 생성(선택 사항)
CREATE SCHEMA BRAZE-CLOUD-PRODUCTION.INGESTION;
1.2단계: BigQuery에서 소스 테이블 설정
소스 테이블을 생성할 때 다음을 참조하세요.
| 필드 이름 | 유형 | 필수 여부 |
|---|---|---|
UPDATED_AT |
Timestamp | 예 |
PROPERTIES |
JSON | 예 |
EXTERNAL_ID |
STRING | NULLABLE |
ALIAS_NAME |
STRING | NULLABLE |
ALIAS_LABEL |
STRING | NULLABLE |

모든 행이나 사용자에 속성이 필요한 것은 아닙니다. 하지만 속성 값은 유효한 JSON 문자열이어야 합니다. 행에 속성이 없으면 빈 {} 문자열을 입력하세요.
CREATE TABLE `BRAZE-CLOUD-PRODUCTION.INGESTION.CANVAS_TRIGGERS_SYNC`
(
updated_at TIMESTAMP DEFAULT current_timestamp,
--At least one of external_id or alias_name and alias_label is required
external_id STRING,
--If using user alias, both alias_name and alias_label are required
alias_name STRING,
alias_label STRING,
properties JSON
);
1.3단계: 자격 증명 설정
사용자를 생성하고 권한을 부여합니다. 다른 동기화에서 사용하던 자격 증명이 있다면 Canvas 트리거 테이블에 대한 액세스 권한이 있는 한 재사용할 수 있습니다.
| 권한 | 용도 |
|---|---|
| BigQuery Connection User | Braze가 연결할 수 있도록 허용합니다. |
| BigQuery User | Braze가 쿼리를 실행하고, 메타데이터를 읽고, 테이블을 나열할 수 있도록 허용합니다. |
| BigQuery Data Viewer | Braze가 데이터 세트와 콘텐츠를 볼 수 있도록 허용합니다. |
| BigQuery Job User | Braze가 작업을 실행할 수 있도록 허용합니다. |
권한을 부여한 후, Braze가 서비스 계정으로 인증하는 방식을 설정하세요.
워크로드 아이덴티티 페더레이션: Braze 주체를 서비스 계정에 바인딩하므로 키를 생성할 필요가 없습니다. 단계는 워크로드 아이덴티티 페더레이션을 위한 Google Cloud 구성을 참조하세요.
서비스 계정 키: JSON 키를 생성합니다. 방법은 키 생성 및 삭제를 참조하세요. 나중에 Braze 대시보드에 이 키를 업로드합니다.
1.4단계: 네트워크 정책 구성
계정에 네트워크 정책이 있는 경우, CDI 서비스 연결을 활성화하려면 Braze IP를 허용 목록에 추가하세요. IP 목록은 클라우드 데이터 수집을 참조하세요.
1.1단계: 소스 테이블용 카탈로그 또는 스키마 생성
CREATE SCHEMA BRAZE-CLOUD-PRODUCTION.INGESTION;
1.2단계: Databricks에서 소스 테이블 설정
소스 테이블을 생성할 때 다음을 참조하세요.
| 필드 이름 | 유형 | 필수 |
|---|---|---|
UPDATED_AT |
Timestamp | 예 |
PROPERTIES |
JSON | 예 |
EXTERNAL_ID |
STRING | NULLABLE |
ALIAS_NAME |
STRING | NULLABLE |
ALIAS_LABEL |
STRING | NULLABLE |
스키마와 테이블 이름은 원하는 대로 지정할 수 있지만, 열 이름은 위의 정의와 일치해야 합니다.
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 문자열이어야 합니다. 행에 속성이 없으면 빈 {} 문자열을 입력하세요.
CREATE TABLE `BRAZE-CLOUD-PRODUCTION.INGESTION.USERS_ATTRIBUTES_SYNC`
(
updated_at TIMESTAMP DEFAULT current_timestamp(),
--At least one of external_id or alias_name and alias_label is required
external_id STRING,
--If using user alias, both alias_name and alias_label are required
alias_name STRING,
alias_label STRING,
properties STRING, STRUCT, or MAP
);
1.3단계: 자격 증명 설정
OAuth 머신 투 머신(M2M) 자격 증명을 사용하는 서비스 주체(권장) 또는 개인 액세스 토큰을 생성합니다. 다른 동기화에서 사용하던 자격 증명이 있다면 Canvas 트리거 테이블에 대한 액세스 권한이 있는 한 재사용할 수 있습니다.
OAuth M2M: 서비스 주체를 생성하고, 클라이언트 시크릿을 생성한 다음, 서비스 주체에 SQL 웨어하우스에 대한 Can use 권한과 Canvas 트리거 테이블에 대한 SELECT 권한을 부여합니다. 단계는 Braze용 자격 증명 생성을 참조하세요.
개인 액세스 토큰:
- 사용자 이름을 선택한 다음 User Settings를 선택합니다.
- Access tokens 탭에서 Generate new token을 선택합니다.
- “Braze CDI”와 같이 토큰을 식별할 수 있는 코멘트를 추가합니다.
- 만료 없이 사용하려면 Lifetime (days)를 비워 두고 Generate를 선택합니다.
- Braze 대시보드에서 사용할 수 있도록 토큰을 복사하여 안전하게 저장합니다.
1.4단계: 네트워크 정책 구성
계정에 네트워크 정책이 있는 경우, CDI 서비스 연결을 활성화하려면 Braze IP를 허용 목록에 추가하세요. IP 목록은 클라우드 데이터 수집을 참조하세요.
1.1단계: Fabric에서 소스 테이블 설정
CREATE OR ALTER TABLE [warehouse].[schema].[CDI_table_name]
(
UPDATED_AT DATETIME2(6) NOT NULL,
PROPERTIES VARCHAR NOT NULL,
--at least one of external_id or alias_name and alias_label is required
EXTERNAL_ID VARCHAR,
--if using user alias, both alias_name and alias_label are required
ALIAS_NAME VARCHAR,
ALIAS_LABEL VARCHAR
)
GO
1.2단계: 자격 증명 설정
서비스 주체를 생성하고 권한을 부여합니다. 다른 동기화에서 사용하던 자격 증명이 있다면 재사용할 수 있습니다. 단, 계정 테이블에 대한 액세스 권한이 있는지 확인하세요.
1.3단계: 네트워크 정책 구성
계정에 네트워크 정책이 있는 경우, CDI 서비스 연결을 활성화하려면 Braze IP를 허용 목록에 추가하세요. IP 목록은 클라우드 데이터 수집을 참조하세요.
파일 스토리지에서 Canvas 트리거를 동기화하려면 다음 필드가 포함된 소스 파일을 생성하세요.
| 필드 | 필수 | 설명 |
|---|---|---|
EXTERNAL_ID |
예, external_id 또는 alias_name과 alias_label 중 하나 |
업데이트할 사용자를 식별합니다. Braze에서 사용하는 external_id 값과 일치해야 합니다. |
ALIAS_NAME 및 ALIAS_LABEL |
예, external_id 또는 alias_name과 alias_label 중 하나 |
이 두 열은 사용자 별칭 객체를 생성합니다. alias_name은 고유 식별자여야 하며, alias_label은 별칭 유형을 지정합니다. 사용자는 레이블이 다른 여러 별칭을 가질 수 있지만, alias_label당 alias_name은 하나만 가질 수 있습니다. |
PROPERTIES |
예 | Canvas에서 개인화 속성으로 사용할 수 있게 할 필드의 JSON 문자열입니다. 사용자별 정보를 포함해야 합니다. |

파일 이름은 AWS 규칙을 따르고 고유해야 합니다. 고유성을 확보하려면 타임스탬프를 추가하세요. Amazon S3 동기화에 대한 자세한 내용은 파일 스토리지 통합을 참조하세요.
2단계: 대상 Canvas 구성
- Canvas 트리거용 대상 Canvas를 설정합니다. 새 API 트리거 Canvas를 생성하거나 기존 Canvas를 선택하세요. API 트리거 전달 스케줄 유형으로 Canvas를 생성하는 방법은 항목 스케줄 유형을 참조하세요.
- API 트리거 전달 스케줄 유형을 선택한 후 Canvas 설정을 계속 진행하여 Canvas를 구축합니다. Canvases는 간단한 단일 메시지 발송부터 여러 단계로 구성된 복잡한 고객 워크플로까지 다양하게 구성할 수 있습니다.
- Canvas 단계 내에서 Canvas 항목 속성을 사용하여 소스 테이블에서 동기화할 속성 필드로 메시지를 개인화합니다.
- 예를 들어 1단계에서
account_balance속성 필드를 구성했다면, 다음 Liquid 템플릿을 사용하여 메시지를 개인화할 수 있습니다:\{\{canvas_entry_properties.\$\{account_balance\}\}\}.
- 예를 들어 1단계에서
- Canvas 구축이 끝나면 Canvas를 실행하고 3단계로 진행합니다.
3단계: 제로 카피 동기화 생성
소스 설정을 완료하고 대상 Canvas를 실행했다면 새 데이터 동기화를 생성합니다.
- Braze에서 데이터 설정 > 클라우드 데이터 수집으로 이동합니다.
- 연결 세부 정보를 입력(또는 기존 자격 증명을 재사용)하고 1단계의 소스 테이블을 지정하여 연결을 설정합니다.
- 통합 이름을 입력합니다.
- Canvas 트리거 데이터 유형을 선택합니다.
- 대상 Canvas를 선택합니다(2단계에서 구성).
- 동기화 빈도를 선택합니다.
- 알림 환경설정을 지정합니다.
- 연결 테스트를 선택하여 모든 것이 예상대로 작동하는지 확인합니다. RSA 키 페어로 Snowflake에 연결하는 경우, 먼저 대시보드에 표시된 공개 키를 Braze용으로 생성한 사용자에게 추가하세요. 이 단계를 완료하려면 Snowflake에서 SECURITYADMIN 이상의 액세스 권한이 필요합니다. 워크로드 아이덴티티 페더레이션으로 연결하는 경우, 연결을 테스트하기 전에 자격 증명 양식의 문을 실행하세요. 워크로드 아이덴티티 페더레이션을 위한 Snowflake 구성을 참조하세요.
-
동기화를 저장하여 Canvas 트리거 동기화를 시작합니다.
- 연결 테스트를 선택하여 모든 것이 예상대로 작동하는지 확인합니다. RSA 키 페어로 Snowflake에 연결하는 경우, 먼저 대시보드에 표시된 공개 키를 Braze용으로 생성한 사용자에게 추가하세요. 이 단계를 완료하려면 Snowflake에서
SECURITYADMIN이상의 액세스 권한이 필요합니다. 워크로드 아이덴티티 페더레이션으로 연결하는 경우, 연결을 테스트하기 전에 자격 증명 양식의 문을 실행하세요. 워크로드 아이덴티티 페더레이션을 위한 Snowflake 구성을 참조하세요.

예상치 못한 발송을 방지하려면 동기화 동작부터 Canvas 설정까지 전체 구성을 검토하세요. 사용량 제한조치, 최대 게재빈도 설정, 세분화 필터와 같은 Canvas 설정으로 메시지 전달을 더욱 세밀하게 조정할 수 있습니다.
프로덕션 사용 사례를 구현하기 전에 소규모 또는 테스트 오디언스를 대상으로 시험 실행을 진행하는 것을 권장합니다.
고려 사항
CDI Canvas 트리거는 /canvas/trigger/send에 대한 REST API 사용량 제한을 사용합니다. CDI Canvas 트리거와 REST API 통합에서 이 엔드포인트를 동시에 사용하는 경우, 합산된 사용량이 사용량 제한에 반영됩니다.
각 동기화 실행은 시간당 최대 약 375만 명의 속도로 사용자를 해당 대상 Canvas에 진입시킵니다. 다음과 같은 경우 소스에서 Canvas 진입까지 시간이 더 오래 걸릴 수 있습니다.
- 동기화 실행당 375만 명 이상의 사용자를 동기화하는 경우
- REST API의
/canvas/trigger/send사용량 제한을 이미 최대로 사용하고 있는 상태에서 CDI Canvas 트리거를 사용하는 경우
메시지 보관이 활성화된 경우 제로 카피 CDI와 관련하여 다음 사항을 고려하세요.
- 테이블 결과는 처리 중에 Braze에 임시로 저장됩니다. 또한 정확히 무엇이 동기화되었는지 확인할 수 있도록 30일 동안 Snowflake로 내보내집니다.
- 보관된 메시지는 Braze 내 어디에도 저장되지 않습니다. 사본은 구성한 스토리지에만 전송되어 저장됩니다.
- Canvas 트리거와 함께 제로 카피 CDI를 사용하는 경우, Braze는 데이터 웨어하우스의 쿼리 결과 백업을 저장하지 않으며 어떤 데이터도 고객 프로필에 복사되지 않습니다.
- Canvas 컨텍스트 속성은 내부 시스템에 최대 30일 동안 기록될 수 있습니다.