MoEngage × Databricks
MoEngage × Databricks 連携により、Databricks インスタンスと MoEngage アプリの間に直接接続を設定し、データを定期的に同期できます。同期を定期的に実行するスケジュールを定義でき、定期同期は高頻度にすることも、月に 1 回などの時間間隔を設けることもできます。同期中、MoEngage はデータウェアハウスインスタンスに直接接続し、指定されたテーブルまたはアクセス権のあるテーブルからすべての新しいデータを取得して、MoEngage ダッシュボード上の対応するデータを更新します。ユースケース
Databricks と MoEngage の連携は、以下のユースケースに役立ちます。- Databricks からリアルタイムのオーディエンスを同期する
- Databricks からユーザーとイベントをインポートする
- キャンペーンインタラクションイベントを Databricks にエクスポートする
メリット
MoEngage との連携により、以下のメリットが得られます。連携にかかる時間の短縮
- MoEngage は Databricks と直接連携するため、適切な ETL(Extract、Transform、Load)ツールを探す必要がなくなります。
- 長く複雑な ETL パイプラインは、MoEngage がデータに直接アクセスできる一度きりの連携設定に置き換えられます。
- これにより、技術チームへの依存が大幅に軽減されます。
データ処理の高速化
- Databricks インフラストラクチャの能力により、膨大な量のデータをほぼリアルタイムで保存、処理、クエリできます。
- 元のスキーマの変更は、MoEngage 側の構成を変更することなく即座に反映されます。これは従来の ETL パイプラインに対する大きなメリットです。
- ETL ツールや外部のクラウドプロバイダーが不要なため、インポートのコストは従来のデータパイプラインよりも大幅に低くなります。
連携
前提条件サービスプリンシパルの作成、シークレットの生成、カタログとスキーマに対する権限の付与を行うための、ワークスペース管理者権限を持つ Databricks アカウントがあることを確認してください。
パート A:認証を設定する
MoEngage を Databricks SQL ウェアハウスに安全に接続するために、MoEngage では OAuth 2.0 Machine-to-Machine(M2M)認証を使用して Databricks サービスプリンシパル(SP) を構成することを推奨しています。この方法では、ワークスペース管理者権限やカタログ全体の所有権は必要ありません。方法 1:OAuth を使用したサービスプリンシパル(推奨)
方法 1:OAuth を使用したサービスプリンシパル(推奨)
Warehouse Segments は現在 OAuth 方式をサポートしていません。
- 管理者として Databricks のアカウントコンソールにサインインします。
- サイドバーで User Management をクリックします。
- Service principals タブで、Add Service principal をクリックします。
- サービスプリンシパルの名前を入力します(例:
moengage-pi-sp)。 - Add をクリックします。
- サービスプリンシパル管理ダッシュボードで、新しく登録したプリンシパル(例:
moengage-pi)をクリックします。 - Secrets タブをクリックします。
- Generate secret をクリックします。Generate OAuth secret ダイアログボックスが表示されます。

- Lifetime (days) ボックスに有効期間を入力します(1 ~ 730 日の値を指定する必要があります。デフォルト設定は 365 日です)。
- Generate をクリックします。

生成された
client_id と client_secret をすぐにコピーし、安全な場所に保存してください。Databricks はシークレットの値を再度表示しません。これらの値は MoEngage での OAuth 認証の設定時に使用します。
- Azure:Microsoft Entra ID アプリを使用している場合は、まずそれをサービスプリンシパルとして Databricks ワークスペースに同期し、その上で Databricks 管理の OAuth シークレットを生成します。MoEngage に貼り付けるクライアント ID は、Azure Active Directory(AAD)アプリ ID ではなく、Databricks 側の ID です。
- GCP:Google サービスアカウントの IAM の制約は独立して管理されます。MoEngage は Databricks の OAuth 認証情報のみを使用します。
- プライベートデプロイ / カスタムドメイン:ワークスペースで、ワークスペースホストとは異なるカスタム OAuth トークンエンドポイントを使用している場合は、カスタムエンドポイントの URL を探してコピーします。MoEngage の任意の OAuth Token Endpoint フィールドに入力します。
方法 2:パーソナルアクセストークン(PAT)
方法 2:パーソナルアクセストークン(PAT)
パーソナルアクセストークン(PAT)は、それを発行した ID のすべての権限を継承します。PAT は、専用のサービスプリンシパルまたは専用のユーザーのいずれかに対して生成できます。パーソナルアクセストークンを有効にする(初回のみの設定)
- ワークスペース管理者として Databricks にサインインします。
- Settings > Advanced > Personal Access Tokens に移動し、この機能が有効になっていることを確認します。
- (任意ですが推奨)Permission settings で、トークンを作成できるユーザーまたはサービスプリンシパルを制限します。
- 専用のサービスプリンシパル(推奨):この ID は特定の個人に紐付かず、最小権限の原則に従い、従業員の退職の影響を受けません。サービスプリンシパルはユーザーインターフェイスにサインインできないため、サービスプリンシパルのトークンは Databricks CLI または Token Management API を使用して生成する必要があります。
- 専用のユーザー:この方法ではユーザーインターフェイスで生成します。ただし、トークンはそのユーザーのすべての権限を持ち、ユーザーが無効化されると機能しなくなります。
- ユーザーインターフェイスでのユーザートークン:
- Databricks ワークスペースで、タイトルバーの Databricks ユーザー名を選択し、リストから Settings を選択します。
- Access Tokens タブで、Generate New Token を選択します。
- このトークンを識別するためのコメントを入力し、Lifetime ボックスを空のままにしてトークンの有効期間を無期限に変更します。
- Generate をクリックし、生成されたトークンをコピーします。
- Done をクリックします。

- Databricks CLI でのサービスプリンシパルトークン: ターミナルで以下のコマンドを実行します。
Databricks CLI Token Creation返された
token_valueは一度しか表示されないため、すぐにコピーしてください。
パート B:権限を付与する
必要なデータ権限は、選択した認証方式にかかわらず同じです。このセクションでは、<grantee> は以下のいずれかを表します。
- サービスプリンシパルのアプリケーション ID(OAuth またはサービスプリンシパルの PAT を使用する場合)。
- ユーザーのメールアドレス(ユーザーの PAT を使用する場合)。
<grantee> を追加します。
- インポートと Warehouse Segments
- エクスポート
Databricks のデータに対してクエリを実行する、MoEngage にデータをインポートする、または Warehouse Segments 機能を使用するには、Databricks ウェアハウスに接続する必要があります。Databricks プラットフォームで管理者権限を持っていること、および認証情報に有効期限がないことを確認してください。サービスプリンシパルにデータ読み取りアクセス権を付与するサービスプリンシパルにデータ読み取りアクセス権を付与するには、Databricks で以下の SQL クエリを実行します。
最小限の権限付与(1 つのソーステーブル)1 つのソーステーブルに対して最小限の権限を付与するには、Databricks で以下の SQL クエリを実行します。インポートの場合、サービスプリンシパルには このスキーマ全体の認可は、単一テーブルの方法よりも範囲が広くなります。テーブルレベルの方法とスキーマレベルの方法のいずれかを選択できますが、両方を構成しないでください。
Catalog SQL Permission

MODIFY、CREATE TABLE、その他の書き込み権限は必要ありません。現在および今後のすべてのテーブルに対する任意の一括権限付与新しいソーステーブルごとに手動で権限を設定する手間を省くためにスキーマ全体へのアクセス権を付与するには、Databricks で以下の SQL クエリを実行します。パート C:トークンとシークレットの管理
安全な接続を維持するために、以下の手順で認証情報を管理・ローテーションします。パーソナルアクセストークン(PAT)の有効期間とローテーション
OAuth の認証情報とは異なり、PAT は静的で自動的に更新されません。トークンの有効期限が切れたり取り消されたりすると、更新するまで MoEngage の接続は機能しなくなります。企業のセキュリティポリシーに沿ったトークンの有効期間を設定し、有効期限のないトークンの使用は避けてください。
- Databricks で新しいトークンを生成します(詳細な生成手順については「方法 2:パーソナルアクセストークン(PAT)」を参照してください)。
- 新しく生成されたトークンをコピーします。
- MoEngage ダッシュボードにサインインし、アクティブな接続に移動して Edit をクリックし、Access token ボックスに新しいトークンを貼り付けます。
- Save をクリックします。
- 古いアクセスを終了させるために、Databricks ワークスペースで古いトークンをすぐに取り消します。
クライアントシークレットをローテーションする
サービスプリンシパルのクライアントシークレットをローテーションするには、以下の手順を実行します。- Databricks で、サービスプリンシパルの新しいシークレットを生成します(Service principals > Secrets > Generate secret をクリック)。
- 新しく生成された
client_secretをコピーします。 - MoEngage ダッシュボードでアクティブな接続を開き、Edit をクリックして新しい
client_secretを貼り付け、Save をクリックします。 - (任意)新しいシークレットが正しく機能することを確認した後、Databricks で古いシークレットを取り消します。
MoEngage はシークレットの変更をポーリングしません。構成を保存した後に開始される次のスケジュール済みの MoEngage 同期ジョブで、新しいシークレットが自動的に使用されます。シークレットのローテーション中に実行されているアクティブなジョブは、トークンの有効期限が切れるまで(通常 1 時間以内)古いトークンを使用し続けます。これらのジョブでは、ローテーション期間中に一時的なトークン更新の失敗が短時間発生する場合がありますが、次のスケジュール実行は正常に完了します。
パーソナルアクセストークン(PAT)と OAuth を切り替える
ステップ 2:App Marketplace 連携用の Databricks 認証情報を取得する
App Marketplace 用の Databricks 認証情報を取得するには、以下の手順を実行します。- Databricks アカウントにサインインします。
- 左側のナビゲーションメニューで、SQL Warehouses タブをクリックします。
- Serverless Starter Warehouse をクリックします。

- Serverless Starter Warehouse ページで、Connection details タブをクリックします。

- Server hostname と HTTP path の認証情報をコピーして、MoEngage App Marketplace に貼り付けます。
生成されたアクセストークンを作成するには、パート A の 方法 2:パーソナルアクセストークン(PAT) セクションに記載されている手順に従うこともできます。
ステップ 3:App Marketplace で Databricks を接続する
App Marketplace で Databricks を接続するには、以下の手順を実行します。- MoEngage ダッシュボードの左側のナビゲーションメニューで、App marketplace をクリックします。
- App Marketplace ページで、Databricks を検索します。

- Databricks タイルをクリックします。
- Databricks ページで、Integrate タブに移動し、+Add Connection をクリックします。
- 以下の詳細を入力します。

- Connect をクリックします。これで Databricks 接続が統合されました。
サポートされている日時形式
ステップ 4:ネットワークセキュリティと IP 許可リスト
Databricks ワークスペースでネットワークアクセスを制限している場合や IP アクセスリストを使用している場合は、データセンター(DC)の地域に基づいて、MoEngage に割り当てられた送信元 IP ブロックを許可リストに明示的に追加する必要があります。データベース実行トラフィックの Databricks ルーティングはワークスペースのホスト URL を通じて解決されるため、ワークスペースホストをカバーする単一の許可リストエントリで、データベースとクエリのトラフィックを網羅できます。ワークスペースのデータセンターに対応するリージョンの送信元 IP ブロックを取得するには、MoEngage サポートにお問い合わせください。
