背景
Dataflow Gen2 ではパラメーターを利用することで、データフロー本体を都度作り替えなくても、入力値や処理対象を柔軟に切り替えられます。
そのため、用途ごとに似たようなデータフローを複数作成するのではなく、1 つのパラメーター化された Dataflow Gen2 を再利用しながら運用しやすくなります。
また、Fabric Pipeline から複数の Dataflow Gen2 をオーケストレーションし、Pipeline 側で定義したパラメーターを各データフローへ受け渡すことで、処理内容を動的に切り替えることもできます。
本記事では、こうしたシナリオをハンズオン形式で確認します。
あわせて、データソースが SQL Server の場合に、Dataflow Gen2 からカスタム SQL を利用しつつ、パラメーターをどのように扱えるかも確認します。
参考記事
https://learn.microsoft.com/ja-jp/fabric/data-factory/dataflow-parameters
https://learn.microsoft.com/ja-jp/fabric/data-factory/dataflow-gen2-parameterized-dataflow
https://learn.microsoft.com/en-us/powerquery-m/value-nativequery
なお、今回のシナリオでは SQL Server をデータソースとして利用するため、Dataflow Gen2 からカスタム SQL を実行する際に Value.NativeQuery を使用します。
参考
手順
1. 新規 Dataflow Gen2 を作成する
2. データフロー名を指定する
3. パブリック パラメーター モードを有効にする
参考: https://learn.microsoft.com/ja-jp/fabric/data-factory/dataflow-parameters
Dataflow Gen2 で定義したパラメーターを Pipeline から参照・上書きできるようにするため、パブリック パラメーター モードを有効にします。
4. パラメーターを定義する
今回はサンプルとして、以下の 2 つのパラメーターを定義します。
-
df_paramDB1 = SalesStarDW- 接続先のデータベース名
-
df_paramTable1 = DimProduct- 接続先のテーブル名
5. データを取得する
データを取得するボタンを選択します。
6. 空のクエリを選択する
今回は Power Query で直接クエリを記述するため、空のクエリを選択します。
7. 事前に定義したパラメーターをクエリで利用する
事前に定義した df_paramDB1 と df_paramTable1 を使って、以下のようにクエリを記述します。
let
Source = Sql.Database("DB接続情報.xxx.azure.com", df_paramDB1),
Result =
Value.NativeQuery(
Source,
"SELECT * FROM dbo."& df_paramTable1 &""
)
in
Result
このクエリでは、接続先のデータベース名とテーブル名をパラメーターとして指定しています。
そのため、Dataflow Gen2 側で定義した値を変更することで、取得対象を切り替えられるかを確認できます。
今回は検証用のシナリオとして、Dataflow Gen2 で受け取ったパラメーターがクエリに反映されることを確認します。

8. 接続エラーが発生した場合は接続設定を確認する
接続エラーが表示された場合は、接続の構成 をクリックして、接続先や認証情報の設定を確認します。
接続情報を入力し、対象のデータソースへ接続します。
接続が成功すると、対象テーブルのプレビューが表示されます。
9. データの同期先を指定する
次に、取得したデータの書き込み先を設定します。
今回は、書き込み先として Lakehouse を選択します。
一度 戻る ボタンを押して、対象の Lakehouse を選択します。
宛先となる Lakehouse では、事前に定義した df_paramTable1 をテーブル名として指定します。
まずは既定の自動設定のままで保存します。
10. Dataflow Gen2 を保存する
これで Dataflow Gen2 の設定は完了です。最後に忘れず保存します。
Pipeline から Dataflow Gen2 をオーケストレーションする
続いて、作成した Dataflow Gen2 を Pipeline から呼び出して実行します。
11. Dataflow Gen2 を実行する Pipeline を作成する
12. データフロー アクティビティを追加する
Pipeline にデータフロー アクティビティを追加します。
その後、先ほど作成した Dataflow Gen2 を選択します。
ここでは、Dataflow Gen2 側で定義したパラメーターが自動的に認識され、Pipeline 側から値を設定できることを確認できます。
13. 検証して実行する
設定内容を確認したうえで、Pipeline を実行します。
実行前の Lakehouse は、まだテーブルが存在しない状態です。
実行中の状態です。
処理が正常に完了しました。
実行後、Lakehouse にテーブルが追加されたことを確認できます。
応用編:もう 1 つの Dataflow Gen2 を追加する
次に、別の Dataflow Gen2 を追加し、Pipeline 側のパラメーターを使って動的に値を渡す構成を確認します。
14. Pipeline にパラメーターを定義する
既存の Pipeline にパラメーターを追加します。
以下のような形でパラメーターを定義します。
15. 新しく作成した Dataflow Gen2 を Pipeline に追加する
既存の Pipeline に、新しく作成した Dataflow Gen2 を追加します。
16. Pipeline のパラメーターを動的コンテンツとして設定する
ここでは、Pipeline 側で定義したパラメーターを Dataflow Gen2 に動的コンテンツとして渡します。
候補としてパラメーターが表示されるため、対象を選択します。
OK をクリックして設定を反映します。
同様に、他のパラメーターも動的コンテンツとして設定します。
17. 実行する
設定が完了したら、Pipeline を実行します。
実行前の Lakehouse の状態です。
Pipeline の実行が成功しました。
実行後、Lakehouse に新しいテーブルが追加されたことを確認できます。
まとめ
今回は、Dataflow Gen2 のパラメーターを公開し、Pipeline からその値を渡して処理対象を動的に切り替える流れを確認しました。
今回のポイントは次のとおりです。
- Dataflow Gen2 側でパラメーターを定義し、パブリック パラメーター モードを有効にする
- Pipeline から Dataflow Gen2 を呼び出すと、定義済みパラメーターを利用できる
- Pipeline 側でパラメーターを定義すると、動的コンテンツとして Dataflow Gen2 に値を渡せる
- SQL Server をデータソースとする場合でも、
Value.NativeQueryを活用してクエリ内でパラメーターを利用できる
Dataflow Gen2 単体でも柔軟なデータ取り込みは可能ですが、Pipeline と組み合わせることで、より再利用性の高い構成にしやすくなります。
複数の取り込みパターンを整理したい場合にも、有効な方法の 1 つです。












































