Warehouse セグメントを作成する
ステップ 1: データソースをセットアップする
Big Query Snowflake Databricks Redshift 以下の手順に従って、BigQuery の特定のテーブルへの読み取りアクセス権を MoEngage に付与します。さらに、BigQuery Jobs API へのアクセス権を付与し、MoEngage がジョブを送信してクエリ結果をダウンロードできるようにする方法についても説明します。 これらの手順は、Google Cloud Platform、特に BigQuery データセットとジョブをホストしているプロジェクトにおいて、管理者権限を持っていることを前提としています。MoEngage 用のサービスアカウントを作成する
- Google Cloud Console を開きます。
- BigQuery データセットとジョブを含むプロジェクトに移動します。
- IAM & Admin セクションに移動し、Service Accounts を選択します。

- Create Service Account をクリックします。
- サービスアカウントの名前を入力します(例: moengage-access)。

- サービスアカウントに適切なロールとして BigQuery Job User を設定します。

- サービスアカウントを作成します。
- サービスアカウントに移動し、KEYS タブを選択します。
- ADD KEY ドロップダウンをクリックし、Create new key を選択します。

- ポップアップでキーのタイプとして JSON を選択します。
- CREATE をクリックして、JSON キーファイルを生成してダウンロードします。
- JSON ファイルを安全に保管し、以下のとおり MoEngage と共有します。
- 上記の手順に従って MoEngage 用に作成したサービスアカウントの JSON キーファイル
- MoEngage のワークスペース名とデータクラスター (DC)
- BigQuery のロケーション
特定のテーブルへのアクセス権を MoEngage と共有する
- BigQuery コンソールで、MoEngage にアクセスさせたいテーブルを含むデータセットに移動します。
-
SHARING ドロップダウンをクリックし、Permissions を選択します。

-
サービスアカウントのメールアドレス(JSON キーファイルに記載)を、“BigQuery Data Viewer” ロールを持つメンバーとして追加します。

- Save をクリックして、データセットへのアクセス権を付与します。
BigQuery Jobs API へのアクセス権を付与する
最初のステップですでにアクセス権を付与している場合は、この手順をスキップしてください。- Google Cloud Console で IAM & Admin セクションに移動し、IAM を選択します。
- Grant Access をクリックして新しいメンバーを追加します。
- サービスアカウントのメールアドレス(JSON キーファイルに記載)を入力します。
- BigQuery Jobs API とのやり取りを可能にするため、Role として BigQuery Job User を割り当てます。
- Save をクリックして、API へのアクセス権を付与します。

個人用アクセストークン (PAT) を作成する
Databricks CLI を使用して、サービスプリンシパル用の PAT を作成できます。詳細については、こちらを参照してください。ユーザー用の PAT を作成する(任意)
ユーザー用の PAT を作成する(任意)
ユーザーを作成し、そのユーザーに適切なアクセス権を割り当てて、そのユーザーのロールから MoEngage がウェアハウスにアクセスできるようにすることもできます。ただし、Databricks はサービスプリンシパルによる方法を推奨しています。ユーザー用の個人用アクセストークンを作成する場合は、以下の手順に従ってください。
Redshift のデータに対してクエリを実行するには、MoEngage を Redshift ウェアハウスに接続する必要があり、Redshift プラットフォームで管理者権限を持っていることを確認する必要があります。
- Databricks ワークスペースで、タイトルバーの Databricks ユーザー名を選択し、ドロップダウンリストから Settings を選択します。
- Access Tokens タブで Generate New Token を選択します。
- このトークンを識別するためのコメントを入力し、Lifetime ボックスを空のままにして、トークンの有効期間を無期限に変更します。
- Generate をクリックし、生成されたトークンをコピーします。
- Done をクリックします。

HTTP パスとホスト名を取得する
MoEngage が Databricks ワークスペースにアクセスするために必要な HTTP パスとサーバーホスト名を取得するには、以下の手順を実行します。- Databricks ワークスペースで、SQL warehouses を選択します。
- ウェアハウスを選択します。
- Connection details タブをクリックし、MoEngage に必要なホスト名と HTTP パスをコピーします。

App Marketplace で Databricks を接続する
App Marketplace で Databricks を接続するには、以下の手順を実行します。- MoEngage ダッシュボードの左側のナビゲーションメニューで、App marketplace をクリックします。
-
App Marketplace ページで Databricks を検索します。

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

- Connect をクリックします。これで Databricks 接続が統合されました。
MoEngage が Classic および Pro SQL インスタンスに接続する際は、2~5 分程度のウォームアップ時間を見込んでください。接続のセットアップとテスト、および Warehouse セグメントのクエリ実行、セグメント作成、更新の際に遅延が発生する場合があります。サーバーレス SQL インスタンスを使用すると、ウォームアップ時間が最小限に抑えられ、クエリのスループットが向上しますが、統合コストがわずかに高くなる場合があります。
- Redshift プラットフォームでの管理者権限
- MoEngage から取得した Trust Policy JSON
IAM ロールを作成して MoEngage にアクセス権を付与する手順
以前に Redshift 接続を作成している場合は、以下に記載されている現在の権限があることを確認してください。
ステップ 1: アカウントで Identity and Access Management (IAM) ロールを作成する
- AWS Management Console で AWS アカウントにサインインします。
-
Find Services 検索ボックスで IAM を検索します。IAM ダッシュボードに移動します。

- IAM ダッシュボードで Roles タブを選択します。
- Create role をクリックします。
- AWS account を選択します。
-
Select trusted entity セクションで、Custom trust policy を選択します。

-
以下に示すように、MoEngage から取得した Trust Policy JSON を貼り付けます。MoEngage の AWS Account ID は 612427630422 です。この ID が信頼関係の JSON に含まれていることを確認してください。
- Allow assuming roles from this account オプションを選択します。
- Next > Permissions をクリックします。
-
ctvtvgd4t 以下の権限を追加します。
-
必要に応じて、ポリシーエディターでオプションを選択し、特定の db-groups とユーザーへのアクセスを制限できます。

- Next をクリックします。
-
Add tags セクションで、Add new tag ボタンをクリックして、この IAM ロールに必要なタグを追加します。

- Next > Review をクリックします。
-
Role name ボックスに、ロールの名前を入力します(例: moengage-redshift-data-access-role”)。

-
Create IAM role をクリックします。

ステップ 2: MoEngage に詳細を共有する
ワークスペースで Redshift の Warehouse セグメントを有効にするには、以下の詳細を [email protected] に共有してください。-
ARN (Amazon Resource Name):
- AWS Management Console で IAM ダッシュボードに移動し、ステップ 1 で作成した IAM ロールを選択します。
-
IAM ロールの ARN をコピーします。
MoEngage はこの ARN を使用してアカウント内の IAM ロールを引き受け、Redshift クラスターにアクセスします。

- Database name: 実行されるクエリに使用されるデフォルトの Redshift データベース名です。データベースごとに個別の接続を作成することをお勧めします。
-
Redshift Cluster Identifier name: プロビジョニングされた Redshift クラスターごとに個別の接続を作成することをお勧めします。
ステップ 2: ウェアハウスクエリを実行する
- MoEngage のサイドバーメニューで、Segment メニュー項目
にカーソルを合わせます。Segment メニューが表示されます。
- Warehouse segment をクリックします。

- ここでは、上部の Source ドロップダウンから、前のステップでセットアップしたデータウェアハウス接続を選択できます。
- ソースを選択すると、データウェアハウスのスキーマ(データベース、テーブル、列)が左側のパネルに表示されます。ここから、クエリで使用したいデータベース、テーブル、列を検索できます。
- 右側の SQL editor に SQL クエリを入力できます。最適な結果を得るために、複数テーブルの結合、サブクエリ、エイリアスなど、必要に応じて任意の操作を実行できます。
- Run Query をクリックして、データウェアハウスで SQL クエリを実行します。下の Query results セクションに新しい行が追加されます。

- Query results セクションには、最近実行したウェアハウスクエリの一覧が、実行時間、スキャンされたデータ量、特定のクエリによってデータウェアハウスから返されたデータの行数などのクエリメトリクスとともに表示されます。これらのメトリクスは、データウェアハウスクエリのパフォーマンスを測定するのに役立ち、MoEngage でクエリを作成する際の最適化に使用できます。
- Snowflake では、クエリごとの使用クレジットを確認できます。
- Databricks では、クエリ実行時に使用されたクレジットが提供されないため、使用量を定期的に監視することをお勧めします。
- Redshift では、クエリ実行時にスキャンされたデータ量が提供されないため、使用量を定期的に監視することをお勧めします。
- Query results セクションには、MoEngage から実行された各ウェアハウスクエリのステータスも表示されます。ステータスは、成功、失敗、または処理済みのいずれかです。
- クエリが正常に実行されると、Query results セクションで行を展開して、各クエリのサンプル結果を確認できます。各クエリについて、最大 100 行、10 列のデータが表示されます。
- 各クエリ結果には、各行の 3 点メニューからアクセスできる一連のアクションもあります。
- Insert in SQL editor: Query results セクションから特定の SQL クエリをエディターに直接挿入できます。
このアクションを実行すると、エディター内の既存のクエリが置き換えられることに注意してください。 - Create a custom segment: 任意のクエリ結果から直接カスタムセグメントを作成できます。ただし、カスタムセグメントとして保存するには、クエリが ID(MoEngage に ID として存在する一意のユーザー識別子)の単一列を返す必要があります。そのため、このオプションは単一列を返すクエリに対してのみ有効になります。
- Copy query: このアクションでは、クエリがクリップボードにコピーされます。
- Run query: Run query アクションを使用して、Query results から直接クエリを実行できます。新しい実行分として、Query results セクションの上部に新しい行が追加されます。
- Download results: Download results アクションを使用して、クエリの結果をダウンロードできます。ダウンロードされるファイルには、最大 100 行、100 列のデータが含まれます。

- Insert in SQL editor: Query results セクションから特定の SQL クエリをエディターに直接挿入できます。
- Preview Table: スキーマセクションに表示されている任意のテーブルから、いくつかのサンプル行をワンクリックでプレビューできるようになりました。スキーマ内のテーブル名にカーソルを合わせると目のアイコンが表示され、これをクリックするとテーブルに対してサンプルクエリが実行され、最大 10 行のデータがプレビューとして表示されます。
ステップ 3: ウェアハウスカスタムセグメントを定義する
SQL クエリが確定したら、カスタムセグメントの作成に進むことができます。カスタムセグメントのクエリは、ID(MoEngage に ID として存在する一意のユーザー識別子)の単一列を返す必要があります。セグメントの名前と説明を入力します。
ステップ 4: ウェアハウスカスタムセグメントを使用する
Warehouse セグメントを使用して作成されたカスタムセグメントのタイプは Warehouse - SQL です。これらは All Segments ページに一覧表示されます。
外部カスタムセグメントで実行可能なアクション:
- View - セグメント情報ページでカスタムセグメントの詳細を表示します。ここでは次の操作を実行できます。
- セグメントを定義する SQL クエリを表示する
- カスタムセグメントを実行してユーザー数を更新する - このとき、MoEngage はデータウェアハウスに接続して SQL クエリを実行し、ユーザー数を更新します。
- Edit - カスタムセグメントの定義に使用された SQL クエリを編集できます。
- Create campaign - All Segments ページから直接キャンペーンを作成できます。キャンペーン作成のターゲットオーディエンスセクションには、選択したカスタムセグメントが入力されます。
- 外部データウェアハウスセグメントは、他のカスタムセグメントや、MoEngage で取得したユーザー属性および行動と組み合わせることもできます。
Warehouse セグメントのユーザー数を更新する
外部データウェアハウスセグメントのユーザー数は、次の 2 つの方法で更新できます。- キャンペーン実行時 - キャンペーンのターゲットオーディエンスに含まれるデータウェアハウスセグメントは、キャンペーン実行時に自動的に更新されます。
- セグメント情報ページからカスタムセグメントを実行する - セグメント情報ページからセグメントを手動で実行することもできます。

考慮事項
- 1 つの Warehouse セグメントは、1 つのデータウェアハウス接続に対して定義できます。異なるソースを参照する複数のカスタムセグメントを組み合わせて、新しいカスタムセグメントを作成できます。
- 分析(Behaviour、Funnel など)を実行しても、Warehouse セグメントのユーザー数は更新されません。Warehouse セグメントを含むターゲットオーディエンスは、次のいずれかになります。
- セグメントが一度も実行されていない場合は 0 を返します。
- セグメントが以前に実行されたことがある場合は、前回の実行時のユーザー数を返します。







