Data Factory のコンポーネントにパラメーターを追加する

完了

Azure Data Factory のリンクされたサービスのパラメーター化

Azure Data Factory 内では、リンク サービスをパラメーター化することで、実行時に動的な値をパススルーできるようになります。 このシナリオのユース ケースとして、同じ SQL Server 上にある複数の異なるデータベースへの接続があります。この場合、リンク サービスの定義内でデータベース名をパラメーター化することを検討できます。 これを行う利点は、同じ SQL Server 上にあるデータベースごとに 1 つのリンク サービスを作成する必要がなくなることです。

また、ユーザー名のようなリンク サービスの他のプロパティをパラメーター化することもできます。

Azure Data Factory でリンク サービスをパラメーター化することにした場合は、Azure Data Factory ユーザー インターフェイス、Azure portal、または任意のプログラミング インターフェイスでこれを行うことができます。

ユーザー インターフェイスを使用してリンク サービスを作成することを選択した場合、Data Factory では、いくつかのコネクタに対して組み込みのパラメーター化を提供することができます。

  • Amazon Redshift
  • Azure Cosmos DB (SQL API)
  • Azure Database for MySQL
  • Azure SQL データベース
  • Azure Synapse Analytics (旧称 SQL DW)
  • MySQL
  • Oracle
  • SQL Server
  • 汎用 HTTP
  • 汎用 REST

リンク サービスの作成または編集ブレードに移動すると、パラメーター化のオプションが表示されます。

Parameter settings in Linked Service

別の種類のコネクタを使用しているために組み込みのパラメーター化を使用できない場合は、ユーザー インターフェイスを使って JSON を編集できます。

リンクサービスの作成または編集ペインで、そのペインの下部にある [詳細設定] を展開し、[動的なコンテンツを JSON 形式で指定します] チェックボックスをオンにして、リンクサービスの JSON ペイロードを指定します。

Parameter settings editing JSON through UI

または、パラメーター化なしでリンク サービスを作成した後、[管理] ハブで [リンク サービス] を選択し、特定のリンク サービスを見つけます。 その後、{} (コード ボタン) を選択して JSON を編集します。

Data Factory のグローバル パラメーター

Azure Data Factory パイプラインでグローバル パラメーターを設定すると、それらの定数をパイプライン式で使用できるようになります。 グローバル パラメーターを設定するユース ケースは、パラメーターの名前と値が同一のパイプラインが複数ある場合です。

Azure Data Factory で継続的インテグレーションと継続的 (CI/CD) デプロイ プロセスを使用する場合は、作成した環境ごとに必要に応じてグローバル パラメーターをオーバーライドできます。

Azure Data Factory でグローバル パラメーターを作成する

グローバル パラメーターを作成するには、 [管理] セクションの [グローバル パラメーター] タブに移動します。 [新規] を選択して、作成のサイド メニュー ペインを開きます。

サイド メニュー ペインで、名前を入力し、データ型を選択して、パラメーターの値を指定します。

グローバル パラメーターが作成された後、パラメーターの名前を選択して編集できます。 複数のパラメーターを一緒に変更するには、[すべて編集] を選択します。

Global parameters in Azure Data Factory set up

パイプラインでグローバル パラメーターを使用する

Azure Data Factory のパイプラインでグローバル パラメーターを使用する場合、それは主にパイプライン式で参照されます。 たとえば、パイプラインがデータセットやデータ フローなどのリソースを参照している場合は、リソース パラメーターを使用してグローバル パラメーターの値を渡すことができます。 Azure Data Factory フロー内でのグローバル パラメーターのコマンドまたは参照は、次のようになります: pipeline().globalParameters.<parameterName>

CI/CD でのグローバル パラメーター

Azure Data Factory で CI/CD を使用してパイプライン内のグローバル パラメーターを統合する場合、以下の 2 つの方法があります。

  • Azure Resource Manager テンプレートにグローバル パラメーターを含める
  • PowerShell スクリプトを使用してグローバル パラメーターをデプロイする

CI/CD のほとんどのプラクティスでは、Azure Resource Manager テンプレートにグローバル パラメーターを含めることをお勧めします。 これをお勧めするのは、CI/CD とのネイティブ統合であるためです。この場合、グローバル パラメーターは Azure Resource Manager テンプレートのパラメーターとして追加されます。 これは、作業している複数の環境での変更によるものです。

Azure Resource Manager テンプレートでグローバル パラメーターを有効にするには、[管理] ハブに移動します。 Azure Resource Manager テンプレートにグローバル パラメーターを追加した後、Azure Data Factory のレベル設定が追加され、これにより git 構成などの他の設定がオーバーライドされる可能性があることに注意してください。

PowerShell スクリプトを使用してグローバル パラメーターをデプロイするユースケースは、UAT や PROD などの管理者特権環境で前述の設定を有効にしていることが原因である可能性があります。

マッピング データフローのパラメーター化

Azure Data Factory 内では、マッピング データ フローを使うことができ、これにより、パラメーターを使用できるようになります。 データ フローの定義内でパラメーターを設定した場合は、式の中でそれらのパラメーターを使用できます。 パラメーター値を設定するには、データ フローの実行アクティビティからパイプラインを呼び出します。

データ フロー アクティビティの式で値を設定するには、以下の 3 つのオプションがあります。

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

マッピング データ フローをパラメーター化する理由は、ご利用のデータ フローを一般化された、柔軟性の高い、再利用可能なものにするためです。

データフローでのパラメーターの作成

データ フローにパラメーターを追加するには、データ フロー キャンバスの空白部分を選択して、全般プロパティを表示します。

[設定] ペインに、[パラメーター] タブが表示されます。

新しいパラメーターを生成するには [新規] を選択します。 パラメーターごとに、名前を割り当て、型を選択し、必要に応じて既定値を設定する必要があります。

Global Parameters in Dataflow in Azure Data Factory Settings

マッピング データフローでパイプラインからパラメーターを割り当てる

パラメーターを設定してあるデータ フローを作成した場合は、データ フローの実行アクティビティを使用してパイプラインからそれを実行できます。

アクティビティをパイプライン キャンバスに追加した後、そのアクティビティの [パラメーター] タブにデータ フローのパラメーターが表示されます。

パラメーター値を割り当てると、Spark の種類に基づいてパイプライン式言語またはデータ フロー式言語でパラメーターを使用できるようになります。 2 つ、つまり、パイプラインおよびデータ フロー式のパラメーターを組み合わせることもできます。