データフロー(Power Query)を使用して、リレーション(参照列)を含めてデータをインポートする方法を調査したので、メモ。
やりたいこと
例えばこんな感じで親テーブルと、


子テーブルがあって、


親テーブルと子テーブルが「1:N」のリレーションでつながっているとする。


このときに、CSVとかから子テーブルに「リレーションを含めて(親テーブルを参照列に指定して)データをインポートしたい」ときのお話。
デフォルトではリレーションはインポートできない
何も設定せずに「データフローでデータをインポート」から、


子テーブルに対しデータをインポートしようとすると、


Parentテーブルへの参照列を選択することができない。


解決方法:リレーションを含めたデータをインポートするときは「キー」を指定する
解決方法は、参照される側(親側)のテーブルにキーとなる列を指定すること。
まず、参照される側のテーブル(今回はParentテーブル)に一意の値が入る列(IDとかオートナンバーとか)をつくり、[キー]を押す。


[新しいキー]から先ほどの一意の値が入る列を選択して、キーを保存する(名前はわかりやすければなんでもOK)。


以上で準備は完了。


再度インポートすると
こんな感じで、先ほど設定した親テーブルのキー列の値を含むCSVを用意して、


再度子テーブルに対しインポートをしようとすると、


キー列を指定できるようになっている。


CSVに入力した値とマッピングして、


[公開]を押すと、


無事、リレーションを含めたデータのインポートが完了する。


ということで、リレーションを含めたデータインポートをしたいときは、参照される側のテーブル(親テーブル)にキーを追加する必要がある。
コメント