目次
1. はじめに
皆さんこんにちは。
今回は、Azure Data Factoryでインラインビュー、サブクエリーを実現する方法について説明していきます。
第1回:SQLコマンドをAzure Data Factoryで実現する
第2回:Azure Data Factoryでインラインビュー、サブクエリーを実現する(今回)
第3回:Azure Data Factory上でinsert、delete、update、mergeの処理を実行する
※ 前提条件
-
- Azure ストレージアカウントが存在すること。
- Azure Data Factoryが存在すること。
- Azure Data Factoryはストレージアカウントに連携されたこと。
2. データセットを作成する
2.1 demo.csv ファイルをストレージアカウントへ取り込む
Azure Data Factoryでインラインビュー、サブクエリーを実現するために、1つのデータセットの作成が必要です。
このデータセットはストレージアカウントからデータを取得するので、以下の手順でdemo.csv ファイルをストレージアカウントへ取込んでください。
① ストレージアカウントのポータル画面で「コンテナー」をクリックして、「コンテナー」をクリックします。
② コンテナーに「my-container」等の名前を付けます。
③「作成」をクリックします。
④ コンテナーの一覧が表示されます。作成したコンテナーをクリックします。
⑤「アップロード」をクリックして、「ファイルの参照」をクリックします。
⑥ ファイルを選択するダイアログが表示されます。 demo.csv ファイルを取込んで、「アップロード」をクリックします。
⑦ アップロードしたファイルが表示されます。
2.2 データセットを作成する
① Azure Data Factoryのポータル画面で アイコンをクリックして、「新しいデータセット」を選択します。
②「Azure BLOB ストレージ」を選択して、「続行」をクリックします。
③「DelimitedText」を選択して、「続行」をクリックします。
④ 「名前」項目で「 DemoDataset」等のデータセットの名前を入力します。
⑤「リンクサービス」項目でdemo.csvファイルを保存したストレージに連携のサービスを選択します。
⑥「ファイルパス」項目でdemo.csvファイルを選択します。「OK」ボタンをクリックします。
⑦ データセットが作成されました。データを表示するには「データのプレビュー」をクリックします。
⑧ demo.csv ファイルに含まれたデータセットは画像の通りです。このデータセットを使用して、 Azure Data Factoryでインラインビュー、サブクエリーを実現します。
⑨「すべて発行」をクリックして、データセットを保存します。
⑩「発行」をクリックします。
3. インラインビューを実現する
インラインビューは、FROM 句を使用する SELECT ステートメントであり、一時テーブルを作成して SELECT ステートメントでデータを取得できるようにします。
インラインビューの例は以下の通りです。ADFで以下のコマンドを実行します。
1 2 3 4 5 6 |
SELECT id, StudentName, Mark FROM (SELECT * FROM Student) AS s |
① ADFのポータル画面で アイコンをクリックして、「新しいデータフロー」をクリックします。
②「ソースの追加」をクリックして、「ソースの追加」を選択します。
③「ソースの設定」タブの「データセット」項目で作成したデータセットを選択してください。
上記のクエリを使用して、2つの選択アクションを作成します。1つ目の選択アクションはインラインビューを実現します。
(SELECT * FROM Student) AS s
2つ目の選択アクションはそのインラインビューからID、StudentName、Mark の3つフィールドを取得します。
④ 1つ目の選択アクションを作成するには、 アイコンをクリックして、「選択」を選択します。
⑤ 1つ目のアクションに対して全てのカラムを選択します。
⑥ このアクションは全てのレコード及び、そのレコードの全てフィールドを選択します。このアクションはインラインビューです。
次に、2つ目の選択アクションを作成して、作成したインラインビューからID、StudentName、Mark の3つフィールドを取得します。
⑦ 1つ目のアクションで をクリックして、「選択」を選択します。
⑧ 2つ目のアクションの「設定の選択」タブで、「着信ストリーム」項目に最初のアクションを選択します。
⑨「入力例」項目でID、StudentName、Mark の3つフィールドを選択します。
⑩「データのプレビュー」タブで「新規の情報に更新」をクリックして、2つ目のアクションのデータを確認します。
⑪ ADFでインラインビューの実現が完了しました。実現後、シンクで変換したデータを保存します。
⑫ をクリックして、「シンク」をクリックします。
⑬「着信ストリーム」項目で2つ目の選択アクションを選択します。
⑭「シンクの種類」項目でSQL Server、SQL Database等のデータ保存場所を選択できます。
ADFでインラインビューの実現が完了しました。
3. サブクエリーを実現する
サブクエリとはSQLの中に書くSQLのことです。サブクエリは主に WHERE句 で記述する場合が多いです。
サブクエリの例は以下の通りです。ADFで実現します。
1 2 3 4 5 6 7 |
SELECT id, StudentName FROM Student WHERE id IN (SELECT id FROM Student WHERE Mark > 5) |
インラインビューの実現で使用されたデータソースから新規ブランチを作成します。
① データソースでの アイコンをクリックして、「新しいブランチ」を選択します。データソースの新規ブランチが作成されます。
上記のクエリに対して、フィルターアクションを実行して、「mark > 5」での StudentID を取得します。
②作成されたブランチでの アイコンをクリックして、「フィルター」を選択します。
③「フィルターオン」項目で 「Mark>“5”」と入力して、「mark > 5」での Student を取得します。
次に、選択アクションを作成して、前段で取得したStudentのIDを取得します。
④ フィルターアクションでの アイコンをクリックして「選択」を選択します。
⑤「着信ストリーム」項目で作成したフィルターを選択します。
⑥「入力例」項目で ID 列のみを選択して、StudentIDを取得します。
⑦「データのプレビュー」をクリックして「最新の情報に更新」を選択すると、 「mark > 5」での StudentID の一覧が表示されます。
⑧ WHERE句内のサブクエリーの実現が完了しました。次は、取得したStudentID の一覧にてWHEREの条件を満たすStudentのID、StudentNameを取得します。
⑨ をクリックして、「既存」を選択します。
⑩「左ストリーム」項目でデータソースを選択して、「右ストリーム」項目で作成した選択アクションを選択します。
⑪「型が存在する」項目で「既存」を選択します。
⑫「exists条件」項目で id を2つのドロップダウンに選択します。
⑬「データのプレビュー」をクリックして「最新の情報に更新」を選択すると、Studentの一覧が表示されます。
⑭ IDとStudentNameを取得するには、選択アクションを作成します。
⑮ をクリックして、「選択」を選択します。
⑯「着信ストリーム」項目で作成した exists アクションを選択します。
⑰「入力例」項目で、IDとStudentNameを選択します。
⑱「データのプレビュー」をクリックして「最新の情報に更新」を選択すると、 「mark > 5」での StudentのIDとStudentName が表示されます。
ADFでサブクエリーの実現が完了しました。
4.まとめ
Azure Data Factoryでインラインビュー、サブクエリーを実現する方法について説明しました
今回の記事が少しでもAzure Data Factoryを知るきっかけや、業務のご参考になれば幸いです。
第1回:SQLコマンドをAzure Data Factoryで実現する
第2回:Azure Data Factoryでインラインビュー、サブクエリーを実現する(今回)
第3回:Azure Data Factory上でinsert、delete、update、mergeの処理を実行する
今回の記事が少しでもAzure Data Factoryを知るきっかけや、業務のご参考になれば幸いです。
Azure Data FactoryやAzure活用、マイクロソフト製品の活用についてご相談事がありましたらぜひお問い合わせください!
・Azure Data Factory連載シリーズはこちら
この記事を読んだ方へのオススメコンテンツはこちら
この記事を書いた人
- quanna