메인 콘텐츠로 건너뛰기
OneSignal Databricks integration

OneSignal Databricks 통합 개요


개요

OneSignal + Databricks 통합은 양방향 데이터 동기화를 지원합니다:
  • 분석, 대시보드 및 보고를 위해 OneSignal 메시지 이벤트를 Databricks로 내보내기.
  • Databricks에서 OneSignal로 사용자 지정 이벤트를 가져와서 Journeys 및 개인화된 캠페인을 트리거.
이 통합을 사용하여 플랫폼 전반에 걸쳐 참여 및 행동 데이터를 통합하고 데이터 기반 메시징 전략을 추진하세요.

OneSignal 이벤트를 Databricks로 내보내기

거의 실시간 분석 및 가시성을 위해 OneSignal에서 Databricks 레이크하우스로 푸시, 이메일, 인앱 및 SMS 이벤트를 동기화합니다. 요구 사항
  • Professional 플랜
  • 사용자 지정 이벤트 활성화(이벤트 가져오기용)
  • Databricks 플랫폼: AWS, Azure 또는 GCP
  • Databricks 플랜: Premium 이상
  • Databricks Unity Catalog(거버넌스 권장)
  • 쿼리를 위한 Databricks SQL Warehouse
  • Delta Lake 이벤트 테이블(사용자 지정 이벤트 가져오기용)
설정 단계

1. SQL warehouse 세부 정보 수집

1

Databricks 워크스페이스에 로그인

Databricks 워크스페이스에서 SQL Warehouses로 이동하세요.
2

warehouse 선택

warehouse를 선택하고 Connection details 탭을 엽니다.
3

다음 세부 정보 저장

  • Server Hostname
  • Port
  • HTTP Path
Databricks SQL connection details for Fivetran setup

Fivetran 설정을 위한 Databricks SQL 연결 세부 정보

2. 서비스 주체 만들기

1

Service Principals 페이지로 이동

Workspace Settings > Identity and Access > Service Principals로 이동하세요.
2

새 서비스 주체 추가

Add Service Principal을 클릭한 다음 Add New를 클릭하세요.
3

서비스 주체 이름 지정

이름을 지정하세요(예: onesignal-sync).
Modal for adding a service principal, with the 'Add new' option highlighted

서비스 주체 추가 모달, 'Add new' 옵션 강조 표시

3. 시크릿 생성

1

생성된 주체 클릭

2

Secrets 탭으로 이동

3

시크릿 생성

Generate Secret을 클릭하고 안전하게 저장하세요.
시크릿은 한 번만 표시됩니다. 안전하게 저장하세요.
Databricks 'Generate secret' modal showing OAuth secret and client ID for API authentication

API 인증을 위한 OAuth 시크릿 및 클라이언트 ID를 보여주는 Databricks '시크릿 생성' 모달

4. 권한 할당

1

Catalog으로 이동하여 Permissions 탭 열기

2

Grant 클릭

3

서비스 주체에 다음 권한 할당

  • USE CATALOG
  • USE SCHEMA
  • SELECT
  • MODIFY
  • CREATE SCHEMA
  • CREATE TABLE
Privilege assignment screen for a Databricks principal with custom catalog permissions selected

사용자 지정 카탈로그 권한이 선택된 Databricks 주체에 대한 권한 할당 화면.

5. OneSignal 연결

1

통합 활성화

OneSignal에서 Data > Integrations > Databricks로 이동하세요.
2

세부 정보 입력

  • Server Hostname
  • Port
  • HTTP Path
  • Catalog Name
  • Schema Name
  • Service Principal 자격 증명(ID + Secret)
OneSignal Databricks Configuration form with fields for catalog, hostname, HTTP path, and OAuth credentials

카탈로그, 호스트 이름, HTTP 경로 및 OAuth 자격 증명 필드가 있는 OneSignal Databricks 구성 양식.

3

통합 구성

  • Sync Frequency: 15분마다
  • Dataset/Table Names: onesignal_events_<app-id>message_events로 미리 설정(편집 가능)
  • Event Types: 동기화할 항목 선택—전체 또는 필요한 것만 선택
4

이벤트 선택

Databricks 카탈로그에서 받고자 하는 이벤트를 선택하세요.
OneSignal event export settings screen showing sync status, dataset configuration, and selected message event types

동기화 상태, 데이터 세트 구성 및 선택된 메시지 이벤트 유형을 보여주는 OneSignal 이벤트 내보내기 설정 화면.

5

설정 완료

Save를 클릭하고 성공 확인을 기다리세요
초기 데이터 동기화는 BigQuery에 나타나는 데 15-30분이 걸릴 수 있습니다.대기하는 동안 푸시, 이메일, 인앱 또는 SMS를 통해 메시지를 보내 선택한 이벤트를 트리거하세요.

6. Databricks에서 데이터 보기

  1. Databricks에서 Catalog을 엽니다.
  2. 동기화가 완료되면 구성된 스키마가 나타납니다.
  3. message_events 테이블에 액세스하고 쿼리합니다.
    Databricks Catalog view showing OneSignal message events table under a production schema

    프로덕션 스키마 아래 OneSignal 메시지 이벤트 테이블을 보여주는 Databricks Catalog 보기.

  4. 샘플 데이터 미리 보기를 위해 테이블을 클릭하세요.
    Sample data from the message_events_1 table with synced OneSignal event fields

    동기화된 OneSignal 이벤트 필드가 있는 message_events_1 테이블의 샘플 데이터.

스키마 누락, 권한 오류 또는 잘못된 형식의 이벤트와 같은 문제가 발생하면 support@onesignal.com으로 문의하세요.

메시지 이벤트 및 속성

메시지 이벤트 종류

속성: event_kind 유형: String 메시지 및 이벤트의 종류(예: message.push.received, message.push.sent).
메시지 이벤트 (OneSignal)event_kind설명
Push Sentmessage.push.sent푸시 알림이 성공적으로 전송되었습니다.
Push Receivedmessage.push.received전달된 푸시(전달 확인 참조).
Push Clickedmessage.push.clicked사용자가 푸시를 클릭했습니다.
Push Failedmessage.push.failed전달 실패. 메시지 보고서를 참조하세요.
Push Unsubscribedmessage.push.unsubscribed사용자가 푸시 구독을 취소했습니다.
In-App Impressionmessage.iam.displayed인앱 메시지가 표시되었습니다.
In-App Clickedmessage.iam.clicked인앱 메시지를 클릭했습니다.
In-App Page Viewedmessage.iam.pagedisplayed인앱 페이지가 표시되었습니다.
Email Sentmessage.email.sent이메일이 전달되었습니다.
Email Receivedmessage.email.received수신자의 메일 서버가 이메일을 수락했습니다.
Email Openedmessage.email.opened이메일이 열렸습니다. 이메일 보고서를 참조하세요.
Email Link Clickedmessage.email.clicked이메일의 링크를 클릭했습니다.
Email Unsubscribedmessage.email.unsubscribed수신자가 구독을 취소했습니다.
Email Marked Spammessage.email.resporedasspam스팸으로 표시되었습니다. 이메일 전달 가능성을 참조하세요.
Email Bouncedmessage.email.hardbounced영구적인 전달 실패로 인한 반송.
Email Failedmessage.email.failed전달이 실패했습니다.
Email Suppressedmessage.email.supressed억제 목록으로 인해 억제되었습니다.
SMS Sentmessage.sms.sentSMS가 전송되었습니다.
SMS Deliveredmessage.sms.deliveredSMS가 성공적으로 전달되었습니다.
SMS Failedmessage.sms.failedSMS 전달이 실패했습니다.
SMS Undeliveredmessage.sms.undeliveredSMS가 거부되었거나 도달할 수 없습니다.

이벤트 데이터 스키마

사용자가 생성한 각 메시지 이벤트에 대해 다음 메타데이터가 레코드에 첨부됩니다.
열 이름유형설명
event_idUUID이벤트의 고유 식별자
event_timestampTimestamp이벤트 발생 시간
event_kindString이벤트 종류
subscription_device_typeString장치 유형(예: iOS, Android, Web, Email, SMS)
languageString구독 언어 코드
versionString통합 버전
device_osString장치 운영 체제 버전
device_typeNumber숫자 장치 유형
tokenString푸시 토큰, 전화번호 또는 이메일
subscription_idUUID구독 ID
subscribedBoolean구독 상태
onesignal_idUUIDOneSignal 사용자 ID
last_activeString마지막 활성 타임스탬프
sdkStringOneSignal SDK 버전
external_idString통합 사용자 ID와 일치해야 하는 외부 사용자 ID
app_idUUIDOneSignal의 앱 ID
template_idUUID템플릿 ID(해당하는 경우)
message_idUUID메시지 배치/요청 ID
message_nameString메시지 이름
message_titleString메시지 제목(영어만)
message_contentsString잘린 메시지 본문(영어만)
_created, _id, _index, _fivetran_synced내부 사용Fivetran 동기화 메타데이터

참고 사항

  • 저장/활성화 후 동기화는 완료하는 데 추가로 15-30분이 소요될 수 있습니다.
  • 비활성화하면 비활성화 후 최종 동기화가 한 번 더 발생할 수 있습니다.
  • 효율적인 데이터 동기화를 보장하기 위해 시스템은 스테이징 데이터 세트를 자동으로 생성하고 관리합니다. 이러한 데이터 세트는 fivetran_{두 개의 무작위 단어}_staging과 같은 패턴으로 이름이 지정되며, 기본 스키마에 통합되기 전에 처리 중에 데이터를 임시로 저장합니다. 이러한 스테이징 데이터 세트는 간소화된 워크플로를 유지하는 데 필수적이며 자동으로 다시 생성되므로 삭제하면 안 됩니다.

Databricks에서 이벤트 가져오기

Databricks에서 OneSignal로 행동 이벤트 데이터를 전송하여:
  • 사용자 활동을 기반으로 Journeys 트리거
  • 행동 데이터를 기반으로 메시징 개인화
요구 사항
  • SQL Warehouse 또는 컴퓨팅 클러스터가 있는 Databricks 워크스페이스
  • 적절한 권한이 있는 Personal Access Token
  • Delta Lake 형식의 행동 데이터가 포함된 이벤트 데이터 테이블
  • Unity Catalog(데이터 거버넌스 권장)
설정 단계
1

Databricks Personal Access Token 만들기

OneSignal이 Databricks 워크스페이스에 액세스할 수 있도록 Personal Access Token을 생성하세요:
  1. Databricks 워크스페이스에서 User Settings로 이동
  2. Developer 탭을 클릭한 다음 Access tokens 클릭
  3. Generate new token 클릭
  4. “OneSignal Integration”과 같은 주석을 입력하고 만료일 설정(90일 권장)
  5. 생성된 토큰 저장(OneSignal에 필요함)
2

SQL Warehouse 액세스 구성

OneSignal이 SQL Warehouse를 통해 이벤트 데이터를 쿼리할 수 있도록 하세요:
  1. Databricks 워크스페이스에서 SQL Warehouses로 이동
  2. OneSignal 액세스를 위한 SQL Warehouse 선택 또는 생성
  3. 연결 세부 정보에서 Server HostnameHTTP Path 기록
  4. warehouse가 이벤트 데이터 테이블에 액세스할 수 있는지 확인
3

테이블 권한 부여

이벤트 데이터가 포함된 테이블에 OneSignal 읽기 액세스 권한 부여:
-- Unity Catalog이 활성화된 워크스페이스의 경우
GRANT SELECT ON TABLE catalog.schema.event_table TO `onesignal@yourdomain.com`;

-- Hive 메타스토어 테이블의 경우
GRANT SELECT ON TABLE database.event_table TO `onesignal@yourdomain.com`;
4

OneSignal에 통합 추가

OneSignal에서 Data > Integrations으로 이동하여 Add Integration을 클릭합니다.Databricks를 선택하고 다음을 제공:
  • Server Hostname: Databricks SQL Warehouse 호스트 이름
  • HTTP Path: SQL Warehouse HTTP 경로
  • Personal Access Token: 1단계에서 생성한 토큰
  • Catalog(선택 사항): Unity Catalog를 사용하는 경우 Unity Catalog 이름
5

이벤트 데이터 소스 구성

이벤트 데이터가 포함된 Databricks 테이블 지정:
  • Database/Schema: 이벤트 테이블이 포함된 데이터베이스 또는 스키마 이름
  • Table: 이벤트 레코드가 있는 테이블 이름(예: user_events)
  • Event Query: 이벤트 데이터를 필터링하거나 변환하기 위한 선택적 SQL 쿼리
이벤트 테이블에는 다음에 대한 열이 포함되어야 합니다:
  • 이벤트 이름/유형(String)
  • 사용자 식별자(String)
  • 이벤트 타임스탬프(Timestamp)
  • 추가 이벤트 속성
6

연결 테스트

Test Connection을 클릭하여 OneSignal이 Databricks 워크스페이스에 액세스하고 이벤트 데이터를 읽을 수 있는지 확인하세요.

이벤트 데이터 매핑

를 OneSignal의 사용자 지정 이벤트 형식에 매핑합니다:
OneSignal 필드설명필수
nameevent_name이벤트 식별자Yes
external_iduser_id사용자 식별자Yes
timestampevent_timestamp이벤트가 발생한 시간No
propertiesevent_dataNo

고급 구성

Unity Catalog 통합

거버넌스 데이터 액세스를 위해 Unity Catalog를 활용하세요:
SELECT
  event_name,
  user_id,
  event_timestamp,
  to_json(
    named_struct(
      'product_id', product_id,
      'purchase_amount', purchase_amount,
      'category', category
    )
  ) as payload
FROM catalog.schema.user_events
WHERE event_timestamp >= current_timestamp() - INTERVAL 7 DAYS

Delta Lake 최적화

더 나은 쿼리 성능을 위해 이벤트 테이블을 최적화하세요:
  • 파티셔닝: 더 빠른 시간 기반 쿼리를 위해 날짜(event_date)별로 파티션
  • Z-Ordering: 더 나은 필터링을 위해 user_idevent_name으로 Z-order
  • Delta Lake 기능: 자동 최적화를 위해 liquid clustering 사용

스트리밍 이벤트 처리

실시간 이벤트 처리를 위해 다음을 고려하세요:
  • Structured Streaming: 이벤트가 도착하는 대로 처리
  • Delta Live Tables: 강력한 이벤트 처리 파이프라인 구축
  • Auto Loader: 새 이벤트 파일을 지속적으로 수집
SQL Warehouse에 다른 워크로드에 영향을 주지 않고 OneSignal의 쿼리를 처리할 수 있는 충분한 컴퓨팅 리소스가 있는지 확인하세요.

FAQ

동일한 콘텐츠에 대해 다른 메시지 ID가 표시되는 이유는 무엇인가요?

트랜잭션 플로우를 통해 또는 여러 전송에서 재사용된 메시지 템플릿을 통해 동일한 메시지가 두 번 이상 전송될 때 발생합니다.

OneSignal은 Databricks에서 이벤트를 얼마나 자주 동기화하나요?

OneSignal은 구성된 일정에 따라 이벤트 데이터를 동기화하며 최소 간격은 15분입니다.

Databricks notebook을 이벤트 처리에 사용할 수 있나요?

예, notebook을 사용하여 이벤트 데이터를 처리하고 준비한 다음 OneSignal이 쿼리할 수 있는 테이블을 통해 노출할 수 있습니다.

이벤트 쿼리에 대한 비용 최적화는 어떻게 하나요?

쿼리 로드에 따라 자동으로 확장되는 비용 효율적인 온디맨드 컴퓨팅을 위해 서버리스 SQL Warehouse 사용을 고려하세요.