콘텐츠로 건너뛰기

Databricks용 클라우드 데이터 수집

이 페이지에서는 클라우드 데이터 수집(CDI)을 사용하여 Databricks에서 Braze로 데이터를 동기화하는 데 필요한 모든 내용을 다룹니다. Databricks에서 생성해야 하는 리소스, Braze에서 소스를 연결하고 동기화를 생성하는 방법, 데이터 유형별 소스 테이블, Databricks 관련 문제 해결 방법을 확인할 수 있습니다.

설정 개요

  1. Databricks 계정에서 Braze로 동기화할 테이블 또는 뷰를 설정합니다.
  2. 지원되는 인증 방법 중 하나로 Braze용 자격 증명을 생성하고, 동기화할 데이터가 포함된 Databricks 카탈로그와 스키마에 대한 액세스를 허용합니다.
  3. Braze 대시보드에서 새 소스와 동기화를 생성합니다.
  4. 통합을 검증하고 동기화를 시작합니다.

1단계: 소스 테이블 설정

이 섹션의 단계에서는 PAYLOAD 열이 있는 테이블을 생성합니다. 데이터 정의 단계에서 시각적으로 열을 매핑하거나 SQL로 쿼리를 작성할 계획이라면, 기존 테이블이나 뷰를 대신 사용할 수 있습니다. 이 경우 테이블 생성 단계를 건너뛰고, 동기화할 테이블 또는 뷰에 대한 읽기 액세스 권한을 Braze에 부여하세요. 옵션 비교는 데이터 정의 옵션 선택을 참조하세요.

스키마와 테이블 이름은 원하는 대로 지정할 수 있지만, 열 이름은 다음 탭의 정의와 일치해야 합니다. 테이블 대신 뷰 또는 구체화된 뷰를 사용할 수도 있습니다.

선택적으로, 소스 테이블을 담을 새 카탈로그나 스키마를 설정할 수 있습니다.

CREATE SCHEMA BRAZE-CLOUD-PRODUCTION.INGESTION;

동기화할 데이터 유형에 해당하는 탭을 선택하세요.

사용자 속성, 커스텀 이벤트, 구매 이벤트는 모두 동일한 형태의 소스 테이블을 사용합니다. PAYLOAD의 내용만 다릅니다.

CREATE TABLE `BRAZE-CLOUD-PRODUCTION.INGESTION.USERS_ATTRIBUTES_SYNC`
(
  updated_at TIMESTAMP DEFAULT current_timestamp(),
  --At least one of external_id, alias_name and alias_label, or braze_id is required
  external_id STRING,
  --If using user alias, both alias_name and alias_label are required
  alias_name STRING,
  alias_label STRING,
  --braze_id can only be used to update existing users created through the Braze SDK
  braze_id STRING,
  --If you include both email and phone, email is used as the primary identifier
  email STRING,
  phone STRING,
  payload STRING, STRUCT, or MAP
);
필드 이름 유형 모드
UPDATED_AT TIMESTAMP REQUIRED
PAYLOAD STRING, STRUCT 또는 MAP REQUIRED
EXTERNAL_ID STRING NULLABLE
ALIAS_NAME STRING NULLABLE
ALIAS_LABEL STRING NULLABLE
BRAZE_ID STRING NULLABLE
EMAIL STRING NULLABLE
PHONE STRING NULLABLE
  • 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의 사용자에게 동기화할 필드의 문자열 또는 구조체입니다.

속성 동기화의 경우 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 TIMESTAMP DEFAULT current_timestamp(),
  id STRING,
  deleted BOOLEAN,
  payload STRING, STRUCT, or MAP
);
필드 이름 유형 모드
UPDATED_AT TIMESTAMP REQUIRED
PAYLOAD STRING, STRUCT 또는 MAP REQUIRED
ID STRING REQUIRED
DELETED BOOLEAN NULLABLE

통합 이름은 Braze에서 생성한 카탈로그 이름과 정확히 일치해야 합니다.

Braze는 동기화가 실행될 때마다 소스 테이블이 완전히 새로 고쳐지도록 카탈로그 데이터로 뷰를 생성할 것을 권장합니다. 예를 들어 product_id와 세 개의 추가 속성이 있는 제품 데이터 테이블(product_catalog_1)이 있다면 다음 뷰를 동기화할 수 있습니다.

CREATE view IF NOT EXISTS BRAZE_CLOUD_PRODUCTION.INGESTION.CATALOGS_SYNC AS (SELECT
    last_updated as UPDATED_AT,
    product_id as ID,
    TO_JSON(
      STRUCT(
      attribute_1,
      attribute_2,
      attribute_3,
      )
    ) as PAYLOAD
  FROM `BRAZE_CLOUD_PRODUCTION.INGESTION.product_catalog_1`);

Canvas 트리거는 제로 카피 개인화를 지원합니다. 대상 Canvas 설정 및 고려 사항은 제로 카피 개인화를 참조하세요.

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 STRING, STRUCT, or MAP
);
필드 이름 유형 필수
UPDATED_AT TIMESTAMP 예
PROPERTIES STRING, STRUCT 또는 MAP 예
EXTERNAL_ID STRING NULLABLE
ALIAS_NAME STRING NULLABLE
ALIAS_LABEL STRING NULLABLE

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 문자열입니다. 사용자별 정보가 포함되어야 합니다.

시작하려면 새 동기화를 생성할 때 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 또는 사용자 별칭을 지정하세요.

다음 필드로 테이블을 생성하세요.

필드 이름 유형 모드
UPDATED_AT TIMESTAMP REQUIRED
EXTERNAL_ID STRING NULLABLE
ALIAS_NAME STRING NULLABLE
ALIAS_LABEL STRING NULLABLE
BRAZE_ID STRING NULLABLE

통합 실행 중에 올바른 작업이 수행되도록 가져오기 동기화 생성 페이지에서 데이터 유형을 사용자 삭제로 설정하세요. 자세한 내용은 클라우드 데이터 수집으로 사용자 삭제를 참조하세요.

2단계: 인증 설정

Braze는 다음 인증 방법 중 하나로 Databricks에 연결할 수 있습니다.

방법 Braze의 인증 방식 Braze에 입력할 내용
OAuth M2M (권장) Braze authenticates as a Databricks service principal using OAuth machine-to-machine (M2M) authentication. Client ID and Client secret
Personal access token Braze authenticates with a token generated in your Databricks workspace. Access token

OAuth M2M

Braze는 OAuth 머신 간(M2M) 인증을 사용하는 서비스 주체로 Databricks 워크스페이스에 연결합니다. Databricks는 클라우드 데이터 수집처럼 사람이 개입하지 않는 연결에 OAuth M2M을 권장합니다. Braze가 사용할 새 서비스 주체를 만들고, 해당 서비스 주체에 SQL 웨어하우스와 소스 테이블에 대한 액세스 권한을 부여하세요. Braze가 연결하려면 다음 정보가 필요합니다.

  • 서비스 주체의 클라이언트 ID(애플리케이션 ID라고도 함)
  • Braze가 인증하는 데 사용할 클라이언트 시크릿

서비스 주체 만들기

  1. Databricks 워크스페이스의 상단 표시줄에서 사용자 이름을 선택한 다음 Settings를 선택합니다.
  2. Identity and access로 이동한 다음 Service principals 옆의 Manage를 선택합니다.
  3. Add service principal > Add new를 선택합니다.
  4. “Braze CDI”처럼 서비스 주체를 쉽게 식별할 수 있는 이름을 입력한 다음 Add를 선택합니다.
  5. 생성한 서비스 주체를 선택합니다. Configurations 탭에서 Databricks SQL access가 선택되어 있는지 확인합니다.

클라이언트 시크릿 생성하기

  1. 서비스 주체 페이지에서 Secrets 탭을 선택한 다음 Generate secret을 선택합니다.
  2. 시크릿의 유효 기간을 일 단위로 입력합니다. Databricks에서 허용하는 최대 유효 기간은 730일입니다.
  3. Generate를 선택합니다.
  4. Secret 및 Client ID 값을 복사한 다음 Done을 선택합니다.

자격 증명 생성 단계에서 Braze 대시보드에 입력할 때까지 클라이언트 ID와 시크릿을 안전한 곳에 보관하세요. Databricks는 시크릿을 한 번만 표시합니다.

SQL 웨어하우스에 대한 액세스 권한 부여하기

Braze는 SQL 웨어하우스에서 쿼리를 실행할 수 있는 권한이 필요하지만, 워크스페이스 관리자 액세스 권한은 필요하지 않습니다.

  1. 사이드바에서 SQL Warehouses를 선택한 다음 Braze가 사용할 웨어하우스를 선택합니다.
  2. Permissions를 선택합니다.
  3. 생성한 서비스 주체를 검색하여 선택합니다.
  4. 권한 드롭다운에서 Can use를 선택한 다음 Add를 선택합니다.

소스 테이블에 대한 액세스 권한 부여하기

1단계에서 설정한 카탈로그, 스키마, 테이블에 대한 읽기 권한을 서비스 주체에 부여하세요. 권한 부여 대상으로는 서비스 주체의 애플리케이션 ID(클라이언트 ID와 같은 값)를 사용합니다.

GRANT USE CATALOG ON CATALOG `BRAZE-CLOUD-PRODUCTION` TO `APPLICATION_ID`;
GRANT USE SCHEMA ON SCHEMA `BRAZE-CLOUD-PRODUCTION`.INGESTION TO `APPLICATION_ID`;
GRANT SELECT ON TABLE `BRAZE-CLOUD-PRODUCTION`.INGESTION.USERS_ATTRIBUTES_SYNC TO `APPLICATION_ID`;

APPLICATION_ID를 서비스 주체의 애플리케이션 ID로 바꾸세요. 다른 이름은 필요에 따라 변경할 수 있지만, 권한은 위 예시와 일치해야 합니다.

클라이언트 시크릿 업데이트하기

Braze는 자격 증명당 하나의 클라이언트 시크릿을 저장합니다. 시크릿을 업데이트하면 해당 자격 증명을 사용하는 모든 소스와 동기화가 새 시크릿으로 전환됩니다. 시크릿을 교체하려면 다음과 같이 하세요.

  1. Databricks에서 클라이언트 시크릿 생성하기의 단계에 따라 서비스 주체의 새 시크릿을 생성합니다. 기존 시크릿은 6단계까지 유지하세요.
  2. Braze 대시보드에서 Data Settings > Cloud Data Ingestion > Credentials로 이동한 다음 OAuth M2M 자격 증명을 선택합니다. Used by 섹션에는 이 자격 증명을 사용하는 모든 소스와 동기화가 나열됩니다.
  3. 이 자격 증명을 사용하는 동기화를 일시 중지하거나, 어떤 동기화도 실행되도록 스케줄되지 않은 시간에 업데이트를 계획합니다. 이렇게 하면 자격 증명을 업데이트하는 동안 동기화가 시작되는 것을 방지할 수 있습니다.
  4. Edit credential을 선택하고 새 클라이언트 시크릿을 입력한 다음 Save를 선택합니다. 변경 사항은 이 자격 증명을 사용하는 모든 소스와 동기화에 적용됩니다.
  5. 일시 중지한 동기화를 다시 시작합니다.
  6. Braze에 새 시크릿이 저장되면 Databricks에서 기존 시크릿을 삭제합니다.

Personal access token

Braze는 Databricks 워크스페이스에서 생성한 개인 액세스 토큰으로 인증합니다. 기존 개인 액세스 토큰 자격 증명은 계속 작동하므로 마이그레이션할 필요가 없습니다. 다만 개인 액세스 토큰은 워크스페이스 관리자가 설정한 스케줄에 따라 만료되는 경우가 많으며, 토큰이 만료되면 동기화가 중지됩니다. 기존 소스를 OAuth M2M으로 전환하려면 OAuth M2M 자격 증명을 생성한 다음, 소스를 편집할 때 해당 자격 증명을 선택하세요.

개인 액세스 토큰을 생성하는 방법은 다음과 같습니다.

  1. Databricks 워크스페이스의 상단 바에서 Databricks 사용자 이름을 선택한 다음, 드롭다운에서 User Settings를 선택합니다.
  2. Access tokens 탭에서 Generate new token을 선택합니다.
  3. 이 토큰을 식별하는 데 도움이 되는 설명(예: “Braze CDI”)을 입력하고, Lifetime (days) 상자를 비워 두어 토큰의 수명을 무제한으로 설정합니다.
  4. Generate를 선택합니다.
  5. 표시된 토큰을 복사한 다음 Done을 선택합니다.

자격 증명 생성 단계에서 Braze 대시보드에 토큰을 입력할 때까지 토큰을 안전한 곳에 보관하세요.

3단계: Braze IP에 대한 액세스 허용

네트워크 정책을 사용 중이라면 Braze에 Databricks 인스턴스에 대한 네트워크 액세스 권한을 부여해야 합니다. Braze 대시보드 지역에 해당하는 다음 IP의 액세스를 허용하세요.

인스턴스 US-01, US-02, US-03, US-04, US-05, US-06, US-07의 경우, 관련 IP 주소는 다음과 같습니다.

  • 23.21.118.191
  • 34.206.23.173
  • 50.16.249.9
  • 52.4.160.214
  • 54.87.8.34
  • 54.156.35.251
  • 52.54.89.238
  • 18.205.178.15

인스턴스 US-08의 경우, 관련 IP 주소는 다음과 같습니다.

  • 52.151.246.51
  • 52.170.163.182
  • 40.76.166.157
  • 40.76.166.170
  • 40.76.166.167
  • 40.76.166.161
  • 40.76.166.156
  • 40.76.166.166
  • 40.76.166.160
  • 40.88.51.74
  • 52.154.67.17
  • 40.76.166.80
  • 40.76.166.84
  • 40.76.166.85
  • 40.76.166.81
  • 40.76.166.71
  • 40.76.166.144
  • 40.76.166.145

인스턴스 US-10의 경우, 관련 IP 주소는 다음과 같습니다.

  • 100.25.232.164
  • 35.168.86.179
  • 52.7.44.117
  • 3.92.153.18
  • 35.172.3.129
  • 50.19.162.19

인스턴스 EU-01 및 EU-02의 경우, 관련 IP 주소는 다음과 같습니다.

  • 52.58.142.242
  • 52.29.193.121
  • 35.158.29.228
  • 18.157.135.97
  • 3.123.166.46
  • 3.64.27.36
  • 3.65.88.25
  • 3.68.144.188
  • 3.70.107.88

인스턴스 AU-01의 경우, 관련 IP 주소는 다음과 같습니다.

  • 13.210.1.145
  • 13.211.70.159
  • 13.238.45.54
  • 52.65.73.167
  • 54.153.242.239
  • 54.206.45.213

인스턴스 ID-01의 경우, 관련 IP 주소는 다음과 같습니다.

  • 108.136.157.246
  • 108.137.30.207
  • 16.78.128.71
  • 16.78.14.134
  • 16.78.162.208
  • 43.218.73.35

인스턴스 JP-01의 경우, 관련 IP 주소는 다음과 같습니다.

  • 13.159.155.212
  • 54.199.221.241
  • 13.192.23.16
  • 54.250.120.139
  • 18.181.114.232
  • 3.114.38.100

인스턴스 KR-01의 경우, 관련 IP 주소는 다음과 같습니다.

  • 43.200.215.4
  • 52.79.67.175
  • 52.79.113.60
  • 3.34.212.92
  • 54.116.134.231
  • 3.37.197.225

4단계: Braze 대시보드에서 새 소스 생성

Braze 대시보드에서 데이터 설정 > 클라우드 데이터 수집 > 소스로 이동하여 데이터 소스 추가를 선택한 다음 Databricks를 선택합니다.

4.1단계: Databricks 연결 정보 및 소스 테이블 추가

소스 이름을 입력한 다음 Databricks 자격 증명과 구성을 입력합니다.

  • 자격 증명 이름에는 Braze에서 이 자격 증명을 식별하는 데 도움이 되는 레이블을 입력합니다.
  • 인증 방법에서 2단계에서 설정한 방법을 선택하고 해당 자격 증명을 입력합니다. OAuth M2M의 경우 다음을 입력합니다: Client ID and Client secret. Personal access token의 경우 다음을 입력합니다: Access token.

그런 다음 다음 단계로 진행합니다.

4.2단계: 연결 테스트 및 소스에 연결

다음으로 연결 테스트를 선택합니다. 테스트가 성공하면 나머지 설정을 마무리하고 소스에 연결을 클릭합니다. 연결에 실패하면 문제 해결에 도움이 되는 오류 메시지가 표시됩니다.

5단계: Braze 대시보드에서 새 동기화 생성

데이터 설정 > 클라우드 데이터 수집 > 동기화로 이동하여 데이터 동기화 생성을 선택합니다.

동기화 세부 정보 구성 및 데이터 정의

동기화 이름을 입력합니다. 그런 다음 활성 소스와 동기화 데이터 유형을 선택합니다. 다음으로 시각적 또는 테이블을 선택하고 소스 테이블을 입력하거나, SQL을 선택하여 커스텀 SQL 쿼리를 작성합니다. 마지막으로 미리 보기 및 유효성 검사를 선택합니다.

유효성 검사가 성공하면 데이터 미리 보기가 표시됩니다. 계속하려면 다음: 알림을 선택합니다. 유효성 검사에 실패하면 문제 해결에 도움이 되는 오류 메시지가 표시됩니다.

알림 기본 설정 추가

동기화 오류 알림을 받을 연락처 이메일을 입력합니다. Braze는 이 연락처 정보를 사용하여 예기치 않은 테이블 액세스 손실과 같은 통합 오류에 대한 알림을 보냅니다.

연락처 이메일로는 테이블 누락, 권한 문제 등 전역 또는 동기화 수준의 오류 알림만 전송됩니다. 행 수준 문제에 대한 알림은 전송되지 않습니다. 전역 오류는 동기화 실행을 막는 연결상의 심각한 문제를 나타냅니다.

이러한 문제에는 다음이 포함될 수 있습니다.

  • 연결 문제
  • 리소스 부족
  • 권한 문제
  • 카탈로그 티어의 공간 부족(카탈로그 동기화에만 해당)

스케줄 설정

마지막으로 동기화를 비반복 또는 반복으로 구성합니다.

비반복 동기화는 대시보드에서 지금 동기화를 선택하거나 동기화 트리거 엔드포인트를 호출할 때만 실행됩니다.

반복 동기화는 짧게는 5분마다, 길게는 한 달에 한 번까지 실행할 수 있습니다. 기본적으로 대시보드에서 설정할 수 있는 가장 짧은 간격은 15분이며, 이를 통해 웨어하우스 컴퓨팅 비용과 요청량을 관리할 수 있습니다. 5분 간격으로 동기화하려면 Braze 지원팀 또는 고객 성공 매니저에게 문의하세요. Braze는 반복 동기화를 UTC 기준으로 스케줄링합니다.

동기화 실행

활성화되면 동기화는 설정 중에 구성한 스케줄에 따라 실행됩니다. 스케줄 외에 동기화를 실행하거나 최신 데이터를 가져오려면 지금 동기화를 선택하세요. 이 실행은 이후 정기적으로 예약된 동기화에 영향을 주지 않습니다. 데이터가 업데이트될 때 자동으로 동기화를 시작하려면 파이프라인에서 동기화 트리거 엔드포인트를 호출하세요.

추가 통합 또는 사용자 설정(선택 사항)

Braze와 여러 통합을 설정할 수 있습니다. 추가 동기화를 생성할 때 동일한 Databricks 계정에 연결한다면 기존 자격 증명을 재사용할 수 있습니다.

여러 통합에서 동일한 사용자를 재사용하는 경우, 모든 활성 동기화에서 해당 사용자를 제거하기 전까지는 Braze 대시보드에서 사용자를 삭제할 수 없습니다.

Databricks를 연결된 소스로 사용

연결된 소스는 Braze로 데이터를 동기화하는 방식을 대체하는 제로 카피 방식입니다. Braze는 기본 데이터를 복사하지 않고 Databricks 인스턴스를 직접 쿼리하여 CDI 세그먼트를 구축합니다. 개념, 제한 사항, 비용 영향에 대해서는 연결된 소스를 참조하세요.

1단계: 인증 설정 및 권한 부여

2단계: 인증 설정의 방법 중 하나로 Braze용 자격 증명을 설정합니다. 어떤 방법을 선택하든 Braze는 이 자격 증명을 사용하여 CDI 세그먼트 확장에서 사용할 수 있는 테이블 목록을 생성하고, 소스 테이블을 쿼리하여 새 세그먼트를 생성합니다. 연결된 소스가 생성되면 Braze는 소스 스키마에서 사용자가 사용할 수 있는 모든 테이블의 이름과 설명을 검색합니다.

스키마의 모든 테이블에 대한 액세스를 부여하거나 특정 테이블에만 권한을 부여할 수 있습니다. Braze 역할이 액세스할 수 있는 테이블은 모두 CDI 세그먼트 확장에서 쿼리할 수 있습니다.

Braze가 세그먼트를 업데이트하기 전에 CDI 세그먼트 확장 쿼리 결과로 테이블을 생성할 수 있도록 CREATE TABLE 권한이 필요합니다. Braze는 세그먼트당 하나의 임시 테이블을 생성하며, 이 테이블은 Braze가 세그먼트를 업데이트하는 동안에만 유지됩니다.

  • OAuth M2M: 연결된 소스에 사용되는 스키마에 대해 CREATE TABLE을 포함한 액세스 권한을 서비스 주체에 부여합니다. 서비스 주체의 애플리케이션 ID(클라이언트 ID와 동일한 값)를 권한 수여 대상으로 사용하세요.

      GRANT USE CATALOG ON CATALOG `BRAZE-CLOUD-PRODUCTION` TO `APPLICATION_ID`;
      GRANT USE SCHEMA, CREATE TABLE ON SCHEMA `BRAZE-CLOUD-PRODUCTION`.INGESTION TO `APPLICATION_ID`;
      GRANT SELECT ON SCHEMA `BRAZE-CLOUD-PRODUCTION`.INGESTION TO `APPLICATION_ID`;
    

    APPLICATION_ID를 서비스 주체의 애플리케이션 ID로 바꾸세요.

  • 개인용 액세스 토큰: 서비스 계정에 연결된 소스에 사용되는 스키마에 대한 CREATE TABLE 권한이 있는지 확인하세요.

네트워크 액세스 설정은 3단계와 동일합니다.

2단계: Braze에서 연결된 소스 생성

데이터 설정 > 클라우드 데이터 수집 > 연결된 소스로 이동하여 데이터 소스 추가를 선택한 다음 Databricks를 선택합니다.

소스 설정에서 다음을 입력합니다.

  • 자격 증명: 자격 증명 이름, 인증 방법, 호스트 이름, HTTP 경로 및 인증 방법에 해당하는 필드. OAuth M2M의 경우 다음을 입력합니다: Client ID and Client secret. Personal access token의 경우 다음을 입력합니다: Access token.
  • 구성: 카탈로그 및 스키마

연결된 소스의 이름을 정합니다. 이 이름은 새 CDI 세그먼트 확장을 생성할 때 사용 가능한 소스 목록에 표시됩니다.

이 소스의 최대 실행 시간을 구성합니다. Braze는 최대 실행 시간을 초과하는 쿼리를 자동으로 중단합니다. 허용되는 최대 실행 시간은 60분이며, 실행 시간을 낮게 설정하면 Databricks 계정에서 발생하는 비용을 줄일 수 있습니다. 이 설정은 이 소스를 사용하는 동기화 및 CDI 세그먼트 확장을 포함하여 이 소스를 통해 실행되는 쿼리에 적용됩니다.

연결 테스트를 선택하여 사용자에게 표시되는 테이블 목록이 예상과 일치하는지 확인한 다음 완료를 선택합니다. 이제 연결된 소스가 생성되었으며 CDI 세그먼트 확장에서 사용할 준비가 되었습니다.

Braze와 여러 연결된 소스를 설정할 수 있지만, 각 소스는 서로 다른 스키마에 연결되도록 구성해야 합니다. 추가 소스를 생성할 때 동일한 Databricks 계정에 연결한다면 기존 자격 증명을 재사용할 수 있습니다.

기존 열에서 페이로드 형식 지정

내부적으로 각 속성을 별도의 열에 저장하려는 경우, Braze와의 동기화를 채우려면 해당 열을 JSON 문자열로 변환해야 합니다. Databricks에서 다음 쿼리를 사용하여 소스 열을 CDI 필드 형식으로 지정하세요.

CREATE OR REPLACE TABLE BRAZE.EXAMPLE_USER_DATA (
    attribute_1 string,
    attribute_2 STRING,
    attribute_3 NUMERIC,
    my_user_id STRING
);

SELECT
    CURRENT_TIMESTAMP as UPDATED_AT,
    my_user_id as EXTERNAL_ID,
    TO_JSON(
      STRUCT(
        attribute_1,
        attribute_2,
        attribute_3
      )
    ) as PAYLOAD
  FROM BRAZE.EXAMPLE_USER_DATA;

추가 최적화 지침은 클라우드 데이터 수집 모범 사례를 참조하세요.

문제 해결

연결 테스트가 느리게 실행됨

연결 테스트는 데이터 웨어하우스에서 실행되므로 웨어하우스 용량을 늘리면 속도가 개선될 수 있습니다. Databricks의 경우 Braze가 Classic 및 Pro SQL 인스턴스에 연결할 때 2~5분의 준비 시간이 소요될 수 있으며, 이로 인해 연결 설정 및 테스트 중이나 예약된 동기화가 시작될 때 지연이 발생합니다. 서버리스 SQL 인스턴스를 사용하면 준비 시간을 최소화하고 쿼리 처리량을 개선할 수 있지만, 통합 비용이 약간 높아질 수 있습니다.

웨어하우스가 중지되어 명령이 실패함

이 오류가 발생하면 Databricks 웨어하우스가 실행 중인지 확인하세요.

Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden

이 오류가 발생하면 Databricks: S3 데이터 액세스 중 Forbidden 오류를 참조하세요.

SQL 검사를 실행할 위치

CDI 통합에서 사용하는 것과 동일한 테이블 또는 뷰를 대상으로, SQL 웨어하우스의 Databricks SQL 편집기에서 직접 유효성 검사를 실행하세요. 자세한 내용은 Databricks SQL 편집기를 참조하세요.

New Stuff!