메인 콘텐츠로 건너뛰기

개요

OneSignal + Azure Synapse 통합을 사용하면 Azure Synapse Analytics 작업 영역에서 OneSignal로 사용자 지정 이벤트를 동기화하여 사용자 행동을 기반으로 자동화된 메시징 캠페인 및 Journeys를 트리거할 수 있습니다. Azure Synapse Analytics는 데이터 통합, 데이터 웨어하우징 및 분석을 결합한 Microsoft의 클라우드 기반 분석 서비스입니다.

요구 사항

Azure Synapse

  • SQL 풀 액세스 권한이 있는 Azure Synapse 작업 영역
  • 적절한 권한이 있는 데이터베이스 사용자
  • 구조화된 행동 데이터가 포함된 이벤트 테이블
  • OneSignal IP 주소에 대한 방화벽 액세스

설정

1

OneSignal용 전용 로그인 만들기

강력하고 고유한 비밀번호로 전용 로그인 및 사용자 계정을 만듭니다:
USE <your-database>;

-- Create census login with the ability to sign in with a password
CREATE LOGIN CENSUS WITH PASSWORD = '<strong-unique-password>';

-- Create user for the login
CREATE USER CENSUS FOR LOGIN CENSUS;

-- Give the census user the ability to connect to database
GRANT CONNECT TO CENSUS;
<your-database>를 이벤트 데이터가 포함된 실제 데이터베이스 이름으로 바꾸세요.
2

읽기 권한 부여

이벤트 데이터에 대한 읽기 전용 액세스를 제공합니다:
-- Give the census user the ability to read all tables
EXEC sp_addrolemember 'db_datareader', CENSUS;

-- Grant census user ability to read schema and data
-- Run this for each schema you intend OneSignal to access
GRANT SELECT, VIEW DEFINITION ON SCHEMA::<your-schema> TO CENSUS;
<your-schema>를 이벤트 데이터가 포함된 실제 스키마 이름으로 바꾸세요. OneSignal이 액세스하도록 하려는 각 스키마에 대해 이 명령을 반복하세요.
3

방화벽 액세스 구성

OneSignal IP 주소를 허용하도록 Azure Synapse 방화벽을 구성합니다.Windows Azure Management Portal을 사용하거나 기본 데이터베이스에서 sp_set_firewall_rule을 실행합니다:
-- Example: Add firewall rule for OneSignal IP range
EXEC sp_set_firewall_rule
    N'OneSignal Access',
    'ONESIGNAL_IP_START',
    'ONESIGNAL_IP_END';
해당 지역의 현재 IP 주소 범위는 OneSignal 지원팀에 문의하세요.
4

OneSignal에 연결

OneSignal에서 Data > Integrations으로 이동하여 Add Integration을 클릭합니다.Azure Synapse를 선택하고 다음 연결 세부 정보를 제공합니다:
  • 호스트: Synapse SQL 엔드포인트 호스트 이름
  • 포트: 1433 (기본값)
  • 데이터베이스: 데이터베이스 이름
  • 사용자 이름: CENSUS
  • 비밀번호: 1단계의 비밀번호

이벤트 데이터 매핑

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

예제 이벤트 테이블 스키마

-- Example Azure Synapse event table
CREATE TABLE analytics.user_events (
    event_id BIGINT IDENTITY(1,1) PRIMARY KEY,
    event_name NVARCHAR(100) NOT NULL,
    user_id NVARCHAR(255) NOT NULL,
    event_timestamp DATETIME2 DEFAULT GETUTCDATE(),
    event_data NVARCHAR(MAX),
    session_id NVARCHAR(255),
    device_type NVARCHAR(50)
)
WITH (DISTRIBUTION = HASH(user_id), CLUSTERED COLUMNSTORE INDEX);

SQL 쿼리 모드

사용자 지정 SQL 쿼리를 작성하여 이벤트 데이터를 변환합니다:
-- Example: Recent high-value events
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_data
FROM analytics.user_events
WHERE event_timestamp >= DATEADD(day, -7, GETUTCDATE())
    AND JSON_VALUE(event_data, '$.value') > 100
ORDER BY event_timestamp DESC;

Azure 특정 기능

분산 아키텍처

  • 최적의 쿼리 성능을 위해 user_id로 분산된 이벤트
  • 분석 워크로드를 위한 클러스터형 columnstore 인덱스
  • 대규모 이벤트 데이터를 위한 대규모 병렬 처리(MPP)

Azure 에코시스템과의 통합

  • 자동화된 이벤트 파이프라인을 위해 Azure Data Factory에 연결
  • 실시간 이벤트 스트리밍을 위해 Azure Event Hubs와 통합
  • 인증을 위해 Azure Active Directory 활용

고급 네트워크 구성

OneSignal은 지역 제약, IP 주소 허용 목록 또는 SSH 터널링을 포함한 고급 네트워킹 제어를 사용하는 Azure Synapse 인스턴스에 성공적으로 연결할 수 있습니다. 네트워크 액세스 구성에 대한 자세한 내용은 Azure Synapse 관리자 또는 OneSignal 지원팀에 문의하세요.

제한 사항

  • SQL Server JDBC 드라이버 연결 프로토콜 기반
  • OneSignal IP 주소에 대한 명시적 방화벽 규칙 필요
  • 복잡한 쿼리는 SQL 풀 성능 및 비용에 영향을 미칠 수 있음
  • JSON 작업은 최적의 성능을 위해 신중한 인덱싱 필요

FAQ

여러 Azure Synapse 스키마에 연결할 수 있나요?

예, 이벤트 데이터가 포함된 각 스키마에 대해 GRANT SELECT, VIEW DEFINITION ON SCHEMA::<schema> 문을 실행하여 CENSUS 사용자에게 여러 스키마에 대한 액세스 권한을 부여할 수 있습니다.

OneSignal에 대한 방화벽 액세스를 구성하려면 어떻게 해야 하나요?

Azure Management Portal 또는 sp_set_firewall_rule을 사용하여 OneSignal의 IP 주소를 추가하세요. 현재 IP 범위는 OneSignal 지원팀에 문의하세요.

Azure Synapse와 SQL Server 통합의 차이점은 무엇인가요?

Azure Synapse는 동일한 SQL Server JDBC 드라이버를 사용하지만 분산 아키텍처 기능을 포함하고 클라우드 액세스를 위한 특정 방화벽 구성이 필요합니다.