Skip to main content

OneSignal Snowflake 통합 개요


개요

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

OneSignal 이벤트를 Snowflake로 내보내기

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

1. 가입

Snowflake 통합을 활성화하려면 Message Events Data에 대한 OneSignal Marketplace 리스팅을 통해 액세스를 요청해야 합니다. 그러면 추가 정보를 얻기 위해 팀에 연락드리겠습니다.

2. 계정 정보 제공

팀과 연결되면 데이터를 공유할 수 있도록 일부 세부 정보를 제공해야 합니다. Snowflake 계정 IDSnowflake 조직 ID가 필요합니다. 해당 정보를 얻는 가장 쉬운 방법은 “Copy account identifier” 버튼을 클릭하는 것입니다(아래 그림 참조).
OneSignal Marketplace 리스팅을 통해 저희와 연락하셔야 합니다. 그러나 계정 정보 제공에 대한 추가 질문이 있으면 [email protected]으로 이메일을 보내주세요.

Snowflake 계정 식별자 복사

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

Snowflake 데이터 공유 알림 이메일

3. Snowflake 내에서 데이터 공유 승인

데이터 공유가 완료되었음을 알리는 Snowflake의 이메일을 받으면 Snowflake 앱에 로그인하여 데이터 공유를 승인할 수 있습니다. DataPrivate Sharing으로 이동하면 새로운 Privately Shared Listing을 확인할 수 있습니다. Get을 클릭하면 데이터가 해당 지역으로 복제되기 시작합니다.

Snowflake 비공개 공유 인터페이스

참고: Get 버튼이 표시되지 않고 Request 버튼이 표시되는 경우, 공유를 시도하는 역할의 권한에 CREATE DATABASE 또는 IMPORT SHARE가 포함되어 있지 않은 것입니다. ACCOUNTADMIN 역할로 전환하는 것이 좋습니다. 데이터가 복제되는 데 시간이 걸립니다. 데이터를 사용할 수 있게 되면 Snowflake에서 추가 이메일을 보내드립니다. 다음과 같은 대화 상자가 표시됩니다.

데이터 복제 상태 대화 상자

데이터를 사용할 준비가 되면 목록에 새로운 Get 버튼이 표시됩니다. Get 버튼을 클릭하면 새 대화 상자가 표시됩니다.

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

원하는 데이터베이스 이름과 데이터베이스 역할을 설정하세요. 그런 다음 Get을 클릭합니다.

데이터 공유 설정 완료

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

이벤트 및 속성

Snowflake의 Marketplace에서 사용 가능한 데이터 개요

메시지 이벤트 데이터

자세한 내용은 Event Streams를 참조하세요. 사용자가 생성한 각 메시지 이벤트에 대해 다음 메타데이터가 레코드에 첨부됩니다.
Column NameTypeDescriptionExample
event_idUUID이벤트를 나타내는 고유 IDdc76df03-287c-403a-aabd-b2d4fe44e5c6
event_kindstring발생한 이벤트 유형. 이벤트 종류 목록은 여기에서 확인할 수 있습니다.message.email.opened
event_impression_timestampunix_timestampOneSignal이 이벤트를 처리하는 시간1684951205
subscription_idUUID디바이스/구독을 나타내는 고유 ID6e8b6978-75a4-4882-878c-2d15a78c2409
subscription_languagestring이 구독의 언어en
subscription_timezoneinteger이 구독의 지정된 시간대-25200
subscription_device_typestring이 구독이 사용하는 디바이스 유형SMS
onesignal_idUUID노출을 생성한 사용자의 onesignal_iddc76df03-287c-403a-aabd-b2d4fe44e5c6
external_idstring노출을 생성한 사용자의 external_idMyExternalId
message_idUUID메시지를 나타내는 고유 IDdc76df03-287c-403a-aabd-b2d4fe44e5c6
message_namestring알림/메시지의 사람이 읽을 수 있는 IDCampaign 1
message_titlestring알림/메시지의 제목.현재는 영어만 지원Bonus 50 coins when you play!
message_bodystring메시지의 본문. (잘림) 현재는 영어만 지원Play against your friends and earn an additional...

메시지 이벤트 종류

자세한 내용은 Event Streams를 참조하세요. 메시지 이벤트는 Snowflake의 Marketplace에서 제공하는 첫 번째 데이터 카테고리입니다. 추가 데이터 카테고리 요청은 [email protected]으로 문의하세요!

데이터 보존

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

Snowflake에서 이벤트 가져오기

Snowflake에서 OneSignal로 행동 이벤트 데이터를 전송하여:
  • 사용자 활동을 기반으로 Journey를 트리거합니다
  • 행동 데이터를 기반으로 메시징을 개인화합니다
요구사항
  • 웨어하우스 액세스 권한이 있는 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

부기 데이터베이스 생성 (Advanced Sync Engine)

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;
Basic Sync Engine 또는 읽기 전용 모드를 사용하는 경우 이 단계를 건너뛰세요.
5

인증 구성

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

OneSignal에 연결

OneSignal에서 Data > Integrations으로 이동하여 Add Integration을 클릭합니다.Snowflake를 선택하고 다음 연결 세부 정보를 제공합니다:
  • Account Name: Snowflake 계정 식별자 (예: abc123.us-east-1)
  • Warehouse: CENSUS_WAREHOUSE
  • User: CENSUS
  • Database: 이벤트 데이터 데이터베이스 이름
  • Schema: 이벤트 데이터 스키마 이름
  • Authentication: Key-pair (개인 키 및 선택적 암호문 제공)

이벤트 데이터 매핑

를 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과의 데이터 공유를 비활성화하려면 [email protected]으로 이메일을 보내주세요.

FAQ

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

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

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

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

비용을 최적화하려면 어떻게 해야 하나요?

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