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

概要

OneSignal + Greenplumインテグレーションにより、Greenplumデータベースからカスタムイベントを同期して、ユーザー行動に基づいた自動化されたメッセージングキャンペーンとJourneysをトリガーできます。 Greenplumは、大規模な分析ワークロード向けに設計された、PostgreSQLベースの超並列処理(MPP)データベースです。

要件

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

Greenplum

  • ネットワークアクセスを持つGreenplumインスタンス
  • 適切な権限を持つデータベースユーザー
  • 構造化された行動データを含むイベントテーブル

同期エンジンと権限

OneSignalは、Greenplumのテーブルとビューからデータを読み取り、それを同期して自動化されたメッセージングキャンペーンをトリガーします。データベースへの負荷を制限するために、OneSignalは状態追跡テーブルを維持し、最後の同期以降に変更されたデータのみを同期できるようにします(増分同期)。Greenplum接続を構成する際、状態追跡の処理方法を決定する同期エンジンを選択します。 Basic Sync Engineは、OneSignalが所有するインフラストラクチャに状態追跡テーブルを維持し、読み取りアクセスのみが必要で、構成が簡単です。 Advanced Sync Engineは、独自のGreenplumインスタンス内の専用スキーマに状態追跡テーブルを維持することで、パフォーマンスを向上させます。

セットアップ

1

Censusユーザーを作成する

OneSignalが使用する専用データベースユーザーを作成します:
-- Create CENSUS user and set password
CREATE USER CENSUS WITH PASSWORD '<strong unique password>';
2

同期エンジンを選択して権限を構成する

Basic Sync Engine(読み取り専用アクセス)の場合:イベントデータスキーマへの読み取りアクセスを付与します。<your schema>をスキーマ名に置き換えます:
-- Let the census user read all existing tables in this schema
GRANT SELECT ON ALL TABLES IN SCHEMA "<your schema>" TO CENSUS;

-- Let the census user read any new tables added to this schema
ALTER DEFAULT PRIVILEGES IN SCHEMA "<your schema>" GRANT SELECT ON TABLES TO CENSUS;

-- Let the census user execute any existing functions in this schema
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA "<your schema>" TO CENSUS;

-- Let the census user execute any new functions added to this schema
ALTER DEFAULT PRIVILEGES IN SCHEMA "<your schema>" GRANT EXECUTE ON FUNCTIONS TO CENSUS;
Advanced Sync Engine(パフォーマンスの向上)の場合:最初に上記のBasic Sync Engineの手順を完了してから、次を追加します:
-- Create a private bookkeeping schema where Census can store sync state
CREATE SCHEMA CENSUS;

-- Give the census user full access to the bookkeeping schema
GRANT ALL ON SCHEMA CENSUS TO CENSUS;

-- Ensure the census user has access to any existing objects in the bookkeeping schema
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA CENSUS TO CENSUS;

-- Let the census user see your data schema
GRANT USAGE ON SCHEMA "<your schema>" TO CENSUS;
3

OneSignalに接続する

OneSignalで、Data > Integrationsに移動し、Add Integrationをクリックします。Greenplumを選択して、次を提供します:
  • **Host:**Greenplumマスターホスト
  • **Port:**5432(またはカスタムポート)
  • **Database:**データベース名
  • Username:CENSUS
  • **Password:**ステップ1のパスワード
  • **Sync Engine:**ステップ2に基づいてBasicまたはAdvancedを選択します

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

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

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

-- Example Greenplum event table
CREATE TABLE analytics.user_events (
    event_id BIGSERIAL,
    event_name VARCHAR(100) NOT NULL,
    user_id VARCHAR(255) NOT NULL,
    event_timestamp TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
    event_properties JSONB,
    session_id VARCHAR(255),
    device_type VARCHAR(50)
);

処理モード

テーブルモード

Greenplumデータベースから直接テーブルまたはビュー全体を同期します。OneSignalは列をイベントフィールドに自動的にマッピングします。

SQLクエリモード

イベントデータを変換するためのカスタムPostgreSQL互換クエリを作成します:
-- Example: Recent high-value events
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_properties
FROM analytics.user_events
WHERE event_timestamp >= NOW() - INTERVAL '7 days'
    AND (event_properties->>'value')::NUMERIC > 100
ORDER BY event_timestamp DESC;

MPPクエリの最適化

イベントクエリが分散実行用に最適化されていることを確認して、Greenplumの並列処理を活用します。適切な分散キーを使用し、パフォーマンスを向上させるためにセグメント間のデータ移動を回避します。

高度なネットワーク構成

OneSignalは、リージョン制約、IPアドレス許可リスト、またはSSHトンネリングなどの高度なネットワーク制御を使用しているGreenplumインスタンスに正常に接続できます。 すべての接続にTLS v1.2以降を使用するようにGreenplumインスタンスを構成することをお勧めします。

制限事項

  • 大規模な分析クエリはクラスタのパフォーマンスに影響を与える可能性があります
  • JSON/JSONB操作は分散用に最適化する必要があります
  • パフォーマンスのために、セグメント間の結合は最小限に抑える必要があります

よくある質問

どの同期エンジンを選択すればよいですか?

より簡単なセットアップと読み取り専用アクセスを希望する場合は、Basic Sync Engineを使用してください。パフォーマンスの向上が必要で、OneSignalがGreenplumインスタンスにテーブルを作成することを許可できる場合は、Advanced Sync Engineを選択してください。

GreenplumのMPPアーキテクチャ用にクエリを最適化するにはどうすればよいですか?

クエリが分散キーを効果的に利用していることを確認し、セグメント間の不要なデータ移動を回避し、Greenplumの列指向ストレージを分析に活用します。

イベントデータにGreenplumの外部テーブルを使用できますか?

はい、OneSignalは、外部システムに保存されているParquetやCSVなどの形式のデータを参照する外部テーブルから読み取ることができます。