メインコンテンツへスキップ
OneSignalのレガシー統合でSnowflakeを使用している場合は、Snowflakeレガシー統合ガイドを参照してください。移行手順についてはレガシーからの移行を参照してください。

概要

OneSignal + Snowflake統合は、2つの強力なデータパイプラインをサポートしています:
  • アウトバウンド:OneSignalからSnowflakeにメッセージングイベントデータ(プッシュ、メール、SMS、アプリ内)を自動的に送信し、分析とレポート作成を行います。
  • インバウンド:Snowflakeデータセットからカスタムユーザーイベントを OneSignalに同期して、自動Journeyとパーソナライズされたメッセージングをトリガーします。
これらの統合により、ユーザーエンゲージメントデータを完全に制御でき、高度な分析とリアルタイムの行動駆動型メッセージングが可能になります。

アウトバウンド設定

現在、アーリーアクセス中です。 アクセスを要求するには、以下の情報と共にsupport@onesignal.comにお問い合わせください:
  • お客様の会社名
  • OneSignal組織ID
  • 有効にしたいアプリID
メッセージングのパフォーマンスとエンゲージメントイベント(送信、開封、クリックなど)をSnowflakeに送信して以下を実現します:
  • カスタムダッシュボードとレポートを構築
  • チャネル全体の配信とエンゲージメントのトレンドを追跡
  • OneSignalデータを他のビジネスデータと組み合わせて分析
要件
  • OneSignal Professionalプラン(無料アプリでは利用できません)
  • Snowflakeアカウント
  • Snowflakeでのセットアップ用のSECURITYADMINまたはACCOUNTADMINロール

1. Snowflakeアカウントの詳細を収集

統合を構成する前に、Snowflakeアカウントから以下の情報を収集します:
  • Snowflakeホスト<account_identifier>.snowflakecomputing.com形式のアカウントURL
  • データベース名:OneSignalがイベントデータを書き込むデータベース
  • スキーマ名:OneSignalテーブル用のデータベース内のスキーマ(OneSignalによって自動作成されます)
  • ウェアハウス名:データロード操作に使用するウェアハウス

Snowflakeアカウント識別子の場所

2. Snowflakeでセットアップスクリプトを実行

Snowflakeウェアハウスで以下のSQLスクリプトを実行して、OneSignalに必要なロール、ユーザー、ウェアハウス、データベースを作成します:
スクリプトの上部にある変数値をカスタマイズして、命名規則に合わせることができます。既存のウェアハウスまたはデータベースを使用している場合は、それに応じてスクリプトを変更してください。

3. 認証用のキーペアを生成

OneSignalは、Snowflakeアカウントへの安全なアクセスのためにキーペア認証を必要とします。キーを生成して構成するには、次の手順に従います:
1

秘密鍵を生成

次のコマンドのいずれかを実行して秘密鍵を生成します:暗号化されていない秘密鍵(より簡単ですが、安全性は低くなります):
暗号化された秘密鍵(本番環境に推奨):
暗号化されたキーを使用する場合は、パスフレーズの作成を求められます。このパスフレーズは安全に保存してください。OneSignalを構成する際に必要になります。
2

公開鍵を生成

秘密鍵から公開鍵を生成します:
3

Snowflakeユーザーに公開鍵を割り当て

公開鍵ファイルの内容(ヘッダーとフッター行を除く)をコピーし、Snowflakeで次のSQLコマンドを実行します:
<YOUR_PUBLIC_KEY_CONTENT>をキーの内容に置き換えます(-----BEGIN PUBLIC KEY----------END PUBLIC KEY-----の行は除く)。
秘密鍵ファイルを安全に保管してください。次のステップでOneSignalに提供する必要があります。秘密鍵を公開したり、バージョン管理にコミットしたりしないでください。

4. OneSignalに接続

1

統合を有効化

OneSignalで、Data > Integrations > Snowflakeに移動します。
2

詳細を入力

  • ホスト:<your_account>.snowflakecomputing.com
  • ポート:オプション、デフォルトは443
  • データベース:例:ONESIGNAL
  • ロール:オプション、省略時はユーザーのデフォルトロールを使用
  • ユーザー:例:ONESIGNAL_USER
  • 秘密鍵:秘密鍵ファイル(rsa_key.p8)の内容を貼り付けます
  • 秘密鍵のパスフレーズ:オプション、秘密鍵が暗号化されている場合のみ
  • データ処理場所:Snowflakeに送信する前にデータが処理される場所
3

統合を構成

  • 同期頻度: 15分ごとの頻度
  • スキーマ/テーブル名: onesignal_events_<app-id>およびmessage_eventsとして事前設定(編集可能)
  • イベントタイプ: 同期するイベントを選択—すべてまたは必要なものだけを選択
4

イベントを選択

Snowflakeウェアハウスで受信したいイベントを選択します。
5

セットアップを完了

Saveをクリックして、成功の確認を待ちます
初回のデータ同期がSnowflakeに表示されるまでに15〜30分かかる場合があります。待機中に、プッシュ、メール、アプリ内、またはSMS経由でメッセージを送信して、選択したイベントをトリガーします。

5. Snowflakeでデータを表示

初回同期が完了したら、OneSignalイベントデータをクエリします:
スキーマの欠落、権限エラー、形式が正しくないイベントなどの問題が発生した場合は、support@onesignal.comにお問い合わせください。

メッセージイベントとプロパティ

メッセージイベントの種類

プロパティ: event_kind タイプ: String メッセージとイベントの種類(例:message.push.receivedmessage.push.sent)。

イベントデータスキーマ

ユーザーが生成する各メッセージイベントには、以下のメタデータがレコードに添付されます。

注意事項

  • 保存/アクティブ化後の同期は、完了までにさらに15〜30分かかる場合があります。
  • 非アクティブ化しても、非アクティブ化後に最終同期が1回行われる場合があります。
  • 効率的なデータ同期を確保するために、システムは自動的にステージングデータセットを作成および管理します。これらのデータセットは、fivetran_{2つのランダムな単語}_stagingのようなパターンで命名され、メインスキーマに統合される前の処理中にデータを一時的に保存します。これらのステージングデータセットは、合理化されたワークフローを維持するために不可欠であり、削除しないでください。自動的に再作成されます。

レガシーからの移行

現在レガシーSnowflake統合を使用している場合、このセクションでは主な違いとクエリの移行方法について説明します。

主な違い

レガシー統合(30日間保持のデータ共有)からイベントを自分のテーブルにコピーした場合、 レガシーイベントテーブルは異なるスキーマを使用している可能性があることに注意してください。新しい統合ではカラム名が変更され、自動型推論が使用されるため、バックアップテーブルに 新しいセットアップを向けるとエラーや予期しない結果が生じる可能性があります。新しいテーブルを作成し、履歴イベントと新しいイベントを統合する必要がある場合は、 以下の結合ビューを使用することをお勧めします。

スキーマの変更

新しい統合はオンデマンドでカラムを作成します。特定のフィールドのデータを含むイベントがない場合、そのカラムはテーブルに存在しません。そのフィールドにデータが表示されると、カラムが自動的に作成されます。

カラム名の変更

型推論

新しい統合は自動型推論を使用します。カラムのすべての値が数値(例:すべてのEXTERNAL_ID値が数値)の場合、カラムはNUMBERとして型付けされる可能性があります。後で非数値の値が表示されると、カラムの型はVARCHARに昇格されます。 必要に応じて明示的なキャストを使用してください:

クエリの移行

既存のクエリを移行するには:
  1. レガシーデータベースへの参照を新しいSnowflakeデータベースを指すように更新
  2. 上記のカラム名の変更を考慮
  3. 必要に応じて明示的な型キャストを追加
オプションとして、新しい統合テーブルとレガシーバックアップテーブルを結合し、EVENT_IDで重複排除する結合ビューを作成できます:
<new-database>.<new-schema>を新しい統合のデータベースとスキーマに置き換えてください。<legacy-backup-database>.<legacy-backup-schema>をレガシー共有データのバックアップ先に置き換えてください。このビューは履歴データと新しいデータを統合し、EVENT_IDで重複排除するため、 両方のソースに表示されるイベントは1回のみカウントされます。これは、移行中に 両方の統合を同時に実行する場合に特に重要です。
レガシーデータ共有を切断するには、snowflake-data-sharing@onesignal.comにお問い合わせください。

インバウンド設定

SnowflakeからOneSignalに行動イベントデータを送信して以下を実現します:
  • ユーザーアクティビティに基づいてJourneyをトリガー
  • 行動データに基づいてメッセージングをパーソナライズ
要件
  • アウトバウンドメッセージイベント用のEvent Streamsへのアクセス(プランの制限と超過料金が適用されます)
  • インバウンドイベント同期用のCustom Eventsへのアクセス(プランの制限と超過料金が適用されます)
  • 更新されたアカウントプラン(無料アプリでは利用できません)
  • ウェアハウスアクセス権を持つSnowflakeアカウント
  • Snowflakeテーブルまたはビューに保存されたイベントデータ
  • OneSignalからSnowflakeインスタンスへのネットワーク接続
  • 適切な権限を持つユーザー認証情報
1

OneSignal専用のロールを作成

Snowflakeのベストプラクティスに従ってロール階層を作成します:
2

専用ウェアハウスを作成

OneSignal操作用にコスト最適化されたウェアハウスを作成します:
3

ユーザーを作成して権限を付与

OneSignalユーザーを作成し、イベントデータへのアクセスを許可します:
4

記帳データベースを作成(高度な同期エンジン)

OneSignalの同期状態管理用のプライベートデータベースを作成します:
基本同期エンジンまたは読み取り専用モードを使用する場合は、このステップをスキップしてください。
5

認証を設定

セキュリティを強化するために、キーペア認証(推奨)を設定します:
  1. Snowflakeのドキュメントに従って公開鍵/秘密鍵のペアを生成します
  2. Snowflakeユーザーに公開鍵を設定します
  3. OneSignalの接続設定で秘密鍵を使用します
または、パスワード認証を使用することもできます(非推奨 - 2025年11月にブロックされます)。
6

OneSignalに接続

OneSignalで、Data > Integrationsに移動し、Add Integrationをクリックします。Snowflakeを選択し、以下の接続詳細を入力します:
  • アカウント名: Snowflakeアカウント識別子(例:abc123.us-east-1
  • ウェアハウス: CENSUS_WAREHOUSE
  • ユーザー: CENSUS
  • データベース: イベントデータのデータベース名
  • スキーマ: イベントデータのスキーマ名
  • 認証: キーペア(秘密鍵とオプションのパスフレーズを提供)

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

をOneSignalのカスタムイベント形式にマッピングします:

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

SQLクエリモード

カスタムSQLクエリを記述してイベントデータを変換します:

高度な設定

ウェアハウスコストの管理

  • コスト最適化のためにX-Smallウェアハウスサイズを使用
  • 自動サスペンド(60秒)と自動再開を設定
  • オフピーク時間に同期をスケジュール
  • 他のバッチ処理システムとウェアハウスを共有することを検討

ライブ同期のサポート

リアルタイムイベント処理の場合、イベントテーブルで変更追跡を有効にします:

ネットワークセキュリティ

Snowflakeの許可IPネットワークポリシーを使用している場合は、OneSignalのIPアドレスを許可リストに追加してください。現在のIP範囲については、OneSignalサポートにお問い合わせください。

制限事項

  • 複雑な分析クエリはウェアハウスのパフォーマンスとコストに影響を与える可能性があります
  • ユーザー/パスワード認証は2025年11月に非推奨になります
  • CENSUSデータベースはOneSignal操作専用に予約されています

FAQ

どの認証方法を使用すればよいですか?

キーペア認証を使用してください(推奨)。ユーザー/パスワード認証は、2025年11月からSnowflakeによってブロックされます。

既存のウェアハウスを使用できますか?

はい、dbtやFivetranなどの他のバッチ処理システムとウェアハウスを共有してコストを最適化できます。ウェアハウスにイベント処理のニーズに十分な容量があることを確認してください。

コストを最適化するにはどうすればよいですか?

  • X-Smallウェアハウスサイズを使用
  • アグレッシブな自動サスペンド(60秒)を設定
  • オフピーク時間に同期をスケジュール
  • 連続同期の代わりに時間単位/日次同期を使用