1. はじめに
皆さんこんにちは。
今回では、Azure Data Factoryのパイプライン上にて、データセットの値を変数として利用する方法を説明していきます。
用途としては、月に一度、何かしらの締め日に特定の処理を行うために、
締め日の一覧が記載されたデータセットの値を取得し、
パイプライン実行日が締め日かどうかの判定に用いるなどが挙げられます。
今回は例として、Azure SQL Database内のテーブル名「TableA」のカラム名「日付」の一覧を取得します。
※ 前提条件
- Azure Data Factoryが作成されたこと。
- Azure SQL Databaseが作成されたこと。
2. サンプルテーブルを作成する
① Azure SQL Databaseのポータル画面で「クエリエディター」をクリックします。SQL Databaseにログインします。クエリエディター画面が表示されます。
② 以下のSQLコマンドを実行して、サンプルテーブルを作成します。「実行」をクリックします。
1 2 3 4 5 6 |
CREATE TABLE TableA( dummyColumn nvarchar(10), [日付] nvarchar(30) ) INSERT INTO TableA VALUES ('a','2023-04-25'),('b','2023-05-17'),('c','2023-06-26'),('d','2023-07-18'),('e','2023-08-15'),('f','2023-09-19'),('g','2023-10-27'), ('h','2023-11-30'),('i','2023-12-11'),('j','2024-01-25'),('k','2024-02-14'),('l','2024-03-13') |
③ 以下のSQLコマンドを実行して、データを確認します。「実行」をクリックします。テーブルが次の画像通り表示されます。
1 |
SELECT * FROM TableA |
3. データセットを作成する
① ADFの画面で アイコンをクリックして、「新しいデータセット」をクリックします。
② Azure SQL Databaseを選択して、「続行」をクリックします。
③「名前」項目でデータセット名を入力します。「リンクサービス」を選択して、 「新規」をクリックします。
④「Azure サブスクリプションから」にチェックを入れて、作成されたSQLデータベースを選択します。
⑤「認証の種類」で「SQL認証」を選択します。ユーザー名、及びパスワードを入力して、「作成」をクリックします。
⑥「テーブル名」項目で作成した「dbo.TableA」を選択します。「OK」をクリックします。
⑦ データセットが作成されました。「データのプレビュー」をクリックして、データを確認します。
⑧「すべて発行」をクリックします。
⑨「発行」をクリックします。データセットの作成が完了しました。
4. 変数としてデータセットを利用する
次に、データセットからデータを取得して、パイプラインの配列型の変数に入れます。
① アイコンをクリックして「新しいパイプライン」をクリックします。
② パイプライン画面が表示されます。パイプラインに「参照」アクティビティをドラッグアンドドロップします。
③ 「名前」項目で「参照」アクティビティ名を「TableA_Lookup」に更新します。
④「設定」タブをクリックします。「ソースデータセット」項目で作成したデータセットを選択します。「先頭行のみ」項目を無効にします。
⑤「データのプレビュー」をクリックします。結果が次の画像通りです。
⑥ 次に、ForEachを使用して「日付」列 のデータを取得して、変数に追加します。検索バーで「ForEach」を検索して、ForEachアクティビティをパイプラインにドラッグアンドドロップします。
⑦「参照」アクティビティを ForEach アクティビティに成功のリンクで紐づけます。
⑧「全般」タブでForEachアクティビティ名を「TableA_Loop」に変更します。
⑨「設定」タブに移動して「順次」チェックボックスを有効にします。「項目」に以下のコマンドを入力します。
1 |
@activity('TableA_Lookup').output.value |
⑩ ForEachの中で アイコンをクリックします。「変数の追加」を検索して、「変数の追加」を選択します。
⑪ 追加した「変数の追加」をクリックして、「設定」タブで「新規」をクリックします。
⑫「Hidzuke」という変数の名前を入力して、「種類」項目で「アレイ」を選択します。「設定」をクリックします。
⑬「値」に以下のコマンドを入力します。「日付」列の値のリストを取得して、変数「Hidzuke」に追加しました。
1 |
@item().日付 |
⑭「Hidzuke」変数の結果から別の変数を作成して、結果を確認します。「変数の設定」を検索して、 「変数の設定」アクティビティをパイプラインにドラッグアンドドロップします。
⑮ ForEachアクティビティを「変数の設定」アクティビティに成功リンクで紐づけます。
⑯「設定」タブで「新規」をクリックします。
⑰「名前」項目で「View」を入力します。「種類」項目で「アレイ」を選択します。「設定」をクリックします。
⑱「値」項目に以下のコマンドを入力します。
1 |
@variables('Hidzuke') |
⑲「デバッグ」 をクリックして、パイプラインを実行できます。実行結果が次の画像通りです。Set variable 1の アイコンをクリックします。
⑳ 結果が次の画像通りです。変数としてデータセットを利用できました。
5. まとめ
Azure Data FactoryでAzure Data Factoryのパイプライン上で変数としてデータセットを利用する方法について説明しました。
今回の記事が少しでもAzure Data Factoryを知るきっかけや、業務のご参考になれば幸いです。
Azure Data FactoryやAzure活用、マイクロソフト製品の活用についてご相談事がありましたらぜひお問い合わせください!
・Azure Data Factory連載シリーズはこちら
この記事を書いた人
- quanna