OneSignal의 레거시 통합으로 Snowflake를 사용하는 경우 Snowflake 레거시 통합 가이드를 참조하세요.

OneSignal Snowflake 통합 개요
개요
OneSignal + Snowflake 통합은 두 가지 강력한 데이터 파이프라인을 지원합니다:- 내보내기: OneSignal에서 Snowflake로 메시징 이벤트 데이터(푸시, 이메일, SMS, 인앱)를 자동으로 전송하여 분석 및 보고합니다.
- 가져오기: Snowflake 데이터셋에서 커스텀 사용자 이벤트를 OneSignal로 동기화하여 자동화된 Journey와 개인화된 메시징을 트리거합니다.
OneSignal 이벤트를 Snowflake로 내보내기
메시징 성능 및 참여 이벤트(예: 전송, 열람, 클릭)를 Snowflake로 전송하여:- 커스텀 대시보드 및 보고서 구축
- 채널 전반의 전달 및 참여 추세 추적
- OneSignal 데이터를 다른 비즈니스 데이터와 결합하여 분석
- OneSignal Professional 플랜 (무료 앱에서는 사용 불가)
- Snowflake 계정
- Snowflake의 SECURITYADMIN 또는 ACCOUNTADMIN 역할 (설정용)
1. Snowflake 계정 세부 정보 수집
통합을 구성하기 전에 Snowflake 계정에서 다음 정보를 수집합니다:- Snowflake 호스트:
<account_identifier>.snowflakecomputing.com형식의 계정 URL - 데이터베이스 이름: OneSignal이 이벤트 데이터를 작성할 데이터베이스
- 스키마 이름: OneSignal 테이블용 데이터베이스 내 스키마 (OneSignal에 의해 자동 생성됨)
- 웨어하우스 이름: 데이터 로딩 작업에 사용할 웨어하우스

Snowflake 계정 식별자 위치
2. Snowflake에서 설정 스크립트 실행
Snowflake 웨어하우스에서 다음 SQL 스크립트를 실행하여 OneSignal에 필요한 역할, 사용자, 웨어하우스 및 데이터베이스를 생성합니다:스크립트 상단의 변수 값을 사용자의 명명 규칙에 맞게 사용자 정의할 수 있습니다. 기존 웨어하우스 또는 데이터베이스를 사용하는 경우 그에 따라 스크립트를 수정하세요.
3. 인증용 키 페어 생성
OneSignal은 Snowflake 계정에 안전하게 액세스하기 위해 키 페어 인증이 필요합니다. 다음 단계에 따라 키를 생성하고 구성합니다:1
개인 키 생성
다음 명령 중 하나를 실행하여 개인 키를 생성합니다:암호화되지 않은 개인 키 (더 간단하지만 보안성이 낮음):암호화된 개인 키 (프로덕션 권장):암호화된 키를 사용하는 경우 암호 구문을 생성하라는 메시지가 표시됩니다. 이 암호 구문을 안전하게 저장하세요. OneSignal을 구성할 때 필요합니다.
2
공개 키 생성
개인 키에서 공개 키를 생성합니다:
3
Snowflake 사용자에게 공개 키 할당
공개 키 파일의 내용을 복사한 다음(헤더 및 바닥글 줄 제외) Snowflake에서 이 SQL 명령을 실행합니다:
<YOUR_PUBLIC_KEY_CONTENT>를 키 내용으로 바꿉니다(-----BEGIN PUBLIC KEY----- 및 -----END PUBLIC KEY----- 줄 제외).4. OneSignal 연결
1
통합 활성화
OneSignal에서 Data > Integrations > Snowflake로 이동합니다.
2
세부 정보 입력
- 호스트:
<your_account>.snowflakecomputing.com - 데이터베이스: 예:
ONESIGNAL - 스키마
- 테이블: 예:
message_events - 사용자:
ONESIGNAL_USER(또는 생성한 사용자 이름) - 개인 키: 개인 키 파일(
rsa_key.p8)의 내용을 붙여넣습니다 - 개인 키 암호 구문 (선택사항, 개인 키가 암호화된 경우에만)
3
통합 구성
- 동기화 빈도: 15분마다
- 스키마/테이블 이름:
onesignal_events_<app-id>및message_events로 사전 설정됨 (편집 가능) - 이벤트 유형: 동기화할 이벤트 선택—전체 또는 필요한 것만 선택
4
이벤트 선택
Snowflake 웨어하우스에서 받을 이벤트를 선택합니다.
5
설정 완료
Save를 클릭하고 성공 확인을 기다립니다
초기 데이터 동기화가 Snowflake에 나타나는 데 15~30분이 걸릴 수 있습니다.기다리는 동안 푸시, 이메일, 인앱 또는 SMS를 통해 메시지를 전송하여 선택한 이벤트를 트리거합니다.
5. Snowflake에서 데이터 보기
초기 동기화가 완료되면 OneSignal 이벤트 데이터를 쿼리합니다:스키마 누락, 권한 오류 또는 잘못된 형식의 이벤트와 같은 문제가 발생하면
[email protected]으로 문의하세요.메시지 이벤트 및 속성
메시지 이벤트 종류
속성:event_kind
유형: String
메시지 및 이벤트의 종류(예: message.push.received, message.push.sent).
| 메시지 이벤트 (OneSignal) | event_kind | 설명 |
|---|---|---|
| Push Sent | message.push.sent | 푸시 알림이 성공적으로 전송되었습니다. |
| Push Received | message.push.received | 전달된 푸시(전달 확인 참조). |
| Push Clicked | message.push.clicked | 사용자가 푸시를 클릭했습니다. |
| Push Failed | message.push.failed | 전달 실패. 메시지 보고서를 참조하세요. |
| Push Unsubscribed | message.push.unsubscribed | 사용자가 푸시 구독을 취소했습니다. |
| In-App Impression | message.iam.displayed | 인앱 메시지가 표시되었습니다. |
| In-App Clicked | message.iam.clicked | 인앱 메시지를 클릭했습니다. |
| In-App Page Viewed | message.iam.pagedisplayed | 인앱 페이지가 표시되었습니다. |
| Email Sent | message.email.sent | 이메일이 전달되었습니다. |
| Email Received | message.email.received | 수신자의 메일 서버가 이메일을 수락했습니다. |
| Email Opened | message.email.opened | 이메일이 열렸습니다. 이메일 보고서를 참조하세요. |
| Email Link Clicked | message.email.clicked | 이메일의 링크를 클릭했습니다. |
| Email Unsubscribed | message.email.unsubscribed | 수신자가 구독을 취소했습니다. |
| Email Marked Spam | message.email.resporedasspam | 스팸으로 표시되었습니다. 이메일 전달 가능성을 참조하세요. |
| Email Bounced | message.email.hardbounced | 영구적인 전달 실패로 인한 반송. |
| Email Failed | message.email.failed | 전달이 실패했습니다. |
| Email Suppressed | message.email.supressed | 억제 목록으로 인해 억제되었습니다. |
| SMS Sent | message.sms.sent | SMS가 전송되었습니다. |
| SMS Delivered | message.sms.delivered | SMS가 성공적으로 전달되었습니다. |
| SMS Failed | message.sms.failed | SMS 전달이 실패했습니다. |
| SMS Undelivered | message.sms.undelivered | SMS가 거부되었거나 도달할 수 없습니다. |
이벤트 데이터 스키마
사용자가 생성한 각 메시지 이벤트에 대해 다음 메타데이터가 레코드에 첨부됩니다.| 열 이름 | 유형 | 설명 |
|---|---|---|
event_id | UUID | 이벤트의 고유 식별자 |
event_timestamp | Timestamp | 이벤트 발생 시간 |
event_kind | String | 이벤트 종류 |
subscription_device_type | String | 장치 유형(예: iOS, Android, Web, Email, SMS) |
language | String | 구독 언어 코드 |
version | String | 통합 버전 |
device_os | String | 장치 운영 체제 버전 |
device_type | Number | 숫자 장치 유형 |
token | String | 푸시 토큰, 전화번호 또는 이메일 |
subscription_id | UUID | 구독 ID |
subscribed | Boolean | 구독 상태 |
onesignal_id | UUID | OneSignal 사용자 ID |
last_active | String | 마지막 활성 타임스탬프 |
sdk | String | OneSignal SDK 버전 |
external_id | String | 통합 사용자 ID와 일치해야 하는 외부 사용자 ID |
app_id | UUID | OneSignal의 앱 ID |
template_id | UUID | 템플릿 ID(해당하는 경우) |
message_id | UUID | 메시지 배치/요청 ID |
message_name | String | 메시지 이름 |
message_title | String | 메시지 제목(영어만) |
message_contents | String | 잘린 메시지 본문(영어만) |
_created, _id, _index, _fivetran_synced | 내부 사용 | Fivetran 동기화 메타데이터 |
참고 사항
- 저장/활성화 후 동기화는 완료하는 데 추가로 15-30분이 소요될 수 있습니다.
- 비활성화하면 비활성화 후 최종 동기화가 한 번 더 발생할 수 있습니다.
- 효율적인 데이터 동기화를 보장하기 위해 시스템은 스테이징 데이터 세트를 자동으로 생성하고 관리합니다. 이러한 데이터 세트는
fivetran_{두 개의 무작위 단어}_staging과 같은 패턴으로 이름이 지정되며, 기본 스키마에 통합되기 전에 처리 중에 데이터를 임시로 저장합니다. 이러한 스테이징 데이터 세트는 간소화된 워크플로를 유지하는 데 필수적이며 자동으로 다시 생성되므로 삭제하면 안 됩니다.
Snowflake에서 이벤트 가져오기
Snowflake에서 OneSignal로 행동 이벤트 데이터를 전송하여:- 사용자 활동을 기반으로 Journey 트리거
- 행동 데이터를 기반으로 메시징 개인화
- Access to Event Streams for outbound message events (Plan limitations and overages apply)
- Access to Custom Events for inbound event syncing (Plan limitations and overages apply)
- Updated Account Plan (not available on free apps)
- 웨어하우스 액세스 권한이 있는 Snowflake 계정
- Snowflake 테이블 또는 뷰에 저장된 이벤트 데이터
- OneSignal에서 Snowflake 인스턴스로의 네트워크 연결
- 적절한 권한이 있는 사용자 자격 증명
1
OneSignal 전용 역할 생성
Snowflake 모범 사례에 따라 역할 계층 구조를 생성합니다:
2
전용 웨어하우스 생성
OneSignal 작업을 위한 비용 최적화 웨어하우스를 생성합니다:
3
사용자 생성 및 권한 부여
OneSignal 사용자를 생성하고 이벤트 데이터에 대한 액세스 권한을 부여합니다:
4
부기 데이터베이스 생성 (고급 동기화 엔진)
OneSignal의 동기화 상태 관리를 위한 전용 데이터베이스를 생성합니다:
5
인증 구성
보안 강화를 위해 키 페어 인증(권장)을 설정합니다:
- Snowflake 문서에 따라 공개/개인 키 페어를 생성합니다
- Snowflake 사용자에 공개 키를 구성합니다
- OneSignal의 연결 설정에서 개인 키를 사용합니다
6
OneSignal에 연결
OneSignal에서 Data > Integrations으로 이동하여 Add Integration을 클릭합니다.Snowflake를 선택하고 다음 연결 세부 정보를 제공합니다:
- 계정 이름: Snowflake 계정 식별자 (예:
abc123.us-east-1) - 웨어하우스:
CENSUS_WAREHOUSE - 사용자:
CENSUS - 데이터베이스: 이벤트 데이터 데이터베이스 이름
- 스키마: 이벤트 데이터 스키마 이름
- 인증: 키 페어 (개인 키 및 선택적 암호 구문 제공)
이벤트 데이터 매핑
를 OneSignal의 사용자 지정 이벤트 형식에 매핑합니다:| OneSignal 필드 | 설명 | 필수 | |
|---|---|---|---|
name | event_name | 이벤트 식별자 | Yes |
external_id | user_id | 사용자 식별자 | Yes |
timestamp | event_timestamp | 이벤트가 발생한 시간 | No |
properties | event_data | No |
이벤트 테이블 스키마 예시
SQL 쿼리 모드
이벤트 데이터를 변환하기 위한 커스텀 SQL 쿼리를 작성합니다:고급 구성
웨어하우스 비용 관리
- 비용 최적화를 위해 X-Small 웨어하우스 크기 사용
- 자동 일시 중지(60초) 및 자동 재개 구성
- 사용량이 적은 시간대에 동기화 예약
- 다른 배치 처리 시스템과 웨어하우스 공유 고려
실시간 동기화 지원
실시간 이벤트 처리를 위해 이벤트 테이블에서 변경 추적을 활성화합니다:네트워크 보안
Snowflake의 허용된 IP 네트워크 정책을 사용하는 경우 OneSignal의 IP 주소를 허용 목록에 추가합니다. 현재 IP 범위는 OneSignal 지원팀에 문의하세요.제한사항
- 복잡한 분석 쿼리는 웨어하우스 성능 및 비용에 영향을 미칠 수 있습니다
- 사용자/암호 인증은 2025년 11월에 더 이상 사용되지 않습니다
- CENSUS 데이터베이스는 OneSignal 작업 전용으로 예약되어 있습니다
FAQ
어떤 인증 방법을 사용해야 하나요?
키 페어 인증(권장)을 사용하세요. 사용자/암호 인증은 2025년 11월부터 Snowflake에서 차단됩니다.기존 웨어하우스를 사용할 수 있나요?
예, 비용을 최적화하기 위해 dbt 또는 Fivetran과 같은 다른 배치 처리 시스템과 웨어하우스를 공유할 수 있습니다. 웨어하우스가 이벤트 처리 요구 사항에 충분한 용량을 갖추고 있는지 확인하세요.비용을 최적화하려면 어떻게 해야 하나요?
- X-Small 웨어하우스 크기 사용
- 공격적인 자동 일시 중지(60초) 구성
- 사용량이 적은 시간대에 동기화 예약
- 연속 동기화 대신 시간별/일별 동기화 사용