메인 콘텐츠로 건너뛰기

개요

OneSignal + SQL Server 통합을 통해 Microsoft SQL Server 데이터베이스에서 OneSignal로 사용자 지정 이벤트를 동기화하여 사용자 행동을 기반으로 자동화된 메시징 캠페인 및 저니를 트리거할 수 있습니다. SQL Server는 엔터프라이즈 애플리케이션 및 데이터 웨어하우징을 위해 설계된 Microsoft의 관계형 데이터베이스 관리 시스템입니다.

요구사항

SQL Server

  • 네트워크 액세스 권한이 있는 SQL Server 인스턴스
  • 적절한 권한이 있는 데이터베이스 사용자
  • 구조화된 행동 데이터가 포함된 이벤트 테이블
  • OneSignal에서 SQL Server 인스턴스로의 네트워크 연결

설정

1

OneSignal용 전용 사용자 생성

강력하고 고유한 비밀번호로 전용 사용자 계정을 생성하세요:
-- Create census user with the ability to sign in with a password
CREATE USER CENSUS WITH PASSWORD = '<strong-unique-password>';

-- Give the census user the ability to connect to database
GRANT CONNECT TO CENSUS;
모든 SQL Server 명령은 스크립트를 실행할 때 지정된 데이터베이스 내에서 실행됩니다.
2

읽기 권한 부여

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

-- Grant census user ability to read data from within a schema
-- 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의 동기화 상태를 위한 부기 스키마를 생성하세요:
-- Create a private bookkeeping schema where Census can store sync state
CREATE SCHEMA CENSUS AUTHORIZATION CENSUS;

-- Give the census user full access to the bookkeeping schema
GRANT ALTER, DELETE, EXECUTE, INSERT, REFERENCES, SELECT,
          UPDATE, VIEW DEFINITION ON SCHEMA::CENSUS TO CENSUS;

-- Give the census user the ability to create tables within the database
GRANT CREATE TABLE TO CENSUS;
기본 동기화 엔진 또는 읽기 전용 모드를 사용하는 경우 이 단계를 건너뛰세요.
4

OneSignal에 연결

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

이벤트 데이터 매핑

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

예시 이벤트 테이블 스키마

-- Example SQL Server 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)
);

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;

고급 네트워크 구성

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

동기화 엔진 옵션

기본 동기화 엔진

  • 이벤트 데이터에 대한 읽기 전용 액세스
  • OneSignal 인프라에서 관리하는 상태 추적
  • 최소 권한으로 더 간단한 설정

고급 동기화 엔진

  • 로컬 상태 추적으로 향상된 성능
  • 테이블을 생성하기 위한 추가 권한 필요
  • 대용량 이벤트 처리에 권장

제한사항

  • 복잡한 쿼리는 트래픽이 많은 기간 동안 데이터베이스 성능에 영향을 줄 수 있습니다
  • JSON 작업은 최적의 성능을 위해 SQL Server 2016 이상이 필요합니다
  • 모든 권한은 설정 중에 지정된 데이터베이스 수준에서 부여됩니다

FAQ

여러 SQL Server 스키마에 연결할 수 있나요?

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

지원되는 SQL Server 버전은 무엇인가요?

OneSignal은 최신 SQL Server 버전을 지원합니다. 이벤트 쿼리의 JSON 작업의 경우 SQL Server 2016 이상이 권장됩니다.

고급 동기화 엔진을 사용해야 하나요?

아니요, 기본 동기화 엔진은 대부분의 사용 사례에 잘 작동합니다. 향상된 성능이 필요하고 OneSignal이 SQL Server 인스턴스에 테이블을 생성할 수 있도록 허용할 수 있는 경우 고급 동기화 엔진을 사용하세요.