次の方法で共有


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

注意

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

Dataverse Web API は OData と OAuth をサポートする任意のテクノロジで動作します。 Dataverse との間でデータを移動するには、多くのオプションを使用できます。 OData コネクタは、データフローの 1 つです。 Dataverse での大規模なデータセットの移行と同期をサポートするように設計されています。

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

前提条件

  • ソース環境とターゲット環境の両方に対するシステム管理者、またはシステム カスタマイザーのセキュリティ ロールのアクセス権限。
  • Power Apps、Power Automate、または Dataverse ライセンス (アプリごとまたはユーザーごと)。
  • 2 つの Dataverse データベースを持つ環境

シナリオ

  • 1 回限りの環境間またはテナント間の移行 (geo移行など) が必要です。
  • 運用環境で使用されるアプリを更新する必要があります。 変更を簡単に構築するには、開発環境でテスト データが必要です。

手順 1: データフローを計画する

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

    • ソース環境は、データの移行元です。
    • ターゲット環境は、データを移行する場所です。
  2. ターゲット環境にテーブルが既に定義されていることを確認します。 理想的には、両方の環境に同じソリューション内で同じテーブルが定義されている必要があります。

  3. リレーションシップをインポートするには、複数のデータフローが必要です。

    1 つの (親/独立) から多くの (子/依存) リレーションシップを持つテーブルには、個別のデータフローが必要です。 親テーブルのデータを最初に読み込んで対応する子テーブルの列に正しくマップする必要があるため、子テーブルの前に実行するように親データフローを構成します。 さらに、子テーブルにルックアップ列を設定する前に、親テーブルに 代替キー を作成する必要があります。 親テーブルにキーが定義されていない場合、子テーブルに参照列を設定することはできません。

手順 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. 接続設定 ダイアログ ボックスに、列の値を入力します:

    URL、接続、認証のフィールドを含む [OData 接続設定] ダイアログのスクリーンショット。

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

    重要

    ブラウザーでポップアップと Cookie ブロックを無効にして、Microsoft Entra ID 認証を構成します。 この要件は、Dataverse OData エンドポイントまたはその他の OAuth ベースの認証データ ソースを使用している点に似ています。

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

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

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

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

ソース環境から使用可能なテーブルを示す Power Query ナビゲーターのスクリーンショット。

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

    注意

    リレーションシップをインポートするときは、親テーブルのデータフローを子テーブルの前にインポートすることを忘れないでください。 子データフロー データでは、正しいマッピングのために親テーブル データが必要です。そうでない場合、エラーが発生する可能性があります。

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

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

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

    チップ

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

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

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

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

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

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

ソース テーブルをターゲット環境にマッピングするためのマップ テーブル構成ページのスクリーンショット。

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

    • データフローは、ソース環境のテーブルからターゲット環境にデータを同期し、同じテーブル スキーマがターゲット環境にすでに定義されています。

    • 理想としては、ターゲット環境とソース環境の両方で同じソリューションを使用して、データ転送をシームレスにします。 定義済みのテーブルを持つ別の利点は、テーブルが定義されているソリューションとプレフィックスをより細かく制御できることです。

    • クエリの出力で存在しない行を削除するを選択します。 このオプションを選択すると、ルックアップの値が維持されるため、リレーションシップが正しくマップされます。 この機能を使用するには、最初に対象/既存テーブルで 行を参照する代替キーの定義を定義する を定義して、データフローが既存のレコードを更新するか、新しいレコードを作成するかを決定できるようにします。

      注意

      このオプションは、ソース内のデータを同じターゲットにする場合にのみ使用します。 変換先環境の別のプロセスが同じテーブルにデータを追加した場合 (またはテーブルに他の既存のデータがある場合) は、このデータフローによって削除されます。

    • ソース テーブルとターゲット テーブルの両方でスキーマが同一の場合は、[ 自動マップ ] を選択して列をすばやくマップします。

    • ターゲット環境でキー構成が必要です (一意識別子列は変更できないため)。

    重要

    [ 行の削除] オプションは、キーが指定されている場合にのみ使用できます。 キーを持たないテーブルを作成することもできますが、これらのタスクを実行するためにシステムが使用する一意の識別子であるため、レコードを更新または削除する場合はキーが必要です。 テーブルにキーが存在せず、Dataflows.

    によって提供される削除または更新機能を使用する場合は、Dataverse テーブルに直接キーを追加できます。詳細: Power Apps ポータルを使用して代替キーを定義する。

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

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

ステップ 5.2: 設定の更新

この移行は 1 回だけ実行されるため、[ 手動で更新 ] を選択し、[ 作成] を選択します。

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

[作成] を選択すると、初期データフローの読み込みが開始されます。

初期データフローの読み込みが進行中であることを示すデータフローの一覧のスクリーンショット。

データフローの一覧で (...) を選択することで、データフローを手動で開始できます。 親フローが完了したら、依存データフローを実行してください。

データフローを手動で実行するための更新オプションを含むデータフロー コンテキスト メニューのスクリーンショット。

ヒント

  • 最初に 1 つのテーブルを試して手順を説明してから、すべてのデータフローを構築します。
  • 大量のデータを含むテーブルがある場合は、個々のテーブルに対して複数の個別のデータフローを構成することを検討してください。
  • 一対多リレーションシップでは、テーブルごとに個別のデータフローが必要です。 子テーブルの前に親 (1 つまたは独立) のテーブル データフローを実行します。
  • データフローの更新中にエラーが発生した場合は、データフローの一覧の (...) メニューで更新履歴を表示し、各更新ログをダウンロードします。

制限