> ## Documentation Index
> Fetch the complete documentation index at: https://moengage.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Snowflake インポート

> Snowflake を MoEngage に接続し、データウェアハウスからユーザープロファイルとイベントを直接インポートします。登録ユーザーと匿名ユーザーをサポートしています。

# 概要

MoEngage では、Snowflake データベースに保存されたテーブルを使用してユーザーとイベントをインポートできます。

# インポートの種類

MoEngage は Snowflake データウェアハウスから以下をインポートできます。

1. **登録ユーザー**: MoEngage にすでに登録されているユーザーです。
2. **匿名ユーザー**: MoEngage にまだ登録されていないユーザーです。
3. **イベント**（標準およびユーザー定義）: MoEngage は、Campaign Interaction Events などの標準イベントに加えて、独自のユーザー定義イベントもインポートできます。

# データの準備

MoEngage では、インポートのために特定のテーブルスキーマを用意する必要はありません。テーブル内のすべての列は、MoEngage ダッシュボードでスキップするか、個別にマッピングできます。ただし、インポートを設定する前に注意すべき点がいくつかあります。

ユーザーインポート イベントインポート

MoEngage で定期的なユーザーインポートを設定すると、前回の同期以降に変更されたデータのみが同期されます。MoEngage は、`updated_at` というタイムスタンプ（日付 + 時刻）列を使用して、前回の同期以降に変更された行を識別します。行のデータが最後に変更された時点のタイムスタンプが含まれていれば、この列には任意の名前を付けることができます。テーブル内でこの列に別の名前を付けている場合は、MoEngage ダッシュボードでこのマッピングを個別に構成できます。

MoEngage でイベントインポートを設定する場合は、イベントのタイムスタンプ（日付 + 時刻）を含む列を必ずマッピングする必要があります。この列は、前回の同期以降の新しいイベントのみを同期するために使用されます。この列に別の名前を付けている場合も、MoEngage ダッシュボードでこのマッピングを構成できます。

さらに、MoEngage の標準イベントをインポートする場合は、テーブル内のイベント名が MoEngage の標準イベント名と一致していることを確認してください。

## Datetype 属性のインポート

Datetype 属性のインポートには追加の手順が必要です。詳細については、[専用ガイド](/docs/ja/user-guide/data/imports/setting-up-a-data-warehouse-import)を参照してください。

# 必要なアクセス権限

MoEngage がデータを取り込めるように、データベースへの `READ` アクセス権が必要です。これらの権限を既存のデータベースユーザーに付与するか、MoEngage 専用の新しいデータベースユーザーを作成できます。

```
-- Grant SELECT permission on all tables in the schema
GRANT SELECT ON SCHEMA `catalog_name`.`schema_name` TO `user@example.com`;
-- Grant USE SCHEMA permission to access the schema
GRANT USE SCHEMA ON SCHEMA `catalog_name`.`schema_name` TO `user@example.com`;
-- Grant USE CATALOG permission (recommended for complete access)
GRANT USE CATALOG ON CATALOG `catalog_name` TO `user@example.com`;
```

以下の値を必ず変更してください。

1. \`\` - MoEngage がクエリを実行する際に使用するウェアハウスの名前です。
2. \`\` - データをインポートするデータベースの名前です。
3. \`\` - 新しく作成したデータベースユーザーに強力なパスワードを設定します。

# Snowflake からのインポートの設定

**PROTECTED\_0**

Snowflake インポートを設定するには、以下の手順を実行します。

1. 1. MoEngage のサイドバーメニューで、Data メニュー項目 **PROTECTED\_4** にカーソルを合わせます。**Data** メニューが表示されます。
   2. **Data imports** をクリックします。\
      **PROTECTED\_5**
2. **Data imports** ページで、**+ Import** をクリックし、**Users** または **Events** を選択して新しいインポートを作成します。
3. **Snowflake** をクリックして、Users（Registered/Anonymous は次のステップで選択できます）または Events の新しいインポートを作成します。

**PROTECTED\_6**

## ステップ 1: Snowflake 接続とテーブルソースを選択する

### インポート名

**PROTECTED\_7**

Imports Dashboard で簡単に識別できるように、このインポートの名前を入力します。選択したインポートの種類によって、次の手順が異なる場合があります。

<Accordion title="ユーザーインポート">
  登録ユーザーと匿名ユーザーのどちらをインポートするかを選択できます。両方をまとめてインポートすることもできます。

  **PROTECTED\_8**
</Accordion>

<Accordion title="イベントインポート">
  イベントインポートでは、インポートするイベントを選択できます。

  **PROTECTED\_9**

  既存のイベントを選択するか、新しいイベントを作成できます。1 つのテーブルに複数のイベントが保存されている場合、MoEngage は「Event Name」列を参照して、インポートする一致する行を判断します。「Event Name」列の値は、選択したイベントによって決まります。これらのイベントの中には、Display Name と Event Name が異なるものがあります。**PROTECTED\_28** ページでいつでもイベント情報を確認できます。たとえば、「App/Site Opened」イベントの場合、「Event Name」列の値は `MOE_APP_OPENED` である必要があります。

  **PROTECTED\_10**

  ドロップダウンの最後にある「+ Create event」オプションをクリックして、新しいイベントを作成することもできます。

  **PROTECTED\_11**

  イベントには一意の名前を付けてください。デフォルトでは、Display Name は Event Name と同じになります。**PROTECTED\_29** ページで、このイベントやその他の MoEngage イベントを表示または編集できます。ここで作成した新しいイベントは、最初のインポートが成功した後にのみアプリで利用可能になることに注意してください。

  ### インポートソース

  最初のステップである「Source and format」では、使用する Snowflake 接続とインポート元のテーブルを MoEngage に指定する必要があります。

  **PROTECTED\_12**

  開始するには、このインポートに使用する Snowflake 接続を選択します。Snowflake 接続をまだ作成していない場合は、ドロップダウンの最後にある「+ Add connection」オプションをクリックすると、App Marketplace に移動して設定できます。Snowflake ウェアハウスを MoEngage に接続する方法の詳細については、**PROTECTED\_30** を参照してください。

  Snowflake 接続を選択したら、インポート元のスキーマとテーブルを選択する必要があります。スキーマの読み込み中にエラーが発生した場合は、**PROTECTED\_31** のとおり MoEngage に十分な権限を付与していることを確認してください。

  **PROTECTED\_13**

  #### イベントインポート

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

  **PROTECTED\_14**

  MoEngage は「Event name」列の値を使用して、インポートする必要がある行を絞り込みます。選択したイベント名に一致する行のみがインポートされます。テーブルの既存の列を、イベント名を含む列としてマークできます。この列を選択して再度 Preview すると、先に進む前に確認できるよう、絞り込まれた行が表示されます。

  **PROTECTED\_15**

  テーブルをプレビューしたら、次のステップに進むことができます。
</Accordion>

## ステップ 2: 列を MoEngage 属性にマッピングする

このステップでは、テーブルの列を MoEngage に存在する属性にマッピングする必要があります。すべての列が縦に並んで表示されます。

**PROTECTED\_16**

1. **Column name** - マッピングする列名です。列名の下には、参考としてサンプル値（前のステップで取得したテーブルの最初の行から取得されます）も表示されます。
2. **Map attribute** - テーブルの列をマッピングする MoEngage 属性を選択します。新しい属性を作成することもできます。一部の属性は複数のデータ型からの取り込みをサポートしているため、列のデータ型も選択する必要があります。「DateTime」列の場合は、**PROTECTED\_32** も選択する必要があります。
3. **More actions** - 必要に応じて列をスキップできます。スキップした列はインポートされません。

インポートの種類に応じて、いくつかの必須マッピングがあります。

<Accordion title="ユーザーインポート">
  登録ユーザー 匿名ユーザー すべてのユーザー

  | マッピング | 説明 |
  | - | - |
  | User ID | テーブルには、一意のユーザー識別子（システム内のユーザーアカウントを識別するもの）を含む列が必須です。 |
  | Updated at | MoEngage はこの列を使用して、前回の同期以降に追加または更新された行を判断します。このタイムスタンプ（日付 + 時刻）が UTC タイムゾーンであることを確認する必要があります。この列の型は `TIMESTAMP_NTZ` である必要があります。    サポートされている datetime 形式の一覧については、こちらの **PROTECTED\_33** を参照してください。 |

  | マッピング | 説明 |
  | - | - |
  | Anonymous ID | テーブル内の列（メールアドレス、携帯電話番号など）をこれらのユーザーの識別子としてマークする必要があります。 |
  | Updated at | MoEngage はこの列を使用して、前回の同期以降に追加または更新された行を判断します。このタイムスタンプ（日付 + 時刻）が UTC タイムゾーンであることを確認する必要があります。この列の型は `TIMESTAMP_NTZ` である必要があります。    サポートされている datetime 形式の一覧については、こちらの **PROTECTED\_34** を参照してください。 |

  | マッピング | 説明 |
  | - | - |
  | User ID | テーブルには、一意のユーザー識別子（システム内のユーザーアカウントを識別するもの）を含む列が必須です。User ID が空のユーザーは、自動的に匿名ユーザーとしてインポートされます。 |
  | Anonymous ID | テーブル内の列（メールアドレス、携帯電話番号など）をこれらのユーザーの識別子としてマークする必要があります。 |
  | Updated at | MoEngage はこの列を使用して、前回の同期以降に追加または更新された行を判断します。このタイムスタンプ（日付 + 時刻）が UTC タイムゾーンであることを確認する必要があります。この列の型は `TIMESTAMP_NTZ` である必要があります。    サポートされている datetime 形式の一覧については、こちらの **PROTECTED\_35** を参照してください。 |
</Accordion>

<Accordion title="イベントインポート">
  | マッピング | 説明 |
  | - | - |
  | User ID | この列は、MoEngage のユーザーをイベントと照合するために使用されます。 |
  | Event time | イベントが発生した時点のタイムスタンプ（日付 + 時刻）を含む列をマッピングする必要があります。このタイムスタンプ（日付 + 時刻）が UTC タイムゾーンであることを確認する必要があります。この列の型は `TIMESTAMP_NTZ` である必要があります。インポートされたイベントの「Event Time」は、MoEngage ダッシュボードの設定で選択したタイムゾーンに変換されます: <img src="https://mintcdn.com/moengage/dLyLAwgfsm1v6_MY/images/moengage_881b16.png?fit=max&auto=format&n=dLyLAwgfsm1v6_MY&q=85&s=cd8df7cabceefabcf0abdfcf0497ba54" width="2748" height="460" data-path="images/moengage_881b16.png" />    サポートされている **datetime** 形式の一覧については、こちらの[セクション](/docs/ja/user-guide/data/imports/overview-imports)を参照してください。 |

  必須マッピングがマークされると、マッピングテーブルの列名に反映され、その列をスキップ可能としてマークできなくなります。

  新しいイベントと同様に、ドロップダウンから「+ Create attribute」をクリックして新しい属性を作成することもできます。

  <img alt="CreateNewAttribute.png" src="https://mintcdn.com/moengage/rlD8iAX6JQFx0hql/images/moengage_b856ca.png?fit=max&auto=format&n=rlD8iAX6JQFx0hql&q=85&s=b9f92f4890edc777a8794feb48274d62" width="954" height="622" data-path="images/moengage_b856ca.png" />

  属性に名前を付け、データ型を選択します。この属性や既存の属性は、[Data Management](/docs/ja/user-guide/settings/data-management/overview-data-management) ページから編集できます。ここで作成した新しい属性は、最初のインポートが成功した後にのみアプリで利用可能になることに注意してください。

  ### マニフェストファイル

  必要に応じて、[マニフェストファイル](/docs/ja/user-guide/data/imports/overview-imports)をアップロードしてこれらの列を自動マッピングできます。

  マニフェストファイルをアップロードするには、マッピングテーブルの右上にある「Upload mapping file」オプションをクリックします。

  | | |
  | - | - |
  | <img src="https://mintcdn.com/moengage/t_8awpRKFC9RNHlT/images/moengage_aa417b.png?fit=max&auto=format&n=t_8awpRKFC9RNHlT&q=85&s=2525d3eb151bfb859edd2b2bd405e108" width="2660" height="778" data-path="images/moengage_aa417b.png" /> | <img alt="UploadMapping.png" src="https://mintcdn.com/moengage/0iWkm50wROjmHH3Z/images/moengage_d06a96.png?fit=max&auto=format&n=0iWkm50wROjmHH3Z&q=85&s=3895073c3b7c31c905f73511fee7f2a7" width="996" height="534" data-path="images/moengage_d06a96.png" /> |

  マニフェストファイルをアップロードし、Done をクリックします。マッピングはそれに応じて自動構成されます。MoEngage 以外の属性を持つ列は空白のままになり、列を手動でマッピングするか、新しい属性を作成できます。マニフェストファイルが記載どおりの[想定される規則](#manifest-files)に従っていることを確認してください。

  マニフェストファイルに存在するもののテーブルに存在しない追加の列は無視されます。また、既存のテーブル列のマッピングがマニフェストファイルに存在しない場合、MoEngage はマッピングを空白のままにし、手動で構成できるようにします。

  マニフェストファイル内の列が存在しない MoEngage 属性にマッピングされている場合、マッピングは空白になるため、まず UI から新しい属性を手動で作成してからマッピングする必要があることに注意してください。

  ### Object データ型のサポート

  <Info>
    アカウントで [Object データ型](/docs/ja/user-guide/data/key-concepts/support-for-object-data-type)のサポートを有効にする必要があります。
  </Info>

  Object データ型は Snowflake でもサポートされています。

  #### Snowflake に互換性のある JSON データを保存する

  Snowflake 内に有効な JSON を保存するには、列のデータ型を *VARIANT* 型に変更する必要があります。詳細については、[こちら](https://docs.snowflake.com/en/user-guide/tutorials/json-basics-tutorial)を参照してください。Snowflake 内に保存する JSON は有効な JSON である必要があります。そうでない場合、値は JSON として書き込まれません。JSON 列の例を次に示します。

  JavaScript

  ```javascript theme={null}
  { "Designation": "SSE", "Palace": "Banglore", "age": 30, "name": "Shasha" }
  ```

  #### Snowflake 経由で JSON データをインポートする

  MoEngage 内で *Object* 型としてマークされ、Snowflake の列へのマッピングに使用できる既存の属性:

  <img src="https://mintcdn.com/moengage/H6NVBgn3z5fYOOBq/images/moengage_7a499f.png?fit=max&auto=format&n=H6NVBgn3z5fYOOBq&q=85&s=eb0bac345c243ef021e011c48d601ee1" width="1600" height="466" data-path="images/moengage_7a499f.png" />

  以下に示すように、マッピングのステップから新しい Object 属性を作成することもできます。

  <img src="https://mintcdn.com/moengage/fQ0QnP2abFkVAzJ2/images/moengage_4e23f0.png?fit=max&auto=format&n=fQ0QnP2abFkVAzJ2&q=85&s=db14cf98a466171a09ec067ef07e8053" width="1182" height="990" data-path="images/moengage_4e23f0.png" />

  <Info>
    MoEngage はネストされた属性とのマッピングをサポートしていません。マッピングできるのはトップレベルの属性のみです。
  </Info>

  ### セグメントとして保存

  ユーザーをインポートする場合は、MoEngage 内のカスタムセグメントにユーザーを追加することもできます。同期が実行されるたびに、インポートされたユーザーがこのカスタムセグメントに引き続き追加されます。このセグメントからユーザーが削除されることはありません。その後、このセグメントにターゲットを絞ったキャンペーンを送信できます。インポートしたユーザーをカスタムセグメントに保存するには、「Save as a custom segment」オプションを有効にします。

  <img src="https://mintcdn.com/moengage/431DqtwGIOyvyx6H/images/moengage_89ebad.png?fit=max&auto=format&n=431DqtwGIOyvyx6H&q=85&s=5b04736a302ad70ac5871afa539bcc2a" width="1246" height="376" data-path="images/moengage_89ebad.png" />

  セグメントに名前を付け、テーブル内の識別子列を選択します。

  ### インポートの動作

  ユーザーインポートの場合は、既存のユーザーのみを更新するように選択することもできます。これは、新しいユーザーを作成せずに MoEngage 内のユーザー属性を一括更新したい場合に便利です。これを有効にするには、Import Behaviour の下にある「Update existing users only」オプションをオンにします。

  <img src="https://mintcdn.com/moengage/UX7SFw6G5JwoHWFq/images/moengage_5f407d.png?fit=max&auto=format&n=UX7SFw6G5JwoHWFq&q=85&s=48f10090039800c6bb259c5c90e6a851" width="978" height="236" data-path="images/moengage_5f407d.png" />

  ### インポート通知の送信

  <img alt="ImportStatus.png" src="https://mintcdn.com/moengage/SBG7um9Fqotw1CFo/images/moengage_b52f21.png?fit=max&auto=format&n=SBG7um9Fqotw1CFo&q=85&s=3740399b924869b79709a56b64834224" width="622" height="366" data-path="images/moengage_b52f21.png" />

  必要に応じて、インポートのステータスをメールで通知するように選択できます。ステータスメールの送信先として最大 10 件のメールアドレスを選択します。以下のイベントについてメールが届きます。

  1. インポートが作成された
  2. インポートが成功した
  3. インポートが失敗した

  すべてのマッピングに問題がなければ、Next をクリックします。エラーがある場合は、修正してから先に進んでください。
</Accordion>

## ステップ 3: インポート頻度を選択する

<img alt="frequency import.png" src="https://mintcdn.com/moengage/-uVFLyK4XoHTd5WE/images/moengage_092268.png?fit=max&auto=format&n=-uVFLyK4XoHTd5WE&q=85&s=f8084b27849cbaafc1e0eafb56d50259" width="3684" height="1102" data-path="images/moengage_092268.png" />

このステップでは、テーブルと同期するタイミングを定義する必要があります。以下の種類のインポートがサポートされています。

1. 1 回限りのインポート: できるだけ早くインポートを実行するか、後の日時に実行する（スケジュール）かを選択できます。インポート条件に一致する既存のすべての行がインポートされます。
2. 定期インポート: インポートを数分ごと、毎時、毎日、毎週、毎月、または間隔や詳細設定を指定して実行するように選択できます。

必要に応じて、指定した回数の実行後または特定の日付にインポートを終了するかどうかを指定できます。準備ができたら **Done** をクリックします。

<Warning>
  インポートの初回実行時には、テーブルから一致するすべての行がインポートされることに注意してください。以降のインポートでは、変更された行のみが取り込まれます。
</Warning>

## 重複インポート

一度に構成できる一意のインポートは 1 つだけです。以下が**すべて**同じである場合、そのインポートは重複インポートと見なされます。

1. **インポートの種類** - Users / Events
2. **インポートのサブタイプ** - Event Name / Registered / Anonymous / All users - イベント名が同じ場合、または同じ Snowflake 接続を持つ登録ユーザー/匿名ユーザー/すべてのユーザーのインポートがすでに存在する場合
3. **Snowflake 接続**
4. **インポートのスキーマとテーブル**

上記のいずれか 1 つでも異なれば、そのインポートは一意と見なされます。

# よくある質問

<Accordion title="複数のテーブルにまたがるデータからインポートできますか？">
  いいえ。現在、手動クエリの記述（結合の実行など）はサポートされていません。MoEngage にインポートするすべての列を含む専用のテーブルまたはビューを作成することをお勧めします。
</Accordion>

<Accordion title="Snowflake からのビューのインポートはサポートされていますか？">
  はい。Snowflake のビューからのデータのインポートもサポートしています。MoEngage にビューの読み取りアクセス権を付与すると、ビューは Table/View 選択ドロップダウンに自動的に一覧表示されます。
</Accordion>

<Accordion title="履歴データのインポートはできますか？">
  はい。最初の同期ですべての行が取り込まれるため、1 回限りのインポートを作成することは、実質的に履歴データのインポートと同じです。
</Accordion>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.