メインコンテンツへスキップ

概要

OneSignal + SQL Server統合により、Microsoft SQL Serverデータベースからカスタムイベントを同期してOneSignalに送信し、ユーザー行動に基づいた自動化されたメッセージングキャンペーンとJourneysをトリガーできます。 SQL Serverは、エンタープライズアプリケーションとデータウェアハウジング向けに設計されたMicrosoftのリレーショナルデータベース管理システムです。

要件

  • アウトバウンドメッセージイベント用のEvent Streamsへのアクセス(プランの制限と超過料金が適用されます)
  • インバウンドイベント同期用のCustom Eventsへのアクセス(プランの制限と超過料金が適用されます)
  • 更新されたアカウントプラン(無料アプリでは利用できません)

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

Advanced Sync Engineを設定(オプション)

パフォーマンス向上のために、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;
Basic Sync Engineまたは読み取り専用モードを使用している場合は、この手順をスキップしてください。
4

OneSignalに接続

OneSignalで、Data > Integrationsに移動し、Add Integrationをクリックします。SQL Serverを選択し、次の接続詳細を提供します:
  • Host: SQL Serverインスタンスのホスト名またはIPアドレス
  • Port: 1433(デフォルト)またはカスタムポート
  • Database: データベース名
  • Username: CENSUS
  • Password: ステップ1のパスワード

イベントデータマッピング

をOneSignalのカスタムイベント形式にマッピングします:
OneSignalフィールド説明必須
nameevent_nameイベント識別子はい
external_iduser_idユーザー識別子はい
timestampevent_timestampイベントが発生した時刻いいえ
propertiesevent_dataいいえ

イベントテーブルスキーマの例

-- 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サポートにお問い合わせください。

同期エンジンオプション

Basic Sync Engine

  • イベントデータへの読み取り専用アクセス
  • OneSignalインフラストラクチャによって管理される状態追跡
  • 最小限の権限でより簡単なセットアップ

Advanced Sync Engine

  • ローカル状態追跡によるパフォーマンスの向上
  • テーブルを作成するための追加の権限が必要
  • 大量のイベント処理に推奨

制限事項

  • 複雑なクエリは、トラフィックが多い期間中にデータベースのパフォーマンスに影響を与える可能性があります
  • JSON操作には、最適なパフォーマンスのためにSQL Server 2016以降が必要です
  • すべての権限は、セットアップ中に指定されたデータベースレベルで付与されます

FAQ

複数のSQL Serverスキーマに接続できますか?

はい、イベントデータを含む各スキーマに対してGRANT SELECT, VIEW DEFINITION ON SCHEMA::<schema>ステートメントを実行することで、CENSUSユーザーに複数のスキーマへのアクセスを許可できます。

どのSQL Serverバージョンがサポートされていますか?

OneSignalは最新のSQL Serverバージョンをサポートしています。イベントクエリでのJSON操作には、SQL Server 2016以降を推奨します。

Advanced Sync Engineを使用する必要がありますか?

いいえ、Basic Sync Engineはほとんどのユースケースで十分に機能します。パフォーマンスの向上が必要で、OneSignalがSQL Serverインスタンスにテーブルを作成することを許可できる場合は、Advanced Sync Engineを使用してください。