データフロー OData コネクタを使用する Microsoft Dataverse 環境間でデータを移行する

注意

データフローで、OData コネクタではなく Power Query Dataverse コネクタを使用することを検討してください。 データフローは、Dataverse 環境間でデータを移行する場合に推奨される手法です。 詳細については、データフローとは?を参照してください

DataverseWeb API は OData および Oauth をサポートする任意のテクノロジで動作します。 Dataverse にデータを出し入れするために利用できる多くのオプションがあります。 OData コネクタはデータフローのひとつで、Dataverse で大規模なデータセットの移行や同期をサポートするように設計されています。

この記事では、dataflows OData コネクタを使用して Dataverse 環境間でデータを移行する方法について説明します。

前提条件

  • ソース環境とターゲット環境の両方に対するシステム管理者、またはシステム カスタマイザーのセキュリティ ロールのアクセス権限。

  • Power Apps、Power Automate、または Dataverse ライセンス (アプリごとまたはユーザーごと)。

  • 2 つの Dataverse 環境とデータベース

シナリオ

  • 1 回限りの環境間またはテナント間の移行が必要です (例: geo 間移行など)。

  • 開発者は、運用環境で使用されているアプリを更新する必要があります。 変更を簡単に作成するには、開発環境でテストデータが必要です。

ステップ 1: データフローを計画する

  1. ソース環境とターゲット環境を特定します。

    • ソース環境はデータの移行元です。

    • ターゲット環境はデータの移行先です。

  2. テーブルがターゲット環境ですでに定義されていることを確認してください。 理想的には、両方の環境に同じソリューションで定義された同じテーブルが必要です。

  3. 関連付けをインポートする場合、複数のデータフローが必要です。

    一 (親/独立) 対 多 (子/依存) であるテーブルには、個別のデータフローが必要です。 対応する子テーブルの列に正しくマップするには、親のデータを最初にロードする必要があるため、親データフローを子テーブルの前に実行するように構成します。 さらに、子テーブルに検索列を設定するオプションを付与する前に、親テーブルに 代替キー を作成する必要があります。 親テーブルにキーを定義していない場合、子テーブルに検索列を追加できません。

ステップ 2: OData エンドポイントを取得する

Dataverse は、データフローのコネクタで認証するための追加設定を必要としない OData エンドポイントを提供しています。 ソース環境へ接続は比較的簡単です。

この記事では、OData コネクタを使用して新しいデータフローを設定する方法について説明します。 データフローが対応しているすべてのデータソースへの接続に関する情報については、データフローの作成を参照してください。

ソース環境から、環境の OData エンドポイント を取得します :

  1. Power Apps にサインインします。

  2. 右上隅から必要なソース環境を選択します。

  3. 右上の 設定 歯車アイコンを選択し、続いて詳細設定を選択します。

  4. 設定ページで、設定の横にあるドロップダウン矢印を選択してから、カスタマイズを選択します。

  5. カスタマイズ ページで、開発者リソースを選択します。

  6. サービス ルート URL をメモ帳にコピーします。

    開発者リソースでサービス ルート URL をコピーする。

ステップ 3: 新しい OData データフローを作成する

ターゲット環境で、OData コネクタを使用して新しいデータフローを作成します。

  1. Power Apps にサインインします。

  2. 右上隅から必要な環境を選択します。

  3. 左のナビゲーション ウィンドウで、データメニューを展開し、続いてデータフローを選択します。

  4. 新規データフローを選択して、新しいデータフローを作成します。 データフローにわかりやすい名前を指定します。 作成を選択します。

    新しいデータフローを要求する。

  5. OData コネクタを選択します。

    OData ソースの選択。

  6. 接続設定 ダイアログ ボックスに、列の値を入力します:

    列の値が正しいことを確認する。

    Column 内容
    URL 接続設定の URL 列にサービス ルート URL を入力します。
    つながり 新しい接続を作成します。 これは、以前にデータフローで OData 接続を作成したことがない場合、自動的に選択されます。
    つながり名 必要に応じて、接続名を変更できますが、値は自動的に入力されます。
    オンプレミス データ ゲートウェイ ありません。 このクラウド サービスへの接続には、オンプレミス データ ゲートウェイは必要ありません。
    認証の種類 組織のアカウント。 サイン イン を選択して、接続に関連付けられたアカウントを認証するサイン イン ダイアログを開きます。

    重要

    Microsoft Entra ID 認証を構成するには、ブラウザのポップアップとクッキー ブロッカーを無効にします。 これは、Dataverse OData エンドポイントやその他の OAuth ベースの認証データソースを使用していることと共通しています。

  7. 右下の 次へ を選択します。

ステップ 4: Power Query でデータを選択して変換する

Power Query を使用してテーブルを選択し、要件に応じてデータを変換します。

まず、転送する必要のあるテーブルを選択します。 ソース環境のすべてのテーブルを参照し、各テーブルのデータの一部をプレビューできます。

Power Query ナビゲーター。

  1. 必要に応じて 1 つ以上のテーブルを選択してから、データの変換 を選択します。

    注意

    関連付けをインポートするときは、親テーブルのデータフローを子テーブルのデータフローの前にインポートする必要があることに注意してください。 子データフローのデータを正しくマップするには、データが親テーブルに存在することが必要で、そうでない場合、エラーがスローされる可能性があります。

  2. Power Query - クエリの編集 ウィンドウでインポートする前にクエリを変換できます。

    • データを移行するだけの場合は、ここで何も変更する必要はありません。

    • 不要な列の数を減らすと、より大きなデータ セットのデータフロー パフォーマンスが向上します。

    ヒント

    同じ OData コネクタのデータの取得リボン オプションで戻って、さらにテーブルを選択できます。

  3. 右下の次へを選択します。

ステップ 5: ターゲット環境設定を構成する

このセクションでは、ターゲット環境設定を定義する方法について説明します。

ステップ 5.1: テーブルをマップする

選択したテーブルごとに、これらの設定でそのテーブルをインポートするための動作を選択してから、次へ を選択します。

マップ テーブル。

  • 既存のテーブルに読み込む (推奨)

    • データフローは、ソース環境のテーブルからターゲット環境にデータを同期し、同じテーブル スキーマがターゲット環境にすでに定義されています。
    • 理想としては、ターゲット環境とソース環境の両方で同じソリューションを使用して、データ転送をシームレスにします。 定義済みのテーブルを持つ別の利点は、テーブルが定義されているソリューションとプレフィックスをより細かく制御できることです。
    • クエリの出力で存在しない行を削除するを選択します。 これにより、関連付けは検索の値を維持するため、正しくマップされます。 この機能を使用するには、最初に対象/既存テーブルで 行を参照する代替キーの定義を定義する を定義して、データフローが既存のレコードを更新するか、新しいレコードを作成するかを決定できるようにします。

      注意

      このオプションを使用できるのは、その目的がソースと対象のデータを同一にすることである場合のみです。 宛先環境の別のプロセスが同じテーブルにデータを追加する場合 (またはテーブルに他の既存のデータがある場合)、このデータフローがそれを削除します。

    • スキーマがソース テーブルとターゲット テーブルの両方で同一である場合は、自動マップ を選択し、列をすばやくマップできます。
    • ターゲット環境でキー構成が必要です (一意識別子列は変更できないため)。

    重要

    「行の削除」オプションは、キーが指定されている場合にのみ使用できます。 キーのないテーブルを作成することは可能ですが、レコードを更新または削除する場合は、システムがこれらのタスクを実行するために使用する一意の識別子であるため、キーが必要です。 テーブルにキーがなく、データフローが提供する削除または更新機能を使用する場合は、Dataverse テーブルにキーを直接追加できます。

    詳細: Power Apps ポータルを使用して代替キーを定義する

  • 新しいテーブルに読み込む (非推奨)

    • 理想的には、ソース環境と同じソリューション インポートからターゲット環境に事前定義済みのテーブルが存在する必要があります。 ただし、これが実行できない場合があるため、読み込む既存のテーブルがない場合は、これがオプションです。
    • ターゲット環境の既定のソリューションに新しいカスタム テーブルを作成します。
  • 読み込まない というオプションがありますが、読み込まれていないテーブルをデータフローに含めないでください。 このメニューから 戻る を選択して Power Query メニューに戻り、不要なテーブルを削除できます。

ステップ 5.2: 設定の更新

これは 1 度限りの移行であるため手動で更新するを選択し、作成を選択してください。

ステップ 6: データフローを実行する

初回のデータフローの読み込みは、作成ボタンを選択したタイミングで開始します。

初期データフローの読み込み。

データフロー リストで (...) を選択して、データフローを手動で開始できます。 必ず親フローが完了した後に依存データフローを実行してください。

手動で更新。

ヒント

  • 最初に 1 つのテーブルを試して手順を確認し、次にすべてのデータフローを構築します。

  • 大量のデータを含むテーブルがさらにある場合は、個々のテーブルに複数の個別のデータフローを構成することを検討してください。

  • 一対多の関連付けでは、テーブルごとに個別のデータフローが必要になります。 子テーブルの前に、親 (1 つまたは独立した) テーブルのデータフローを構成して実行します。

  • データフローの更新でエラーが発生した場合は、更新履歴をデータフロー リストの (...) メニューで表示し、各更新ログをダウンロードします。

制限

  • 多対多の関連付けがされたデータのインポートには対応していません。
  • 親データフローは、子データフローの前に実行するように手動で構成する必要があります。
  • ステータスおよびステータス事由フィールドへのマッピングは現在サポートされていません。 フィールド マッピングの制限事項の詳細については、標準データフローのフィールド マッピングに関する考慮事項 > 既知の制限 を参照してください

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。