次の方法で共有


マッピング データ フローをパラメーター化する

APPLIES TO: Azure Data Factory Azure Synapse Analytics

ヒント

Data Factory in Microsoft Fabric は、よりシンプルなアーキテクチャ、組み込みの AI、および新機能を備えた次世代のAzure Data Factoryです。 データ統合を初めて使用する場合は、Fabric Data Factory から始めます。 既存の ADF ワークロードをFabricにアップグレードして、データ サイエンス、リアルタイム分析、レポートの新機能にアクセスできます。

Azure Data Factoryパイプラインと Synapse パイプラインのマッピング データ フローでは、パラメーターの使用がサポートされています。 データ フロー定義内でパラメーターを定義し、式全体で使用します。 パラメーター値は、呼び出し元のパイプラインによって、Data Flow実行アクティビティを使用して設定されます。 データ フロー アクティビティの式で値を設定するには、次の 3 つのオプションがあります。

  • パイプラインの制御フローの式を使用して動的な値を設定する
  • データ フロー式の言語を使用して動的な値を設定する
  • いずれかの式の言語を使用して静的なリテラル値を設定する

この機能を使用して、ご利用のデータ フローを汎用的かつ柔軟性があり、再利用可能なものにします。 3 つのパラメーターを使って、データ フローの設定と式をパラメーター化することができます。

マッピング データ フローでのパラメーターの作成

ご利用のデータ フローにパラメーターを追加するには、データ フローのキャンバスの空白部分をクリックして、全般プロパティを表示します。 [設定] ペインに、[パラメーター] という名前のタブが表示されます。 新しいパラメーターを生成するには [新規] を選択します。 パラメーターごとに、名前を割り当て、型を選択し、必要に応じて既定値を設定する必要があります。

データフローパラメータの作成のスクリーンショット

マッピング データ フローでのパラメーターの使用

パラメーターは任意のデータ フロー式で参照できます。 パラメーターは $ で始まり、変更することはできません。 式ビルダー内で利用可能なパラメーターの一覧が [パラメーター] タブに表示されます。

スクリーンショットは、[パラメーター] タブの使用可能なパラメータを示しています。

[新しいパラメーター] を選択して [名前] と [種類] を指定することで、パラメーターを簡単に追加できます。

スクリーンショットは、新しいパラメーターが追加された [パラメーター] タブのパラメーターを示しています。

マッピング データ フローでのパラメーター化されたリンク サービスの使用

パラメーター化されたリンク サービスは、マッピング データ フロー (データセットまたはインラインのいずれかのソースの種類) で使用できます。

ソースの種類がインラインの場合、リンク サービス パラメーターは、次に示すようにパイプライン内のデータ フロー アクティビティ設定で公開されます。

スクリーンショットは、データ フローでのリンク サービス パラメーターの使用を示しています。

ソースの種類がデータセットの場合、リンク サービス パラメーターはデータセット構成で直接公開されます。

パイプラインからパラメーター値を割り当てる

パラメーターを含むdata flowを作成したら、Data Flow実行アクティビティを使用してパイプラインから実行できます。 パイプライン キャンバスにアクティビティを追加すると、アクティビティの [パラメーター] タブに、使用可能なデータ フロー パラメーターが表示されます。

パラメーター値を割り当てる場合、spark の種類に基づいて、パイプライン式言語またはデータ フロー式言語のいずれかを使用できます。 各マッピング データ フローには、パイプラインとデータ フロー式のパラメーターの任意の組み合わせを含めることができます。

スクリーンショットには、myparam の値として Data Flow 式が選択された [パラメーター] タブが表示されています

パイプライン式パラメーター

パイプライン式パラメーターを使用すると、システム変数、関数、パイプライン パラメーター、および他のパイプライン アクティビティと同様の変数を参照できます。 [Pipeline expression](パイプライン式) をクリックすると、サイドナビゲーションが開き、式ビルダーを使用して式を入力できます。

スクリーンショットは、式ビルダーのペインを示しています。

参照すると、パイプライン パラメーターが評価され、その値がデータ フロー式言語で使用されます。 パイプライン式の型は、データ フロー パラメーターの型と一致する必要はありません。

文字列リテラルと式

文字列型のパイプライン式パラメーターを割り当てると、既定で引用符が追加され、値はリテラルとして評価されます。 パラメーター値をデータ フロー式として読み取るには、パラメーターの横にある [式] ボックスをオンにします。

スクリーンショットは、パラメータに対して [エクスプレッション] が選択された [データ フロー パラメータ] ペインを示しています。

データ フロー パラメーター stringParam から値 upper(column1) のパイプライン パラメーターを参照する場合。

  • [式] がオンの場合、$stringParam は column1 の値に評価され、すべて大文字になります。
  • 式がチェックされていない場合 (既定の動作)、$stringParam'upper(column1)' に評価されます

タイムスタンプを渡す

パイプライン式言語では、pipeline().TriggerTime などのシステム変数や utcNow() などの関数からは、タイムスタンプが "yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ" という形式の文字列として返されます。 これらをタイムスタンプ型のデータ フロー パラメーターに変換するには、文字列補間を使用して、toTimestamp() 関数に目的のタイムスタンプを含めます。 たとえば、パイプラインのトリガー時間をデータ フロー パラメーターに変換するには、toTimestamp(left('@{pipeline().TriggerTime}', 23), 'yyyy-MM-dd\'T\'HH:mm:ss.SSS') を使用できます。

スクリーンショットは、トリガー時間を入力できる [パラメーター] タブを示しています。

注意

データ フローは、最大 3 ミリ秒の数字のみをサポートしています。 left() 関数は、追加の数字を切り捨てるために使用されます。

パイプライン パラメーターの例

型が String、intParam のパイプライン パラメーターを参照する整数パラメーター @pipeline.parameters.pipelineParam があるとします。

スクリーンショットは、stringParam と intParam という名前のパラメーターが表示された [パラメーター] タブを示しています。

@pipeline.parameters.pipelineParam には実行時に abs(1) の値が割り当てられます。

スクリーンショットは、a b s (1) の値が選択された [パラメーター] タブを示しています。

派生列などの式で $intParam が参照されると、abs(1) が評価されて 1 が返されます。

スクリーンショットは、列の値を示しています。

データ フロー式のパラメーター

[Data flow expression](データ フロー式) を選択すると、データ フロー式ビルダーが開きます。 データ フロー全体で、関数、その他のパラメーター、定義されたスキーマ列を参照できます。 この式は、参照時にそのまま評価されます。

注意

無効な式を渡すか、その変換に存在しないスキーマ列を参照すると、パラメーターは null と評価されます。

パラメーターとして列名を渡す

一般的なパターンは、列名をパラメーター値として渡すことです。 列がデータ フロー スキーマで定義されている場合は、文字列式として直接参照できます。 列がスキーマで定義されていない場合は、byName() 関数を使用します。 toString() などのキャスト関数を使用して、列を適切な型にキャストすることを忘れないでください。

たとえば、パラメーター columnName に基づいて文字列型の列をマップする場合は、toString(byName($columnName)) に等しい派生列変換を追加できます。

パラメーターとして列名を渡す

注意

データ フロー式では、文字列補間 (文字列内での変数の置換) はサポートされていません。 代わりに、式を文字列値に連結します。 たとえば、'string part 1' + $variable + 'string part 2' のように指定します。