概要
MoEngage では、Databricks データベースのテーブルを通じてユーザーとイベントをインポートできます。インポートの種類
MoEngage は、Databricks データウェアハウスからの次の種類のインポートをサポートしています。- Registered Users: MoEngage にすでに登録されているユーザー。
- Anonymous Users: MoEngage にまだ登録されていないユーザー。
- Events (標準およびユーザー定義): MoEngage は、キャンペーンインタラクションイベントなどの標準イベントと、ユーザー定義のイベントをインポートできます。
データの準備
MoEngage のインポートでは特定のテーブルスキーマは必要ありません。テーブル内のすべての列は、MoEngage ダッシュボードで個別にスキップまたはマッピングできます。ただし、インポートを設定する前に考慮すべき点がいくつかあります。- ユーザーインポート
- イベントインポート
MoEngage で定期的なユーザーインポートを設定すると、MoEngage は
updated_at タイムスタンプ列を参照して、前回の同期以降に変更されたデータを同期します。この列には、データの変更時刻を正確に反映していれば任意の名前を付けることができます。テーブルでこの列に別の名前を付けている場合は、MoEngage ダッシュボードでこのマッピングを個別に設定できます。必要なアクセス権限
MoEngage がデータを取得できるように、MoEngage にはデータベースへのREAD アクセス権が必要です。既存のデータベースユーザーに次の権限を付与するか、MoEngage 専用の新しいデータベースユーザーを作成してください。
クエリ 1 (必須)
GRANT SELECT ON SCHEMA \catalog_name`.`schema_name` TO `[email protected]`;`
上記のクエリは、カタログ catalog_name のスキーマ schema_name 内のすべてのテーブルに対する SELECT 権限を、メールアドレス [email protected] のユーザーに付与します。
SELECT 権限を付与すると、MoEngage はスキーマ内で次の操作を実行できるようになります。
- スキーマ内のすべてのテーブルからデータを読み取る。
- 任意のテーブルに対して
SELECTクエリを実行する。 - 基になるデータを変更する権限なしで、テーブルの内容を表示する。
クエリ 2 (必須)
GRANT USE SCHEMA ON SCHEMA \catalog_name`.`schema_name` TO `[email protected]`;`
上記のクエリは、カタログ catalog_name のスキーマ schema_name 内のすべてのテーブルに対する USE SCHEMA 権限を、メールアドレス [email protected] のユーザーに付与します。
USE SCHEMA 権限により、ユーザーは次のことができるようになります。
- スキーマのメタデータにアクセスして表示する。
- スキーマをアクティブな作業コンテキストとして設定する (例:
USE SCHEMAを使用)。 - スキーマ一覧でスキーマを表示する。
- 完全修飾オブジェクト名を参照する際にスキーマ名を使用する。
USE SCHEMA: 指定したスキーマにアクセスして参照するために必要な権限です。SELECT: そのスキーマ内のテーブルからデータを読み取ることを許可する権限です。USE SCHEMA権限がない場合、スキーマ内のテーブルに対するSELECT権限を持っていても、ユーザーはスキーマにアクセスできません。クエリ 2 は、スキーマへのアクセスを有効にするためにUSE SCHEMA権限を明示的に付与します。
<catalog_name>: カタログの名前。<schema_name>: データベース/スキーマの名前。<[email protected]>: トークンを作成したユーザーのメール ID。
日付型属性のインポート
日付型属性のインポートには追加の手順が必要です。詳細については、こちらを参照してください。Databricks からのインポートの設定
Databricks インポートを設定するには、次の手順を実行します。- MoEngage のサイドバーメニューで、Data メニュー項目
にカーソルを合わせます。Data メニューが表示されます。
- Data imports をクリックします。

- Data imports ページで、Data warehouses タブをクリックします。
- 右上の + Import をクリックし、Users または Events を選択して新しいインポートを作成します。

- Databricks タイルをクリックします。
- Continue をクリックします。

ステップ 1: Databricks 接続とテーブルソースを選択する
インポート名

- ユーザーインポート
- イベントインポート
登録済みユーザーと匿名ユーザーのどちらをインポートするかを選択できます。両方を一緒にインポートすることもできます。.png?fit=max&auto=format&n=ug1DZn3QSotOzs8r&q=85&s=05df7939a46afdf1d10559814be4b341)
.png?fit=max&auto=format&n=ug1DZn3QSotOzs8r&q=85&s=05df7939a46afdf1d10559814be4b341)
インポートソース
最初のステップである Source and format では、使用する Databricks 接続とインポート元のテーブルを MoEngage に指定する必要があります。開始するには、次の手順を実行します。- Databricks connection リストで、このインポートに使用する接続を選択します。Databricks 接続をまだ作成していない場合は、Databricks connection リストの末尾にある + Add connection をクリックすると、App Marketplace にリダイレクトされて設定できます。Databricks ウェアハウスを MoEngage に接続する方法の詳細については、こちらを参照してください。
- Databricks 接続を選択すると、Schema/Dataset リストと Table/View リストが表示されます。
- Schema/Dataset で、スキーマ/データセットを選択します。注: スキーマが正しく読み込まれない場合は、前提条件に記載されている必要な権限が MoEngage に付与されていることを確認してください。
- Table/View リストで、データのインポート元となるテーブル/ビューを選択します。

イベントインポート
上記の手順に加えて、MoEngage は複数のイベントを含むテーブルに対する追加サポートを提供しています。テーブルに複数のイベントが含まれている場合は、まずテーブルを Preview してから、Table contains multiple events チェックボックスをオンにする必要があります。

ステップ 2: 列を MoEngage 属性にマッピングする
このステップでは、テーブルの列を MoEngage に存在する属性にマッピングする必要があります。すべての列が縦に並べて表示されます。
- Column name: マッピングする列名を示します。列名の下には、参考として、MoEngage がサンプル値 (前のステップで取得したテーブルの最初の行から抽出) を表示します。
- Map attribute: テーブルの列をマッピングする MoEngage 属性を指定します。新しい属性を作成することもできます。一部の属性は複数のデータ型からの取り込みをサポートしているため、列のデータ型も選択する必要があります。datetime 列の場合は、フォーマットを選択する必要があります。詳細については、こちらを参照してください。
- Action: 必要に応じて、列をスキップすることを選択できます。スキップした列はインポートされません。
ユーザーインポート
ユーザーインポート
- 登録済みユーザー
- 匿名ユーザー
- すべてのユーザー
イベントインポート
イベントインポート
- Select attribute リストにある + Create attribute をクリックします。Create new attribute ダイアログボックスが表示されます。

- Attribute name ボックスに、属性の名前を入力します。
- Data type リストで、データ型を選択します。この属性や既存の属性は、Data Management ページから編集できます。
新しく作成したユーザー属性は、初回のインポートが成功するまで Data Management ページに表示されません。
マニフェストファイル
必要に応じて、マニフェストファイルをアップロードして、これらの列を自動マッピングすることもできます。マニフェストファイルをアップロードするには、次の手順を実行します。- マッピングテーブルの右上にある Upload mapping ファイルをクリックします。

- Upload mapping ダイアログボックスで、マニフェストファイルをアップロードします。

- Done をクリックします。
マニフェストファイル内の列が存在しない MoEngage 属性にマッピングされている場合、マッピングは空白になります。UI から新しい属性を手動で作成してからマッピングする必要があります。
Object データ型のサポート
Object データ型は Databricks でもサポートされています。互換性のある JSON データを Databricks に保存する
Databricks 内に JSON データを保存するには、列のデータ型を VARIANT 型に変更する必要があります。詳細については、こちらを参照してください。Databricks 内に保存する JSON は有効な JSON である必要があります。そうでない場合、値は JSON として書き込まれません。JSON 列の例を次に示します。Databricks 経由で JSON データをインポートする
MoEngage プラットフォームで Object 型として指定されている既存の属性を Databricks の列に関連付けることで、JSON データをインポートできます。

MoEngage は、ネストされた属性とのマッピングをサポートしていません。マッピングできるのはトップレベルの属性のみです。
ユーザーをセグメントとして保存する
ユーザーをインポートする際に、MoEngage のカスタムセグメントに含めることができます。インポートされたユーザーは同期のたびにこのセグメントに継続的に追加され、ユーザーが削除されることはありません。インポートしたユーザーをカスタムセグメントとして保存するには、次の手順を実行します。- Save as a custom segment トグルをオンにして、インポートしたユーザーをカスタムセグメントに保存し、そのセグメントにカスタマイズしたキャンペーンを送信します。

- Segment name ボックスに、セグメントの名前を入力します。
- Column having user ID リストで、テーブル内の識別子列を選択します。
インポートの動作
ユーザーインポートの場合、既存ユーザーのみを更新するように選択することもできます。これは、新しいユーザーを作成せずに MoEngage でユーザーの属性を一括更新したい場合に便利です。これを有効にするには、Import Behaviour の下にある Update existing users only チェックボックスをオンにします。
インポート通知の送信
インポートのステータスをメールで通知するように選択できます。設定するには、次の手順を実行します。- Send import status to チェックボックスをオンにします。
- Select email id リストで、メール ID を選択します。ステータスメールの送信先として最大 10 件のメールアドレスを選択できます。

- インポートが作成された
- インポートが成功した
- インポートが失敗した
ステップ 3: インポート頻度を選択する

- One-Time: インポートをできるだけ早く実行するか、後の日時に (スケジュールして) 実行できます。インポート条件に一致する既存のすべての行がインポートされます。
- Periodic: インポートを毎時、毎日、毎週、毎月、または間隔や詳細設定を指定して実行できます。
重複インポート
次の場合、インポートは重複と見なされます。- Users/Events のインポートタイプが同じである。
- Event name/Registered/Anonymous/All users のインポートサブタイプが同じである。
- Event name/Registered/Anonymous/All users のインポートタイプで、Databricks 接続が同じである。
- Event name/Registered/Anonymous/All users のインポートタイプで、Schema/Dataset と Table/View が同じである。
インポート失敗ポリシー
接続障害が発生した場合、定期的な Databricks インポートは最大 10 回再試行されます。すべての再試行が失敗すると、インポートは FAILED としてマークされます。次の表は、接続の問題 (認証情報、ネットワーク、ウェアハウスが利用できないなど) により定期的な Databricks インポートが失敗した場合の動作と必要な対応をまとめたものです。失敗したインポートを再開する
FAILED になったインポートには、手動での対応が必要です。- Databricks 側で根本的な問題を調査して解決する必要があります (例: 認証情報の更新、権限の確認、ウェアハウスの可用性の確保)。
- 問題を解決した後、MoEngage UI からインポートを手動で複製して再開する必要があります。
- 新しい定期インポートの初回の正常な実行は、常に履歴インポートになります (設定したテーブル/ビューからすべてのデータを取得します)。
- 失敗したインポートを複製すると、新しい履歴インポートが開始されます。元のインポートが以前に成功していた場合、この複製によってデータが重複する可能性があります。データフローを効果的に制御するために、MoEngage ではビューの使用を推奨しています。
FAQ
MoEngage は Databricks Unity Catalog 接続をサポートしていますか?また、セットアップはどのように異なりますか?
MoEngage は Databricks Unity Catalog 接続をサポートしていますか?また、セットアップはどのように異なりますか?
回答: はい、MoEngage の Databricks インポートは Databricks Unity Catalog を基盤として構築されています。そのため、セットアッププロセスは標準の Databricks 接続と同じです。
MoEngage との連携に、Databricks または Databricks SQL Warehouse の特定のバージョン要件はありますか?
MoEngage との連携に、Databricks または Databricks SQL Warehouse の特定のバージョン要件はありますか?
回答: いいえ、互換性に関する特定のバージョン要件はありません。
JSON データを Object データ型として MoEngage に正常にインポートするには、Databricks の列のデータ型を何にする必要がありますか?
JSON データを Object データ型として MoEngage に正常にインポートするには、Databricks の列のデータ型を何にする必要がありますか?
回答: Databricks では、テーブル作成時に列の型を
VARIANT にする必要があります。インポート時に、UTC ではなくローカルタイムゾーンを含む Databricks の TIMESTAMP 列を MoEngage はどのように処理しますか?
インポート時に、UTC ではなくローカルタイムゾーンを含む Databricks の TIMESTAMP 列を MoEngage はどのように処理しますか?
回答: Databricks にはローカル時刻の概念がないため、MoEngage は保存されている時刻を UTC として解釈します。Databricks では、タイムスタンプを UTC で保存することを推奨しています。
.png?fit=max&auto=format&n=ug1DZn3QSotOzs8r&q=85&s=17b8c70bb9142590ba48c4a4176cb12c)


サポートされている datetime フォーマットの完全なリストについては、こちらの