Share via


データフローを使用して Excel データ ソースと Dataverse を同期する

データを Dataverse に統合するときに発生する一般的なシナリオの 1 つが、ソースとの同期の維持です。 標準のデータフローを使用して、データを Dataverse に読み込むことができます。 この記事では、ソース システムとのデータの同期を維持する方法について説明します。

キー列の重要度

リレーショナル データベース システムをソースとして使用している場合は、通常、テーブルにキー列があり、データが適切な形式で Dataverse に読み込まれます。 ただし、Excel ファイルのデータが常にクリーンであるとは限りません。 多くの場合、キー列を持たないデータがシートに含まれる Excel ファイルがあります。 「標準データフローのフィールド マッピングに関する考慮事項」から、ソースにキー列がある場合、それをデータフローのフィールド マッピングの代替キーとして簡単に使用できることがわかります。

代替キーの構成。

キー列があることは、Dataverse のテーブルにとって重要です。 キー列は行識別子です。この列には、各行の一意の値が含まれます。 キー列があると、重複する行を回避できます。また、データをソース システムと同期する際にも役立ちます。 ソース システムから行が削除された場合、キー列があると、それを見つけて Dataverse からも削除することができます。

キー列の作成

データ ソース (Excel、テキスト ファイル、またはその他のソース) にキー列がない場合は、次の方法で生成できます。

  1. データをクリーンアップします。

    キー列を作成する最初のステップは、不要な行をすべて削除し、データをクリーンアップし、空の行を削除して、可能性のある重複をすべて削除することです。

    データをクリーンアップします。

  2. インデックス列を追加します。

    データがクリーンアップされたら、次のステップとしてキー列を割り当てます。 この目的で、[列の追加] タブの [インデックス列の追加] を使用することができます。

    インデックス列を追加します。

インデックス列を追加するときには、それをカスタマイズするためのオプションがいくつかあります。たとえば、開始番号や、毎回移動する値の数をカスタマイズすることができます。 既定の開始値はゼロで、毎回 1 つずつ値がインクリメントされます。

キー列を代替キーとして使用する

これで、キー列が作成されたので、データフローのフィールド マッピングを代替キーに割り当てることができます。

代替キーのフィールドの設定。

この設定は単純であり、代替キーを設定するだけです。 ただし、複数のファイルまたはテーブルがある場合は、もう 1 つのステップを考慮する必要があります。

複数のファイルがある場合

Excel ファイル (つまりシートやテーブル) が 1 つしかない場合は、前の手順のステップだけで代替キーを設定できます。 ただし、同じ構造 (ただし、データが異なる) の複数のファイル (つまりシートやテーブル) がある場合は、それらをまとめて追加します。

複数の Excel ファイルからデータを取得する場合、Power Query の [ファイルの結合] オプションを使用すると、すべてのデータが自動的にまとめて追加され、出力は次の画像のようになります。

まとめて追加された複数のファイルを示す画像。

上の画像に示すように、Power Query は追加の結果だけでなく、ファイル名を含む Source.Name 列も取り込みます。 各ファイルのインデックス値は一意である場合がありますが、複数のファイルにわたって一意なわけではありません。 ただし、インデックス列と Source.Name 列の組み合わせは一意の組み合わせです。 このシナリオでは、複合代替キーを選択します。

複合キー。

クエリ出力に存在しない行を削除する

最後のステップは、[クエリ出力に存在しない行を削除します] を選択することです。 このオプションでは、(複合キーである可能性がある) 代替キーに基づいて、ソースから送信されるデータと Dataverse テーブルのデータを比較し、存在しない行を削除します。 その結果、Dataverse のデータは常にデータ ソースと同期されます。

存在しない行を削除します。