Oracle Analytics Cloud：シーケンスで複数のデータフローをまとめて順番に実行する

# はじめに
今回もOracle Analytics Cloud（**OAC**）のデータフロー機能を紹介します。
別の記事で作成したデータフローを実行すると作成されるデータセットと、これとは別のデータセットを結合し、第3のデータセットを作成します。

- [Oracle Analytics Cloud：データ・フローでランキングを計算する](https://qiita.com/tyo38/items/0e864c8ab2aaa44ef5a8)

# 結合に使用するデータセット
Autonomous Data Warehouse（**ADW**）のサンプルスキーマであるSHのデータをちょっと加工したビューを作成しました。
そのビューから作成したのがこのデータセットです。
数カ月分の販売データとなります。
「顧客別販売実績」という名前にしました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/7df7052d-43d4-5add-7e5c-1a2957eb933f.png)

# 新しいデータフローの作成
「作成」ボタンをクリックして、「データ・フロー」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/399a2b69-0267-7142-e97e-ef22205598dd.png)

「前月上位10顧客」データセットを選択して、「追加」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/74b0be9d-3df5-6cd6-9fca-ee38a8d0ff38.png)

:::note
「前月上位10顧客」データセットは、[Oracle Analytics Cloud：データ・フローでランキングを計算する](https://qiita.com/tyo38/items/0e864c8ab2aaa44ef5a8) で作成しました。
:::

データセットの右の「＋」をクリックしてステップを追加します。
追加するのは「データの追加」ステップです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/12b3aa7b-7b15-2614-1e92-26a3b93d83ef.png)

再びデータセットを選択する画面となります。
今度は「顧客別販売実績」データセットを選択して、「追加」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/10ac3ec3-6b1e-e477-eebc-ad9b3abeecba.png)

2つのデータセットが自動的に結合されました。
入力1が「前月上位10顧客」データセットで、入力2が「顧客別販売実績」データセットです。
両方のデータセットの「顧客ID」列で結合します。
また、上位10顧客以外のデータも取得したいので、入力2に関しては「すべての行」とします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/b6ebf4ab-7bef-bcb5-d587-882c267ebb06.png)

結合の右に「列の選択」ステップを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/d2682943-b907-b5f4-4326-484bb623f3c5.png)

入力1（「前月上位10顧客」データセット）の「顧客ID」と「販売金額 合計」を選択して「選択項目の除去」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/c270c3b2-cf77-4180-937b-9bcfd3582f3e.png)

「列の名前変更」ステップを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/6c5a4997-bd6b-e859-7627-1ffe8d30b84e.png)

「販売金額ランク」を「前月顧客ランク」に、「顧客ID_1」を「顧客ID」に変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/e5c2bfba-4ac9-1aa5-e927-4cd8864d1146.png)

最後に「データの保存」ステップを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/1abac90f-ec7f-1271-4821-5a0895a49eb6.png)

データセット名を「前月顧客ランク別販売実績」としました。
各ID列の処理形式を属性に変更し、データフローを保存した後に実行します（「前月顧客ランク別販売実績の作成」という名前にしました）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/21edb3b7-a7b3-41d4-1e16-0aad60ca6269.png)

# 作成したデータセットを試してみる
データフローが実行され、データセットが作成されました。
このデータセットをクリックして、新規のワークブックを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/9d0d37af-76ce-9a2e-d844-8e9f6a2e768b.png)

「前月顧客ランク」をフィルタします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/3f33ac2b-a338-8418-4eae-ce7bd64dd078.png)

「除外」「Null」の両方をオンにします。
これで、上位10顧客のみが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/66b187d8-6178-1e43-cdfd-3f1c2790958c.png)

前月の売上上位10顧客に絞って、これまでの数カ月分の月別販売金額を折れ線にしてみました。
前月売上上位であった顧客が、これまでも安定的に売上に貢献してきたわけではなさそうだ、ということがわかりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/aed193be-a623-7eec-5011-08252b6f20b5.png)

# データセットをまとめて実行する
ここまでの流れを整理すると

1. データフロー1を作成してデータセットAを作る
1. データフロー2を作成してデータセットAとデータセットBを結合、データセットCを作る
1. データセットCを使って分析する

となっています。
データフロー2は、データフロー1の実行結果に依存しており、データフロー1の後に実行する必要があります。
これらを手動で実行しても良いのですが、まとめて希望通りの順番で実行する方法があります。

## シーケンスの作成と実行
データメニューに「シーケンス」というタブがあります。
今はまだ何もありませんが、シーケンスを作成するとここに表示されます。
「新規」ボタンをクリックして「シーケンス」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/fd77b2a8-2158-af8e-d8de-17fcda88ea7d.png)

新たなシーケンスが作成され、左側に作成済みのデータフローのリストが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/96b3687b-1afd-a29a-7bc7-8b4a9c85dc5d.png)

この中から、最初に実行したいデータフローである「顧客ランク」を右ペインにドラッグ＆ドロップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/dd245ea6-3619-5660-0276-2f053e36056d.png)

続いて、「前月顧客ランク別販売実績の作成」データフローをドラッグ＆ドロップします。
上から順番に実行されますが、順番を変更することもできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/95e57a85-1d25-eb3a-af1e-5bd301baa7ae.png)

シーケンスに名前を付けて保存します。
作成したシーケンスを右クリックし「実行」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/1c343e5e-3a58-82eb-35b1-9471cd08e529.png)

設定した順番でデータフローが実行され、結果のステータスが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/3239271d-d3bb-00e7-221b-bb8e546bc454.png)

## シーケンスの実行履歴の確認
シーケンスを右クリックし、「検査」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/8e3e3fe1-6074-c03b-acf9-fb4ba303af56.png)

「履歴」タブを開き、今実行した履歴をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/3a215fa7-513d-7f82-f3b9-5ba64d4faee4.png)

実行したタスクを確認できます。
タスク名をクリックすると、さらに詳細を確認することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/683a8508-9505-27d0-2d38-4fdf48aa4f3d.png)

# おわりに
複数のデータフローを駆使して、分析用のデータセットを作成する場合でもシーケンスによって順番通り実行することができます。
シーケンスはスケジュール実行も可能なので、色々と試してみてください。