Skip to main content
Databricks は、大量の構造化データおよび半構造化データを、高いスケーラビリティと効率性で保存、分析、処理できるプラットフォームです。独自のアーキテクチャにより、Databricks ではデータを統合し、迅速な分析を行い、すべてのユーザーがアクセスできる価値あるデータドリブンなインサイトを得ることができます。

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) を構成することを推奨しています。この方法では、ワークスペース管理者権限やカタログ全体の所有権は必要ありません。
Warehouse Segments は現在 OAuth 方式をサポートしていません。
OAuth 2.0 M2M 認証を使用して Databricks サービスプリンシパル(SP)を設定するには、以下の手順を実行します。Databricks でサービスプリンシパルを追加する
  1. 管理者として Databricks のアカウントコンソールにサインインします。
  2. サイドバーで User Management をクリックします。
  3. Service principals タブで、Add Service principal をクリックします。
  4. サービスプリンシパルの名前を入力します(例:moengage-pi-sp)。
  5. Add をクリックします。
サービスプリンシパルの OAuth シークレットを生成する
  1. サービスプリンシパル管理ダッシュボードで、新しく登録したプリンシパル(例:moengage-pi)をクリックします。
  2. Secrets タブをクリックします。
  3. Generate secret をクリックします。Generate OAuth secret ダイアログボックスが表示されます。 Databricks サービスプリンシパルの Secrets タブにある Generate secret ボタン
  4. Lifetime (days) ボックスに有効期間を入力します(1 ~ 730 日の値を指定する必要があります。デフォルト設定は 365 日です)。
  5. Generate をクリックします。 Lifetime フィールドがある Generate OAuth secret ダイアログ
生成された client_id と client_secret をすぐにコピーし、安全な場所に保存してください。Databricks はシークレットの値を再度表示しません。これらの値は MoEngage での OAuth 認証の設定時に使用します。
生成された client_id と client_secret の確認画面
以下のクラウド固有の考慮事項に注意してください。
  • 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 フィールドに入力します。
パーソナルアクセストークン(PAT)は、それを発行した ID のすべての権限を継承します。PAT は、専用のサービスプリンシパルまたは専用のユーザーのいずれかに対して生成できます。パーソナルアクセストークンを有効にする(初回のみの設定)
  1. ワークスペース管理者として Databricks にサインインします。
  2. Settings > Advanced > Personal Access Tokens に移動し、この機能が有効になっていることを確認します。
  3. (任意ですが推奨)Permission settings で、トークンを作成できるユーザーまたはサービスプリンシパルを制限します。
トークンの ID を選択する
  • 専用のサービスプリンシパル(推奨):この ID は特定の個人に紐付かず、最小権限の原則に従い、従業員の退職の影響を受けません。サービスプリンシパルはユーザーインターフェイスにサインインできないため、サービスプリンシパルのトークンは Databricks CLI または Token Management API を使用して生成する必要があります。
  • 専用のユーザー:この方法ではユーザーインターフェイスで生成します。ただし、トークンはそのユーザーのすべての権限を持ち、ユーザーが無効化されると機能しなくなります。
トークンを生成する
  • ユーザーインターフェイスでのユーザートークン:
    1. Databricks ワークスペースで、タイトルバーの Databricks ユーザー名を選択し、リストから Settings を選択します。
    2. Access Tokens タブで、Generate New Token を選択します。
    3. このトークンを識別するためのコメントを入力し、Lifetime ボックスを空のままにしてトークンの有効期間を無期限に変更します。
    4. Generate をクリックし、生成されたトークンをコピーします。
    5. Done をクリックします。 Screenshot 2025-02-25 at 6.03.21 PM.png
  • Databricks CLI でのサービスプリンシパルトークン: ターミナルで以下のコマンドを実行します。
    Databricks CLI Token Creation
    返された token_value は一度しか表示されないため、すぐにコピーしてください。

パート B:権限を付与する

必要なデータ権限は、選択した認証方式にかかわらず同じです。このセクションでは、<grantee> は以下のいずれかを表します。
  • サービスプリンシパルのアプリケーション ID(OAuth またはサービスプリンシパルの PAT を使用する場合)。
  • ユーザーのメールアドレス(ユーザーの PAT を使用する場合)。
接続パスで参照される SQL ウェアハウスに対して Can use 権限を割り当てる必要があります。Databricks のユーザーインターフェイスでこれを設定するには、SQL Warehouses > <warehouse> > Permissions に移動し、Can use 権限で <grantee> を追加します。
Databricks のデータに対してクエリを実行する、MoEngage にデータをインポートする、または Warehouse Segments 機能を使用するには、Databricks ウェアハウスに接続する必要があります。Databricks プラットフォームで管理者権限を持っていること、および認証情報に有効期限がないことを確認してください。サービスプリンシパルにデータ読み取りアクセス権を付与するサービスプリンシパルにデータ読み取りアクセス権を付与するには、Databricks で以下の SQL クエリを実行します。
Catalog SQL Permission
Screenshot 2025-02-25 at 5.37.34 PM.png最小限の権限付与(1 つのソーステーブル)1 つのソーステーブルに対して最小限の権限を付与するには、Databricks で以下の SQL クエリを実行します。
インポートの場合、サービスプリンシパルには MODIFY、CREATE TABLE、その他の書き込み権限は必要ありません。現在および今後のすべてのテーブルに対する任意の一括権限付与新しいソーステーブルごとに手動で権限を設定する手間を省くためにスキーマ全体へのアクセス権を付与するには、Databricks で以下の SQL クエリを実行します。
このスキーマ全体の認可は、単一テーブルの方法よりも範囲が広くなります。テーブルレベルの方法とスキーマレベルの方法のいずれかを選択できますが、両方を構成しないでください。

パート C:トークンとシークレットの管理

安全な接続を維持するために、以下の手順で認証情報を管理・ローテーションします。

パーソナルアクセストークン(PAT)の有効期間とローテーション

OAuth の認証情報とは異なり、PAT は静的で自動的に更新されません。トークンの有効期限が切れたり取り消されたりすると、更新するまで MoEngage の接続は機能しなくなります。企業のセキュリティポリシーに沿ったトークンの有効期間を設定し、有効期限のないトークンの使用は避けてください。
有効期限が近づいている、または漏洩した PAT をローテーションするには、以下の手順を実行します。
  1. Databricks で新しいトークンを生成します(詳細な生成手順については「方法 2:パーソナルアクセストークン(PAT)」を参照してください)。
  2. 新しく生成されたトークンをコピーします。
  3. MoEngage ダッシュボードにサインインし、アクティブな接続に移動して Edit をクリックし、Access token ボックスに新しいトークンを貼り付けます。
  4. Save をクリックします。
  5. 古いアクセスを終了させるために、Databricks ワークスペースで古いトークンをすぐに取り消します。

クライアントシークレットをローテーションする

サービスプリンシパルのクライアントシークレットをローテーションするには、以下の手順を実行します。
  1. Databricks で、サービスプリンシパルの新しいシークレットを生成します(Service principals > Secrets > Generate secret をクリック)。
  2. 新しく生成された client_secret をコピーします。
  3. MoEngage ダッシュボードでアクティブな接続を開き、Edit をクリックして新しい client_secret を貼り付け、Save をクリックします。
  4. (任意)新しいシークレットが正しく機能することを確認した後、Databricks で古いシークレットを取り消します。
MoEngage はシークレットの変更をポーリングしません。構成を保存した後に開始される次のスケジュール済みの MoEngage 同期ジョブで、新しいシークレットが自動的に使用されます。シークレットのローテーション中に実行されているアクティブなジョブは、トークンの有効期限が切れるまで(通常 1 時間以内)古いトークンを使用し続けます。これらのジョブでは、ローテーション期間中に一時的なトークン更新の失敗が短時間発生する場合がありますが、次のスケジュール実行は正常に完了します。

パーソナルアクセストークン(PAT)と OAuth を切り替える

認証タイプを変更すると、既存の認証情報は失われます。たとえば、パーソナルアクセストークン(PAT)から OAuth に切り替えると、既存のトークンは完全に削除されます。後で元に戻す場合は、新しい PAT を生成して MoEngage に貼り付ける必要があります。更新された接続の詳細は、次のスケジュール済みジョブから有効になります。アクティブなジョブは、開始時に取得した認証情報を引き続き使用します。

ステップ 2:App Marketplace 連携用の Databricks 認証情報を取得する

App Marketplace 用の Databricks 認証情報を取得するには、以下の手順を実行します。
  1. Databricks アカウントにサインインします。
  2. 左側のナビゲーションメニューで、SQL Warehouses タブをクリックします。
  3. Serverless Starter Warehouse をクリックします。
  4. Serverless Starter Warehouse ページで、Connection details タブをクリックします。
  5. Server hostname と HTTP path の認証情報をコピーして、MoEngage App Marketplace に貼り付けます。
    生成されたアクセストークンを作成するには、パート A の 方法 2:パーソナルアクセストークン(PAT) セクションに記載されている手順に従うこともできます。

ステップ 3:App Marketplace で Databricks を接続する

App Marketplace で Databricks を接続するには、以下の手順を実行します。
  1. MoEngage ダッシュボードの左側のナビゲーションメニューで、App marketplace をクリックします。
  2. App Marketplace ページで、Databricks を検索します。
  1. Databricks タイルをクリックします。
  2. Databricks ページで、Integrate タブに移動し、+Add Connection をクリックします。
  3. 以下の詳細を入力します。
Databricks の接続
  1. Connect をクリックします。これで Databricks 接続が統合されました。
Databricks 接続を設定した後は、それを使用して MoEngage でさまざまなインポートやエクスポートを設定できます。

サポートされている日時形式

ステップ 4:ネットワークセキュリティと IP 許可リスト

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

ステップ 5:接続の検証とトラブルシューティング

サービスプリンシパルと権限付与を構成した後、MoEngage の App marketplace タブに移動して接続をテストします。テストが成功すれば、認証とサービスプリンシパルの権限が正しく構成されていることが確認できます。 検証ステップが失敗した場合は、以下の診断ガイドを使用して一般的な問題を解決してください。

Databricks を使用した Warehouse Segments

Databricks は Warehouse Segments で利用できます。詳細については、Warehouse Segments を参照してください。

Databricks から MoEngage にユーザーとイベントをインポートする

アカウントで MoEngage × Databricks のインポートを設定するには、Databricks インポートガイドを参照してください。

MoEngage から Databricks にイベントをエクスポートする

MoEngage から Databricks のテーブルにイベントをエクスポートできます。エクスポートを設定するには、Databricks エクスポートガイドを参照してください。

参考ドキュメント