概要
OneSignal + ClickHouse統合により、ClickHouse分析データベースからOneSignalへのカスタムイベントの自動同期が可能になります。これにより、高性能カラムナーデータベースに保存されたユーザー行動データに基づいて、自動化されたJourneysとパーソナライズされたメッセージングキャンペーンをトリガーできます。要件
- アウトバウンドメッセージイベント用のEvent Streamsへのアクセス(プランの制限と超過料金が適用されます)
- インバウンドイベント同期用のCustom Eventsへのアクセス(プランの制限と超過料金が適用されます)
- 更新されたアカウントプラン(無料アプリでは利用できません)
ClickHouse
- ClickHouseサーバー(セルフホストまたはクラウド)
- イベントテーブルへの読み取りアクセス権を持つデータベース認証情報
- 適切なスキーマを持つ行動データを含むイベントデータテーブル
セットアップ
1
OneSignal用のClickHouseユーザーを作成
イベントテーブルへの読み取り専用アクセス権を持つOneSignal専用のユーザーアカウントを作成します:
2
ネットワークアクセスを構成
OneSignalがClickHouseインスタンスに接続できることを確認します:
- セルフホスト:OneSignalのIPアドレスからの接続を許可します
- ClickHouse Cloud:許可リストにOneSignal IPを追加します
- ポート:デフォルトのClickHouseポートは8123(HTTP)または9000(ネイティブ)です
3
OneSignalで統合を追加
OneSignalで、Data > Integrationsに移動し、Add Integrationをクリックします。ClickHouseを選択し、次を提供します:
- Host:ClickHouseサーバーのホスト名またはIP
- Port:ClickHouseポート(デフォルト:HTTPの場合は8123、ネイティブの場合は9000)
- Database:イベントテーブルを含むデータベース名
- Username:
onesignal_reader(または選択したユーザー名) - Password:ClickHouseユーザーのパスワード
- Protocol:HTTPまたはネイティブ(簡単にするためにHTTPを推奨)
4
イベントデータソースを構成
イベントデータを含むClickHouseテーブルを指定します:
- Table:イベントレコードを含むテーブル名(例:
user_events) - Event Query:イベントデータをフィルタリングまたは変換するためのオプションのSQLクエリ
- イベント名/タイプ(String)
- ユーザー識別子(String)
- イベントタイムスタンプ(DateTime)
- 追加のイベントプロパティ(JSONまたは個別の列)
5
接続をテスト
Test Connectionをクリックして、OneSignalがClickHouseデータベースにアクセスしてイベントデータを読み取れることを確認します。
イベントデータマッピング
をOneSignalのカスタムイベント形式にマッピングします:| OneSignalフィールド | 説明 | 必須 | |
|---|---|---|---|
name | event_name | イベント識別子 | はい |
external_id | user_id | ユーザー識別子 | はい |
timestamp | event_timestamp | イベントが発生した時刻 | いいえ |
properties | event_data | いいえ |
高度な構成
カスタムSQLクエリ
カスタムSQLを使用して、OneSignalに同期する前にイベントデータをフィルタリングまたは変換します:パフォーマンスの最適化
ClickHouseは分析クエリに最適化されています。次を検討してください:- パーティショニング:イベントタイムスタンプで日付ベースのパーティショニングを使用します
- インデックス作成:user_idとevent_nameに適切なインデックスを作成します
- マテリアライズドビュー:より高速なクエリのためにイベントデータを事前集計します
ClickHouseは追加専用ワークロードに最適化されています。最高のパフォーマンスを得るために、イベントデータがこのパターンに従っていることを確認してください。