Amazon Redshift용 클라우드 데이터 수집
이 페이지에서는 클라우드 데이터 수집(CDI)을 사용하여 Amazon Redshift의 데이터를 Braze로 동기화하는 데 필요한 모든 내용을 다룹니다. Redshift에서 생성해야 하는 리소스, Braze에서 소스를 연결하고 동기화를 생성하는 방법, 데이터 유형별 소스 테이블, Redshift 관련 문제 해결 방법을 확인할 수 있습니다.
설정 개요
- Redshift 인스턴스에서 Braze로 동기화할 테이블 또는 뷰를 설정합니다.
- 지원되는 인증 방법 중 하나로 Braze용 Redshift 사용자를 생성하고, 해당 사용자에게 테이블 액세스 권한을 부여합니다.
- 동기화할 Redshift 테이블에 Braze가 액세스할 수 있도록 허용되어 있는지 확인합니다. Braze는 인터넷을 통해 Redshift에 연결합니다.
- Braze 대시보드에서 새 소스와 동기화를 생성합니다.
- 통합을 검증하고 동기화를 시작합니다.

동기화당 처리되는 행 수는 웨어하우스 성능, 네트워크 지연 시간, 그리고 동기화 쿼리와 일치하는 새 데이터의 양에 따라 달라집니다. 대시보드의 통합 동기화 기록에서 최근 실행의 소요 시간과 행 수를 확인할 수 있습니다.
1단계: 소스 테이블 설정
이 섹션의 단계에서는 PAYLOAD 열이 있는 테이블을 생성합니다. 데이터 정의 단계에서 시각적으로 열을 매핑하거나 SQL로 쿼리를 작성하려는 경우, 기존 테이블이나 뷰를 대신 사용할 수 있습니다. 이 경우 테이블 생성 단계를 건너뛰고, 동기화할 테이블 또는 뷰에 대한 읽기 액세스 권한을 Braze에 부여하세요. 옵션 비교는 데이터 정의 옵션 선택을 참조하세요.
데이터베이스, 스키마, 테이블 이름은 원하는 대로 지정할 수 있지만, 열 이름은 다음 탭의 정의와 일치해야 합니다. 테이블 대신 뷰나 구체화된 뷰를 사용할 수도 있습니다.
필요에 따라 소스 테이블을 보관할 새 데이터베이스와 스키마를 설정합니다.
CREATE DATABASE BRAZE_CLOUD_PRODUCTION;
CREATE SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION;

PAYLOAD 열을 사용하는 경우, 소스 테이블이나 뷰에 다음 탭에 나열되지 않은 열(예: 감사 또는 해싱용 열)을 포함할 수 있습니다. Braze는 이 탭에 설명된 열만 읽으며, 그 밖의 열은 클라우드 데이터 수집 동기화 중에 사용되지 않습니다.
동기화할 데이터 유형에 해당하는 탭을 선택하세요.
사용자 속성, 커스텀 이벤트, 구매 이벤트는 모두 동일한 형태의 소스 테이블을 사용합니다. PAYLOAD의 내용만 다릅니다.
CREATE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.USERS_ATTRIBUTES_SYNC (
updated_at timestamptz default sysdate,
--at least one of external_id, alias_name and alias_label, or braze_id is required
external_id varchar,
--if using user alias, both alias_name and alias_label are required
alias_label varchar,
alias_name varchar,
--braze_id can only be used to update existing users created through the Braze SDK
braze_id varchar,
--If you include both email and phone, email is used as the primary identifier
email varchar,
phone varchar,
payload varchar(max)
)
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 TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC (
updated_at timestamptz default sysdate not null,
--ID of the catalog item to be created or updated
id varchar not null,
--Catalog fields and values that should be added or updated
payload varchar(max),
--The catalog item associated with this ID should be deleted
deleted boolean
)
다른 소스 테이블과 함께 이 테이블에 대한 액세스 권한을 Braze 사용자에게 부여합니다.
GRANT SELECT ON TABLE CATALOGS_SYNC TO braze_user;
통합 이름은 Braze에서 생성한 카탈로그 이름과 정확히 일치해야 합니다.
Braze는 동기화가 실행될 때마다 소스 테이블이 완전히 새로 고쳐지도록 카탈로그 데이터로 뷰를 생성할 것을 권장합니다. 예를 들어 product_id와 세 개의 추가 속성이 있는 제품 데이터 테이블(product_catalog_1)이 있다면 다음과 같이 동기화할 수 있습니다.
CREATE TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC AS
SELECT
CURRENT_TIMESTAMP as UPDATED_AT,
Product_id as id,
JSON_SERIALIZE(
OBJECT (
'attribute_1',
attribute_1,
'attribute_2',
attribute_2,
'attribute_3',
attribute_3)
) as PAYLOAD FROM "product_catalog_1";
Canvas 트리거는 제로카피 개인화를 지원합니다. 대상 Canvas 설정 및 고려 사항은 제로카피 개인화를 참조하세요.
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)
);
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 CANVAS_TRIGGERS_SYNC TO braze_user;
시작하려면 새 동기화를 생성할 때 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 TABLE BRAZE_CLOUD_PRODUCTION.INGESTION.USERS_DELETES (
updated_at timestamptz default sysdate,
--at least one of external_id, alias_name and alias_label, or braze_id is required
external_id varchar,
--if using user alias, both alias_name and alias_label are required
alias_label varchar,
alias_name varchar,
--braze_id can only be used to update existing users created through the Braze SDK
braze_id varchar
);
가져오기 동기화 생성 페이지에서 데이터 유형을 사용자 삭제로 설정하면 통합 실행 중에 적절한 작업이 수행됩니다. 자세한 내용은 클라우드 데이터 수집으로 사용자 삭제를 참조하세요.

고객 프로필 삭제는 되돌릴 수 없습니다. 삭제 작업은 사용자를 영구적으로 제거하므로 데이터에 불일치가 발생할 수 있습니다. 자세한 내용은 고객 프로필 삭제의 영향을 참조하세요.
2단계: 인증 설정
Braze는 데이터베이스 사용자로 Redshift에 연결합니다. 다음 인증 방법 중 하나로 사용자를 생성하세요.
| 방법 | Braze의 인증 방식 | Braze에 입력할 내용 |
|---|---|---|
| Username and password | Braze connects as a Redshift database user with a password. | Username and Password |
Username and password
Braze는 비밀번호가 설정된 데이터베이스 사용자로 Redshift에 연결합니다. Braze용 사용자를 생성하세요.
CREATE USER braze_user PASSWORD '{password}';
사용자 이름과 비밀번호는 소스를 생성할 때 Braze 대시보드에 입력해야 하므로, 그때까지 안전한 곳에 보관하세요.
3단계: 사용자에게 권한 부여
Braze용으로 생성한 사용자에게 소스 테이블에 대한 액세스 권한을 부여합니다.
GRANT USAGE ON SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION to braze_user;
GRANT SELECT ON TABLE USERS_ATTRIBUTES_SYNC TO braze_user;
이는 이 사용자에게 필요한 최소 권한입니다. 여러 CDI 통합을 생성하는 경우 스키마에 권한을 부여하거나 그룹을 사용하여 권한을 관리할 수 있습니다.
4단계: Braze IP에 대한 액세스 허용
방화벽이나 기타 네트워크 정책이 있는 경우, Braze가 Redshift 인스턴스에 네트워크로 액세스할 수 있도록 허용해야 합니다. Redshift URL 엔드포인트의 예시는 “example-cluster.ap-northeast-2.redshift.amazonaws.com”입니다.
알아두어야 할 중요한 사항은 다음과 같습니다.
- Braze가 Redshift의 데이터에 액세스할 수 있도록 보안 그룹을 변경해야 할 수도 있습니다.
- 표에 있는 IP와 Redshift 클러스터를 쿼리하는 데 사용하는 포트(기본값은 5439)에서 인바운드 트래픽을 명시적으로 허용해야 합니다. 인바운드 규칙이 “모두 허용”으로 설정되어 있더라도 이 포트에서 Redshift TCP 연결을 명시적으로 허용해야 합니다.
- Braze가 클러스터에 연결하려면 Redshift 클러스터의 엔드포인트에 공개적으로 액세스할 수 있어야 합니다.
- Redshift 클러스터를 공개적으로 액세스할 수 없도록 하려면 VPC와 EC2 인스턴스를 설정하고 SSH 터널을 사용하여 Redshift 데이터에 액세스할 수 있습니다. 자세한 내용은 AWS 지식 센터 게시물을 참조하세요.
Braze 대시보드의 리전에 해당하는 다음 IP로부터의 액세스를 허용하세요.
인스턴스 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
5단계: Braze 대시보드에서 새 소스 생성
Braze 대시보드에서 데이터 설정 > 클라우드 데이터 수집 > 소스로 이동하여 데이터 소스 추가를 선택한 다음 Amazon Redshift를 선택합니다.
5.1단계: Redshift 연결 정보 및 소스 테이블 추가
소스 이름을 정하고 Redshift 자격 증명과 구성을 입력합니다. 2단계에서 설정한 인증 방법을 선택하고 해당 자격 증명을 입력하세요.
- Username and password: Username and Password
비공개 네트워크 터널을 사용하는 경우 슬라이더를 토글하고 터널 정보를 입력합니다. 그런 다음 다음 단계로 진행하세요.

Amazon Redshift는 데이터베이스 식별자에 추가 문자를 지원하지만, Braze 대시보드의 데이터베이스 이름 필드에는 영문자(A–Z, a–z), 숫자(0–9), 밑줄(_)만 입력할 수 있습니다.
5.2단계: 연결 테스트 및 소스에 연결
다음으로 연결 테스트를 선택합니다. 테스트에 성공하면 나머지 설정을 마무리하고 소스에 연결을 클릭합니다. 연결에 실패하면 문제 해결에 도움이 되는 오류 메시지가 표시됩니다.
6단계: Braze 대시보드에서 새 동기화 생성
데이터 설정 > 클라우드 데이터 수집 > 동기화로 이동하여 데이터 동기화 만들기를 선택합니다.
동기화 세부 정보 구성 및 데이터 정의
동기화 이름을 입력합니다. 그런 다음 활성 소스와 동기화 데이터 유형을 선택합니다. 이어서 시각적 또는 테이블을 선택하고 소스 테이블을 입력하거나, SQL을 선택하여 커스텀 SQL 쿼리를 작성합니다. 마지막으로 미리 보기 및 유효성 검사를 선택합니다.
유효성 검사에 성공하면 데이터 미리 보기가 표시됩니다. 계속하려면 다음: 알림을 선택하세요. 유효성 검사에 실패하면 문제 해결에 도움이 되는 오류 메시지가 표시됩니다.

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

통합이 초안 상태에서 활성 상태로 전환되려면 유효성 검사를 완료해야 합니다. 생성 페이지를 닫아도 통합은 저장되며, 세부 정보 페이지를 다시 방문하여 변경하고 유효성 검사를 할 수 있습니다.
동기화 실행
활성화되면 동기화는 설정 중에 구성한 스케줄에 따라 실행됩니다. 스케줄 외에 동기화를 실행하거나 최신 데이터를 가져오려면 지금 동기화를 선택하세요. 이 실행은 향후 정기적으로 예약된 동기화에 영향을 주지 않습니다. 데이터가 업데이트될 때 동기화를 자동으로 시작하려면 파이프라인에서 동기화 트리거 엔드포인트를 호출하세요.
추가 통합 또는 사용자 설정(선택 사항)
Braze와 여러 통합을 설정할 수 있습니다. 추가 동기화를 생성할 때 동일한 Redshift 계정에 연결하는 경우 기존 자격 증명을 재사용할 수 있습니다.
여러 통합에서 동일한 사용자를 재사용하는 경우, 모든 활성 동기화에서 해당 사용자를 제거해야 Braze 대시보드에서 사용자를 삭제할 수 있습니다.
Redshift를 연결된 소스로 사용
연결된 소스는 Braze로 데이터를 동기화하는 대신 사용할 수 있는 제로카피 방식입니다. Braze는 기본 데이터를 복사하지 않고 Redshift 인스턴스를 직접 쿼리하여 CDI 세그먼트를 구축합니다. 개념, 제한 사항, 비용 영향은 연결된 소스를 참조하세요.
1단계: 사용자 생성 및 권한 부여
2단계: 인증 설정의 방법 중 하나로 Braze용 사용자를 생성합니다. 그런 다음 해당 사용자에게 다음 권한을 부여합니다.
GRANT USAGE ON SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION to braze_user;
GRANT CREATE ON SCHEMA BRAZE_CLOUD_PRODUCTION.INGESTION to braze_user;
GRANT SELECT ON TABLE USERS_ATTRIBUTES_SYNC TO braze_user;
연결된 소스에서 사용할 사용자를 생성합니다. 이 사용자는 CDI 세그먼트 확장에서 사용할 수 있는 테이블 목록을 생성하고, 소스 테이블을 쿼리하여 새 세그먼트를 만드는 데 사용됩니다. 연결된 소스가 생성되면 Braze는 소스 스키마에서 해당 사용자가 사용할 수 있는 모든 테이블의 이름과 설명을 검색합니다. 여러 CDI 통합을 생성하는 경우 스키마에 권한을 부여하거나 그룹을 사용하여 권한을 관리할 수 있습니다.
스키마의 모든 테이블에 대한 액세스 권한을 부여하거나 특정 테이블에만 권한을 부여할 수 있습니다. Braze 역할이 액세스할 수 있는 테이블은 모두 CDI 세그먼트 확장에서 쿼리할 수 있습니다. 새 테이블이 생성되면 해당 테이블에 대한 액세스 권한을 사용자에게 부여하거나, 사용자의 기본 권한을 설정하세요.
Braze에서 세그먼트를 업데이트하기 전에 Braze가 CDI 세그먼트 확장 쿼리 결과로 테이블을 생성할 수 있도록 create table 권한이 필요합니다. Braze는 세그먼트마다 임시 테이블을 생성하며, 이 테이블은 Braze가 세그먼트를 업데이트하는 동안에만 유지됩니다.
네트워크 액세스 설정은 4단계와 동일합니다.
2단계: Braze에서 연결된 소스 생성
데이터 설정 > 클라우드 데이터 수집 > 연결된 소스로 이동하여 데이터 소스 추가를 선택한 다음 Amazon Redshift를 선택합니다.
소스 설정에서 다음을 입력합니다.
- 자격 증명: Redshift 호스트 URL, 포트, 그리고 인증 방법에 해당하는 필드. 다음을 입력합니다: Username and Password.
- 구성: 데이터베이스 및 스키마
필요한 경우 SSH 터널로 연결을 활성화하고 터널 호스트, 터널 포트, 터널 사용자 이름을 입력합니다.
연결된 소스의 이름을 정합니다. 이 이름은 새 CDI 세그먼트 확장을 생성할 때 사용 가능한 소스 목록에 표시됩니다.
이 소스의 최대 실행 시간을 구성합니다. Braze는 최대 실행 시간을 초과하는 쿼리를 자동으로 중단합니다. 허용되는 최대 실행 시간은 60분이며, 실행 시간을 짧게 설정하면 Redshift 계정에서 발생하는 비용을 줄일 수 있습니다. 이 설정은 이 소스를 사용하는 동기화와 CDI 세그먼트 확장을 포함하여 이 소스를 통해 실행되는 쿼리에 적용됩니다.
3단계: Redshift 구성 마무리
자격 증명에서 SSH 터널로 연결을 선택한 경우, 연결 테스트 단계에서 RSA 공개 키를 확인하고 SSH 터널 사용자에게 추가하세요.
사용자에게 키를 추가한 후 Braze에서 연결 테스트를 선택한 다음 완료를 선택합니다. 이제 연결된 소스가 생성되어 CDI 세그먼트 확장에서 사용할 수 있습니다.
Braze에서 여러 연결된 소스를 설정할 수 있지만, 각 소스는 서로 다른 스키마에 연결하도록 구성해야 합니다. 추가 소스를 생성할 때 동일한 Redshift 계정에 연결하는 경우 기존 자격 증명을 재사용할 수 있습니다.
기존 열에서 페이로드 형식 지정
내부적으로 각 속성을 개별 열에 저장하려는 경우, Braze와의 동기화를 채우려면 해당 열을 JSON 문자열로 변환해야 합니다. Redshift에서 다음 쿼리를 사용하여 소스 열을 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,
JSON_SERIALIZE(
OBJECT (
'attribute_1',
attribute_1,
'attribute_2',
attribute_2,
'yet_another_attribute',
attribute_3)
) as PAYLOAD FROM "EXAMPLE_USER_DATA";
더 많은 최적화 가이드는 클라우드 데이터 수집 모범 사례를 참조하세요.
문제 해결
연결 테스트가 느리게 실행됨
연결 테스트는 데이터 웨어하우스에서 실행되므로 웨어하우스 용량을 늘리면 속도가 개선될 수 있습니다. 서버리스 SQL 인스턴스를 사용하면 워밍업 시간이 최소화되고 쿼리 처리량이 향상되지만, 통합 비용이 약간 높아질 수 있습니다.
관계 {table_name}에 대한 권한이 거부됨
이 오류가 발생하면 다음을 수행하세요.
- 해당 사용자에게 스키마에 대한
usage권한을 부여합니다. - 해당 사용자에게 테이블에 대한
select권한을 부여합니다.
연결 생성 오류
이 오류가 발생하면 Redshift 엔드포인트와 포트가 올바른지 확인하세요.
SSH 터널 생성 오류
이 오류가 발생하면 다음을 수행하세요.
- Braze 대시보드의 공개 키가 SSH 터널링에 사용되는 EC2 호스트에 있는지 확인합니다.
- 사용자 이름이 올바른지 확인합니다.
- SSH 터널이 올바른지 확인합니다.
잘못된 스냅샷 식별자
연결 테스트 또는 동기화 설정 중에 Braze가 Invalid snapshot identifier 오류를 반환하면, Redshift가 소스 객체를 쿼리할 때 사용되는 스냅샷 참조를 확인할 수 없다는 의미입니다.
Redshift에서 스냅샷은 클러스터의 특정 시점 백업입니다. 각 스냅샷에는 Redshift가 해당 백업 상태를 참조하는 데 사용하는 고유 식별자가 있습니다. 자세한 내용은 Amazon Redshift 스냅샷 및 백업을 참조하세요.
이 오류는 스냅샷 복사, 복원 또는 복제 관련 작업 중과 같이 Braze가 소스 객체를 검증하는 동안 메타데이터가 변경될 때 발생할 수 있습니다. 자세한 내용은 다른 AWS 리전으로 스냅샷 복사 및 스냅샷에서 클러스터 복원을 참조하세요.
문제를 해결하려면 다음을 수행하세요.
- 클러스터 엔드포인트, 데이터베이스, 스키마, 객체 이름을 포함하여 Braze의 소스 설정을 확인합니다.
- Redshift에서 동일한 쿼리를 직접 실행하여 테이블 또는 뷰를 읽을 수 있고 안정적인지 확인합니다.
- 진행 중인 스냅샷, 복원, 크기 조정 또는 복제 작업이 완료된 후 다시 시도합니다.
- 문제가 지속되면 자주 변경되는 기본 테이블 대신 구체화된 뷰를 쿼리합니다.
구체화된 뷰는 미리 계산된 쿼리 결과를 저장하며 스케줄에 따라 새로 고칠 수 있으므로, CDI 동기화의 읽기 작업을 더 안정적으로 만들 수 있습니다. 자세한 내용은 Amazon Redshift의 구체화된 뷰를 참조하세요.
예시:
CREATE MATERIALIZED VIEW ingestion.users_attributes_mv AS
SELECT updated_at, external_id, alias_label, alias_name, braze_id, email, phone, payload
FROM ingestion.users_attributes_sync;
REFRESH MATERIALIZED VIEW ingestion.users_attributes_mv;
구체화된 뷰를 생성한 후에는 Braze CDI 동기화에서 기본 테이블 대신 구체화된 뷰 이름을 소스 객체로 사용하세요.
SQL 검사를 실행할 위치
CDI 통합에서 사용하는 것과 동일한 테이블 또는 뷰를 대상으로 Redshift SQL 편집기에서 직접 유효성 검사를 실행하세요. Query Editor v2를 사용하세요. 자세한 내용은 Amazon Redshift Query Editor v2 사용을 참조하세요.
관련 페이지
- 필수 열과 페이로드 형식은 테이블 설정을 참조하세요.
- 동기화 일정 설정과 데이터 포인트 효율성은 모범 사례를 참조하세요.
- 동기화 실행 모니터링은 동기화 로그 및 관측 가능성을 참조하세요.
- 모든 소스에 공통된 질문은 FAQ를 참조하세요.