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

概要

OneSignal + Trino統合により、TrinoクラスターからOneSignalにカスタムイベントを同期して、ユーザー行動に基づいて自動化されたメッセージングキャンペーンとJourneyをトリガーできます。 Trinoは、複数のソースからの大規模なデータセットに対して高速な分析クエリを実行するために設計された分散SQLクエリエンジンです。

要件

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

Trino

  • ネットワークアクセス可能なTrinoクラスター
  • 適切な権限を持つユーザー資格情報
  • TLS接続のサポート(OneSignalで必須)
  • Trinoカタログを介してアクセス可能なイベントデータ

セットアップ

1

Trino接続を設定

OneSignalで、Data > Integrationsに移動し、Add Integrationをクリックします。Trinoを選択し、次の接続詳細を入力します:
  • Host: Trinoクラスターのホスト名
  • Username: Trinoのユーザー名
  • Password: Trinoのパスワード
  • Port: 443(デフォルト)またはカスタムポート
OneSignalはTrinoへのTLS接続を必要とします。インスタンスがポート443で実行されていない場合は、カスタムポートを指定してください。
2

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

パフォーマンスを向上させるために、専用のCENSUSカタログを設定します:
  1. CENSUSという名前のスキーマを含むCENSUSという名前のカタログを作成します
  2. コネクタが次をサポートしていることを確認します:
    • CREATE TABLEおよびDROP TABLE操作
    • テーブル書き込み(INSERT、DELETE、UPDATE)
    • CREATE OR REPLACE TABLEステートメント
  3. OneSignalユーザーにCENSUS.CENSUSスキーマへの完全な権限を付与します
テスト済みの構成には、MySQL、PostgreSQL、Snowflake、Iceberg、Delta Lakeコネクタが含まれます。

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

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

イベントクエリの例

-- 例:カタログ全体の最近の高価値イベント
SELECT
    event_name,
    user_id,
    event_timestamp,
    CAST(event_properties AS JSON) as event_properties
FROM catalog.schema.user_events
WHERE event_timestamp >= current_timestamp - INTERVAL '7' DAY
    AND JSON_EXTRACT_SCALAR(event_properties, '$.value') > '100'
ORDER BY event_timestamp DESC;

クロスカタログイベントクエリ

-- 例:複数のデータソース間のフェデレーテッドクエリ
SELECT
    'combined_activity' as event_name,
    u.user_id,
    current_timestamp as event_timestamp,
    JSON_FORMAT(JSON_OBJECT(
        'web_sessions', w.session_count,
        'mobile_events', m.event_count,
        'purchase_value', p.total_value
    )) as event_properties
FROM postgres_catalog.users.profiles u
LEFT JOIN web_catalog.analytics.sessions w ON u.user_id = w.user_id
LEFT JOIN mobile_catalog.events.activities m ON u.user_id = m.user_id
LEFT JOIN purchases_catalog.orders.summary p ON u.user_id = p.user_id
WHERE u.created_date >= current_date - INTERVAL '30' DAY;

Sync Engineオプション

Basic Sync Engine

  • 任意のTrinoカタログとコネクタで動作
  • OneSignalインフラストラクチャによって管理される状態追跡
  • 追加要件なしのシンプルなセットアップ

Advanced Sync Engine

  • ローカル状態追跡による強化されたパフォーマンス
  • 専用のCENSUS.CENSUSカタログとスキーマが必要
  • テーブル書き込み操作をサポートするコネクタをサポート
  • 大量のイベント処理に推奨

サポートされているコネクタ

OneSignalのAdvanced Sync Engineは次でテスト済みです:
  • MySQLコネクタ(読み取り/書き込みモード)
  • PostgreSQLコネクタ(読み取り/書き込みモード)
  • Snowflakeコネクタ(読み取り/書き込みモード)
  • Icebergコネクタ(S3およびAWS Glueを使用)
  • Delta Lakeコネクタ(AWS GlueおよびStarburst Galaxyカタログを使用)

制限事項

  • TLS接続が必要(OneSignalのセキュリティ要件)
  • Advanced Sync EngineにはCREATE OR REPLACE TABLEサポートが必要(Trino 2023年10月以降)
  • Warehouse Writebackはまだサポートされていません(近日公開予定)
  • WITH句でカスタムテーブルオプションを提供できません

FAQ

どのTrinoコネクタがOneSignalで動作しますか?

読み取り操作をサポートする任意のコネクタがBasic Sync Engineで動作します。Advanced Sync Engineの場合、テーブル書き込みとCREATE OR REPLACE TABLEをサポートするコネクタが必要です。

単一の同期で複数のカタログをクエリできますか?

はい!Trinoのフェデレーテッドクエリ機能により、単一のクエリで複数のソース(PostgreSQL、MySQL、S3など)からのイベントデータを組み合わせることができます。

Advanced Sync Engineは必要ですか?

いいえ、Basic Sync Engineはほとんどのユースケースで十分に機能します。強化されたパフォーマンスが必要で、必要なCENSUS.CENSUSカタログを設定できる場合は、Advanced Sync Engineを使用してください。