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

概要

OneSignal + Azure Synapse統合により、Azure Synapse AnalyticsワークスペースからOneSignalにカスタムイベントを同期して、ユーザー行動に基づいた自動化されたメッセージングキャンペーンとJourneysをトリガーできます。 Azure Synapse Analyticsは、データ統合、データウェアハウス、分析を組み合わせたMicrosoftのクラウドベース分析サービスです。

要件

Azure Synapse

  • SQLプールアクセスを持つAzure Synapseワークスペース
  • 適切な権限を持つデータベースユーザー
  • 構造化された行動データを含むイベントテーブル
  • OneSignal IPアドレスのファイアウォールアクセス

セットアップ

1

OneSignal用の専用ログインを作成

強力で一意なパスワードを使用して専用のログインとユーザーアカウントを作成します:
USE <your-database>;

-- パスワードでサインインする機能を持つcensusログインを作成
CREATE LOGIN CENSUS WITH PASSWORD = '<strong-unique-password>';

-- ログイン用のユーザーを作成
CREATE USER CENSUS FOR LOGIN CENSUS;

-- censusユーザーにデータベースへの接続機能を付与
GRANT CONNECT TO CENSUS;
<your-database>をイベントデータを含む実際のデータベース名に置き換えてください。
2

読み取り権限を付与

イベントデータへの読み取り専用アクセスを提供します:
-- censusユーザーにすべてのテーブルを読み取る機能を付与
EXEC sp_addrolemember 'db_datareader', CENSUS;

-- censusユーザーにスキーマとデータを読み取る機能を付与
-- OneSignalにアクセスさせる各スキーマに対してこれを実行
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を実行します:
-- 例:OneSignal IP範囲のファイアウォールルールを追加
EXEC sp_set_firewall_rule
    N'OneSignal Access',
    'ONESIGNAL_IP_START',
    'ONESIGNAL_IP_END';
お住まいの地域の現在のIPアドレス範囲については、OneSignalサポートにお問い合わせください。
4

OneSignalに接続

In OneSignal, go to Data > Integrations and click Add Integration.Azure Synapseを選択し、次の接続詳細を提供します:
  • Host: Synapse SQLエンドポイントホスト名
  • Port: 1433(デフォルト)
  • Database: データベース名
  • Username: CENSUS
  • Password: ステップ1のパスワード

Event data mapping

Map your to OneSignal’s custom events format:
OneSignal FieldDescriptionRequired
nameevent_nameEvent identifierYes
external_iduser_idUser identifierYes
timestampevent_timestampWhen event occurredNo
propertiesevent_dataNo

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

-- Azure Synapseイベントテーブルの例
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クエリを記述してイベントデータを変換します:
-- 例:最近の高価値イベント
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でイベントを分散
  • 分析ワークロード用のクラスター化列ストアインデックス
  • 大規模イベントデータ用の超並列処理(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ドライバーを使用しますが、分散アーキテクチャ機能が含まれており、クラウドアクセス用の特定のファイアウォール構成が必要です。