1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Azure】DataFactoryのForEachを用いたループ処理

1
Last updated at Posted at 2023-05-12

はじめに

こんにちは。株式会社ZEALの@ey___00129です。

DataFactoryのForEachを用いたループ処理について
Lookupアクティビティで取得した値をもとにループする処理を実装していきたいと思います。

利用するAzureリソースは以下
・DataFactory
・AzureSQLDatabase(プロシージャを作成し、ループ処理の確認用として)

所要時間:30分程で実装可能

AzureSQLDatabaseにてプロシージャ作成

まずは、ループ処理の確認用のプロシージャを作成します。
今回は確認目的なので連携されたパラメーターをInsertするプロシージャを作成。

CREATE PROCEDURE [dbo].[Insert_parameter]
@parameter AS  [varchar](20)
AS 
DECLARE @parameter1 AS [varchar](20)  
SET @parameter1 = @parameter;  
EXECUTE ('INSERT INTO [dbo].[parameter_insert_table] VALUES ('''+ @parameter1 +''');'); 

GO

一旦、AzureSQLDatabase上で挙動確認

image.png

正しくパラメーターが取り込まれていますね。
image.png

DataFactoryのパイプライン作成

ここからは、Lookupアクティビティで取得した値
ループ処理に引き渡し取得したデータを元に、プロシージャを繰り返し実行していきたいと思います。

利用するアクティビティは以下。
・Lookup
・ForEach
・Stored procedure

image.png

Lookupアクティビティでは、parameterテーブルに存在する値を取得するクエリを記載。

image.png

ForEachのItemsでは、Lookupから渡された結果をvalueとして受け取ります

Sequentialでは、チェックを入れると順次ループ処理が実行されます。
チェックを入れないと、並列で処理が実行されます。

image.png

Itemsは、以下

@activity('Lookup').output.value

最後に、ForEachの中にStored procedureを作成し
Stored procedure parametersに渡したいパラメーター(@item().parameter)を記載します。

image.png

これで設定は以上です。

DataFactory実行確認

<実行前>
Lookupアクティビティが取得する先のテーブル
image.png

パラメーター取り込み先テーブル
image.png

DataFactoryを実行
Stored procedureがパラメーター分3回繰り返し実行されていますね。
image.png

<実行後>
パラメーター取り込み先テーブルにも正しく3レコード取り込まれていました!!
image.png

以上で、完了です。

今回は基礎的なループ処理を実装してみましたが、
処理を共通化するときなど、他にも応用して使えるので是非お試しください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?