메인 콘텐츠로 건너뛰기

OneSignal Snowflake 통합 개요


개요

OneSignal + Snowflake 통합은 두 가지 강력한 데이터 파이프라인을 지원합니다:
  • 내보내기: OneSignal에서 Snowflake로 메시징 이벤트 데이터(푸시, 이메일, SMS, 인앱)를 자동으로 전송하여 분석 및 보고를 수행합니다.
  • 가져오기: Snowflake 데이터세트에서 OneSignal로 사용자 지정 사용자 이벤트를 동기화하여 자동화된 저니 및 개인화된 메시징을 트리거합니다.
이러한 통합을 통해 사용자 참여 데이터를 완전히 제어할 수 있으며 고급 분석 및 실시간 행동 기반 메시징을 제공합니다.

OneSignal 이벤트를 Snowflake로 내보내기

메시징 성능 및 참여 이벤트(예: 전송, 열람, 클릭)를 Snowflake로 전송하여 다음을 수행하세요:
  • 사용자 지정 대시보드 및 보고서 구축
  • 채널 전반의 전송 및 참여 추세 추적
  • OneSignal 데이터를 다른 비즈니스 데이터와 결합하여 분석
요구사항
  • OneSignal 프로페셔널 플랜(무료 앱에서는 사용할 수 없음).
  • Snowflake 계정
  • Snowflake 계정에 IMPORT SHARECREATE DATABASE 역할이 있는지 확인하세요.
    • 공유를 수락하려면 ACCOUNTADMIN 역할을 사용하는 것이 좋습니다.
설정 단계

1. 가입

Snowflake 통합을 활성화하려면 메시지 이벤트 데이터에 대한 OneSignal Marketplace 목록을 통해 액세스를 요청해야 합니다. 거기에서 추가 정보를 얻기 위해 귀하의 팀에 연락할 것입니다.

2. 계정 정보 제공

팀과 연결되면 데이터를 공유할 수 있도록 몇 가지 세부 정보를 제공해야 합니다. Snowflake 계정 IDSnowflake 조직 ID가 필요합니다. 해당 정보를 얻는 가장 쉬운 방법은 아래와 같이 “계정 식별자 복사” 버튼을 클릭하는 것입니다.
OneSignal Marketplace 목록을 통해 연락을 유지해야 합니다. 그러나 계정 정보 제공에 대해 추가 질문이 있는 경우 snowflake-data-sharing@onesignal.com으로 이메일을 보낼 수 있습니다.

Snowflake 계정 식별자 복사

프로그램에 수락되면 다음 항목을 주의하세요:
  • 프로그램에 오신 것을 환영하는 OneSignal의 이메일
  • 데이터 공유가 완료되었음을 알리는 Snowflake의 이메일

Snowflake 데이터 공유 알림 이메일

3. Snowflake 내에서 데이터 공유 수락

데이터 공유가 완료되었음을 알리는 Snowflake의 이메일을 받으면 Snowflake 앱에 로그인하여 데이터 공유를 수락할 수 있습니다. 데이터비공개 공유로 이동하면 새 비공개 공유 목록이 표시됩니다. 가져오기를 클릭하면 데이터가 지역에 복제되기 시작합니다.

Snowflake 비공개 공유 인터페이스

참고: 가져오기 버튼을 사용할 수 없고 요청 버튼이 있는 경우 공유를 시도하는 역할의 권한에 CREATE DATABASE 또는 IMPORT SHARE가 포함되지 않습니다. ACCOUNTADMIN 역할로 전환하는 것이 좋습니다. 데이터가 복제되는 데 시간이 걸립니다. Snowflake는 데이터를 사용할 수 있게 되면 추가 이메일로 후속 조치를 취합니다. 다음과 같은 대화 상자가 표시됩니다

데이터 복제 상태 대화 상자

데이터를 사용할 준비가 되면 목록에 새 가져오기 버튼이 표시됩니다. 가져오기 버튼을 클릭하면 새 대화 상자가 나타납니다

데이터베이스 구성 대화 상자

데이터베이스 및 데이터베이스 역할의 이름을 원하는 대로 설정하세요. 그런 다음 가져오기를 클릭하세요

데이터 공유 설정 완료

완료되었습니다! 이제 OneSignal에서 Snowflake로 데이터가 동기화됩니다. 동기화 주기는 24시간마다 한 번으로 설정되어 있으므로 초기 데이터는 다음 날까지 사용할 수 없을 수 있습니다.

이벤트 및 속성

Snowflake Marketplace에서 사용할 수 있는 데이터에 대한 개요

메시지 이벤트 데이터

자세한 내용은 이벤트 스트림을 참조하세요. 사용자가 생성한 각 메시지 이벤트에 대해 다음 메타데이터가 레코드에 첨부됩니다.
Column NameTypeDescriptionExample
event_idUUIDA unique ID that represents the eventdc76df03-287c-403a-aabd-b2d4fe44e5c6
event_kindstringThe type of event that occurred. The list of event kinds can be found here.message.email.opened
event_impression_timestampunix_timestampThe time that Onesignal processes the event1684951205
subscription_idUUIDA unique ID that represents the device/subscription6e8b6978-75a4-4882-878c-2d15a78c2409
subscription_languagestringThe language of this subscriptionen
subscription_timezoneintegerThe specified timezone of this subscription-25200
subscription_device_typestringThe type of device this subscription uses.SMS
onesignal_idUUIDThe onesignal_id of the user that made the impressiondc76df03-287c-403a-aabd-b2d4fe44e5c6
external_idstringThe external_id of the user that made the impressionMyExternalId
message_idUUIDA unique ID that represents the messagedc76df03-287c-403a-aabd-b2d4fe44e5c6
message_namestringThe human-readable id of the Notification/MessageCampaign 1
message_titlestringThe Title of the Notification/Message.English only at this timeBonus 50 coins when you play!
message_bodystringThe Body of the message. (Truncated) English only at this time.Play against your friends and earn an additional...

메시지 이벤트 종류

자세한 내용은 이벤트 스트림을 참조하세요. 메시지 이벤트는 Snowflake Marketplace에서 제공할 첫 번째 데이터 범주입니다. 추가 데이터 범주에 대한 요청은 snowflake-data-sharing@onesignal.com으로 문의하세요!

데이터 보존

Snowflake를 통해 OneSignal에서 공유된 데이터는 30일 동안 보존됩니다. 이 기간을 초과하여 데이터를 보존하려면 관련 데이터를 자체 테이블에 복사하는 것이 좋습니다.

Snowflake에서 이벤트 가져오기

Snowflake에서 OneSignal로 행동 이벤트 데이터를 전송하여 다음을 수행하세요:
  • 사용자 활동을 기반으로 저니 트리거
  • 행동 데이터를 기반으로 메시징 개인화
요구사항
  • 웨어하우스 액세스 권한이 있는 Snowflake 계정
  • Snowflake 테이블 또는 뷰에 저장된 이벤트 데이터
  • OneSignal에서 Snowflake 인스턴스로의 네트워크 연결
  • 적절한 권한이 있는 사용자 자격 증명
설정 단계
1

OneSignal용 전용 역할 생성

Snowflake 모범 사례에 따라 역할 계층 구조를 생성하세요:
-- Create a role for the census user
CREATE ROLE CENSUS_ROLE;

-- Ensure the sysadmin role inherits any privileges the census role is granted
GRANT ROLE CENSUS_ROLE TO ROLE SYSADMIN;
2

전용 웨어하우스 생성

OneSignal 작업을 위한 비용 최적화 웨어하우스를 생성하세요:
-- Create a warehouse for the census role, optimizing for cost over performance
CREATE WAREHOUSE CENSUS_WAREHOUSE WITH
    WAREHOUSE_SIZE = XSMALL
    AUTO_SUSPEND = 60
    AUTO_RESUME = TRUE
    INITIALLY_SUSPENDED = FALSE;

GRANT USAGE ON WAREHOUSE CENSUS_WAREHOUSE TO ROLE CENSUS_ROLE;
GRANT OPERATE ON WAREHOUSE CENSUS_WAREHOUSE TO ROLE CENSUS_ROLE;
GRANT MONITOR ON WAREHOUSE CENSUS_WAREHOUSE TO ROLE CENSUS_ROLE;
3

사용자 생성 및 권한 부여

OneSignal 사용자를 생성하고 이벤트 데이터에 대한 액세스 권한을 부여하세요:
-- Create the census user
CREATE USER CENSUS WITH
    DEFAULT_ROLE = CENSUS_ROLE
    DEFAULT_WAREHOUSE = CENSUS_WAREHOUSE
    PASSWORD = '<strong-unique-password>';

GRANT ROLE CENSUS_ROLE TO USER CENSUS;

-- Grant access to your event data (replace with your actual database/schema)
GRANT USAGE ON DATABASE "<your-database>" TO ROLE CENSUS_ROLE;
GRANT USAGE ON SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
GRANT SELECT ON ALL TABLES IN SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
GRANT SELECT ON FUTURE TABLES IN SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
GRANT SELECT ON ALL VIEWS IN SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
GRANT SELECT ON FUTURE VIEWS IN SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
4

부기 데이터베이스 생성(고급 동기화 엔진)

OneSignal의 동기화 상태 관리를 위한 비공개 데이터베이스를 생성하세요:
-- Create a private bookkeeping database
CREATE DATABASE "CENSUS";
GRANT ALL PRIVILEGES ON DATABASE "CENSUS" TO ROLE CENSUS_ROLE;

CREATE SCHEMA "CENSUS"."CENSUS";
GRANT ALL PRIVILEGES ON SCHEMA "CENSUS"."CENSUS" TO ROLE CENSUS_ROLE;
GRANT CREATE STAGE ON SCHEMA "CENSUS"."CENSUS" TO ROLE CENSUS_ROLE;
기본 동기화 엔진 또는 읽기 전용 모드를 사용하는 경우 이 단계를 건너뛰세요.
5

인증 구성

향상된 보안을 위해 키 페어 인증(권장)을 설정하세요:
  1. Snowflake 문서에 따라 공개/비공개 키 페어를 생성하세요
  2. Snowflake 사용자에 공개 키를 구성하세요
  3. OneSignal 연결 설정에서 비공개 키를 사용하세요
또는 비밀번호 인증을 사용할 수 있습니다(더 이상 사용되지 않음 - 2025년 11월에 차단됩니다).
6

OneSignal에 연결

OneSignal에서 Data > Integrations으로 이동하여 Add Integration을 클릭합니다.Snowflake를 선택하고 다음 연결 세부정보를 제공하세요:
  • 계정 이름: Snowflake 계정 식별자(예: abc123.us-east-1)
  • 웨어하우스: CENSUS_WAREHOUSE
  • 사용자: CENSUS
  • 데이터베이스: 이벤트 데이터 데이터베이스 이름
  • 스키마: 이벤트 데이터 스키마 이름
  • 인증: 키 페어(비공개 키 및 선택적 암호 제공)

이벤트 데이터 매핑

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

예시 이벤트 테이블 스키마

-- Example Snowflake event table
CREATE TABLE analytics.user_events (
    event_id STRING,
    event_name STRING NOT NULL,
    user_id STRING NOT NULL,
    event_timestamp TIMESTAMP_TZ DEFAULT CURRENT_TIMESTAMP(),
    event_properties VARIANT,
    session_id STRING,
    device_type STRING
);

SQL 쿼리 모드

이벤트 데이터를 변환하기 위한 사용자 지정 SQL 쿼리를 작성하세요:
-- Example: Recent high-value events
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_properties
FROM analytics.user_events
WHERE event_timestamp >= DATEADD(day, -7, CURRENT_TIMESTAMP())
    AND event_properties:value::NUMBER > 100
ORDER BY event_timestamp DESC;

고급 구성

웨어하우스 비용 관리

  • 비용 최적화를 위해 X-Small 웨어하우스 크기 사용
  • 자동 일시 중지(60초) 및 자동 재개 구성
  • 사용량이 적은 시간대에 동기화 예약
  • 다른 배치 처리 시스템과 웨어하우스 공유 고려

라이브 동기화 지원

실시간 이벤트 처리를 위해 이벤트 테이블에서 변경 추적을 활성화하세요:
ALTER TABLE "analytics"."user_events" SET CHANGE_TRACKING = TRUE;

네트워크 보안

Snowflake의 허용된 IP 네트워크 정책을 사용하는 경우 OneSignal의 IP 주소를 허용 목록에 추가하세요. 현재 IP 범위는 OneSignal 지원팀에 문의하세요.

제한사항

  • 복잡한 분석 쿼리는 웨어하우스 성능 및 비용에 영향을 줄 수 있습니다
  • 사용자/비밀번호 인증은 2025년 11월에 더 이상 사용되지 않습니다
  • CENSUS 데이터베이스는 OneSignal 작업 전용으로 예약되어 있습니다

OneSignal과 데이터 공유 연결 해제

OneSignal과의 데이터 공유를 비활성화하려면 snowflake-data-sharing@onesignal.com으로 이메일을 보내주세요.

FAQ

어떤 인증 방법을 사용해야 하나요?

키 페어 인증(권장)을 사용하세요. 사용자/비밀번호 인증은 2025년 11월부터 Snowflake에서 차단됩니다.

기존 웨어하우스를 사용할 수 있나요?

예, dbt 또는 Fivetran과 같은 다른 배치 처리 시스템과 웨어하우스를 공유하여 비용을 최적화할 수 있습니다. 이벤트 처리 요구사항에 충분한 용량이 있는지 확인하세요.

비용을 어떻게 최적화할 수 있나요?

  • X-Small 웨어하우스 크기 사용
  • 적극적인 자동 일시 중지(60초) 구성
  • 사용량이 적은 시간대에 동기화 예약
  • 연속 동기화 대신 시간별/일별 동기화 사용