Autonomous DatabaseのData Analysis機能を使ってみた


# はじめに
Data Transformsは、Autonomous Databaseに組み込まれているデータ統合ツールです。

# 本記事の前提条件 

* ADBインスタンスが1つ構成済みであること
* 下記リンクから **Movie Sales 2020.csv, Days_Months.xlsx, Devices.xlsx, Countries.csv(売上実績のサンプルデータ)** をダウンロードしてあること。
    「[OCIチュートリアル, Oracle Database編, 217: クレデンシャル・ウォレットを利用して接続してみよう](https://oracle-japan.github.io/ocitutorials/database/adb217-use-database-actions/#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB)」

* 「 [OCIチュートリアル, Oracle Database編, 403 : Data Transformsを使ってみよう](https://oracle-japan.github.io/ocitutorials/database/adb403-data-transforms/)」を事前に行い、Movie Sales 2020.csvをData Transformsを用いて加工した、MOVIE_SALES_2020Q2という表を使用します。こちらのチュートリアルを試してから本記事を読まれると、理解がスムーズかと思います。


# 作業の大まかな流れ
**～前提条件まで～**
* ADBインスタンス(この記事ではADBtake01)を構築したのちQTEAMというユーザーを作成し、Movie Sales 2020.csv, Days_Months.xlsx, Devices.xlsx, Countries.csvをロードします。
* QTEAMスキーマにロードしてあるデータ(Movie Sales 2020.csv)をインポートします。
* データの変換作業(データの修正、トリミング)を行います。

QTEAMユーザーの作り方等含めて、詳細は[OCIチュートリアル, Oracle Database編, 403 : Data Transformsを使ってみよう](https://oracle-japan.github.io/ocitutorials/database/adb403-data-transforms/)をご覧ください。

**～本記事～**
- [Data Analysisの起動](#data-analysisの起動)
- [分析ビューの編集](#分析ビューの編集)
- [分析ビューの作成](#分析ビューの作成)

# 実際にData Analysisを使ってみた

### Data Analysisの起動
1. ADBインスタンスの詳細画面から、Database Actionsの起動パッドを開きます。
    ![Autonomous DatabaseのData Analysis機能を使ってみた1_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/766d51c3-8b6b-5eb4-39fb-cd3ea2d225ee.png)

1. ADMINユーザーからいったんログアウトして、前提条件で作成してある**QTEAM**ユーザーでログインし直します。QTEAMユーザーでDatabase Actionsにログインした状態で、起動パッドを開きます。データ分析の項目をクリックし、Data Analysisが起動します。
    このときユーザーにDWROLE権限が付与されていないと、データ分析の項目が表示されません。
    ![Autonomous DatabaseのData Analysis機能を使ってみた1_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/13d3b49a-10db-7a6f-7245-94ff1f8b6e6b.png)


### 分析ビューの編集

1. 分析ビューの編集をします。画面左上からQTEAMスキーマを選択し、青い「作成」ボタンを押します。
    ![Autonomous DatabaseのData Analysis機能を使ってみた2_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/c4e32e4b-7f12-bbfd-77dd-164cea8fc29e.png)

1. 名前はデフォルトのまま変更しなくて大丈夫です。
    スキーマ名や、ファクト表を画像のように選択して、[ 階層およびメジャーの生成 ]を押します。
    ![Autonomous DatabaseのData Analysis機能を使ってみた2_1_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/5b57ac91-0746-c736-3fc3-a76e85c3a283.png)

1. ダイアログ ボックスには、ディメンション表の検索、ディメンション表の分析、および使用するデータソース、結合、階層、およびメジャーの特定と作成の進行状況が表示されます。プロセスが完了したら、[ 閉じる ] をクリックします。
    ![Autonomous DatabaseのData Analysis機能を使ってみた2_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/03b3ffff-5fe3-a4b2-d309-c2daf4f7d964.png)

1. [ データ・ソース ] タブには、データのソースとそれらの間の関係が表示されます。ファクト表(MOVIE_SALES_2020Q2)と関連するディメンション表(Days_Months.xlsx, Devices.xlsx, Countries.csv)の関係性が表示されます。
1. 既存のファクト表から階層を生成した後でも、データ・ソースから階層を追加、削除ができます。
    ![Autonomous DatabaseのData Analysis機能を使ってみた2_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/8b087ea6-f315-706b-8908-5b4c5b9a213c.png)

1. [ 階層 ] タブには、分析ビュー作成ツールによって生成された階層が表示されます。表示には、階層の名前とソースが含まれます。分析ビューには、少なくとも 1 つの階層が含まれている必要があります。

    階層を追加するには、[ 階層の追加 ] をクリックします。これにより、その表の列のリストとして表示されます。階層の詳細レベルとして機能し、ファクト表への結合キーとなる列を選択します。
ここでは、COUNTRIES表のCONTINENT列を追加してみます。
これらの階層は「上に移動」「下に移動」ボタンで位置を移動することができます。
    ![Autonomous DatabaseのData Analysis機能を使ってみた2_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/dfc4d89a-f020-9e92-ef0c-c8e790160190.png)

1. 階層名をクリックすると、ダイアログ ボックスに階層名とソースが表示されます。
ソースを変更するには、ドロップダウン リストから以下のようにソースを選択します。

    ![Autonomous DatabaseのData Analysis機能を使ってみた2_9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/fa620f91-4e94-80de-9160-206b64a513be.png)
[ レベルの追加 ] を選択して、階層にレベルを追加します。[ レベルの削除 ]をクリックして、選択したレベルを階層から削除することもできます。

1. ここで、GENRE階層のプレビュー・データを見ていきましょう。以下のように、「プレビュー・データ」を押します。
        ![Autonomous DatabaseのData Analysis機能を使ってみた2_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/cca6eef8-f350-c5d8-00b1-0a68f27feb83.png)
    
    ファクト表のデータとデータに関する統計を表示することができます。 [ プレビュー ] タブには、テーブルの列と列内のデータが表示されます。
        ![Autonomous DatabaseのData Analysis機能を使ってみた2_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/02cbbe16-253a-6027-57dc-210e21cd2716.png)
    [ 統計 ] タブには、テーブルのサイズと、行と列の数が表示されます。
        ![Autonomous DatabaseのData Analysis機能を使ってみた2_13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/ff767a1e-de60-c2e1-e3df-a43de0b9c4dd.png)

1. [ 階層 ] タブで特定のレベルをクリックすると、ダイアログボックスに、それぞれのレベル名、レベル キー、代替レベル・キー、メンバー名、メンバー・キャプション、メンバーの説明、[ ソート基準 ]のドロップダウンが表示されます。フィールド値を変更するには、該当するフィールドに値を入力します。
    今回は特に変更せずに進めます。
    ![Autonomous DatabaseのData Analysis機能を使ってみた2_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/b52ea5de-632a-e326-fa25-92a317ec935a.png)

1. [ メジャー ] タブには、分析ビューに提案されたメジャーが表示されます。各メジャーのメジャー名、列、および演算子の式が表示されます。
   
1. 分析ビューのデフォルトのメジャーとしてメジャーの種類を指定する必要があります。下記のように、デフォルト・メジャーをドロップダウンから選択することができます。SALESからPURCHASEに変更してみます。
    ![Autonomous DatabaseのData Analysis機能を使ってみた2_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/630c575c-97b4-0109-d2b5-c8228aad818f.png)

    ![Autonomous DatabaseのData Analysis機能を使ってみた2_16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/4f409dd6-0835-5e22-0d29-cd9d49ce7477.png)

1. メジャーを追加するには、[ メジャーの追加 ] をクリックします。メジャー リストの下部に新しいメジャーを表示できます。メジャーを削除するには、リストから削除するメジャーを選択し、[ メジャーの削除 ] をクリックします。特に変更せずに進めます。
    注意すべきなのは、メジャーでは数字データが格納されている階層でないと、分析ビューを作成した際に構造エラーになります。
    ![Autonomous DatabaseのData Analysis機能を使ってみた2_17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/212aeff0-9390-41aa-afcf-215afdcda609.png)

1. 例えば、SALESのメジャーをクリックすると、以下のような設定画面が出ます。ここでは、メジャー名、列名、色名、フォーマットを選択できます。
    ![Autonomous DatabaseのData Analysis機能を使ってみた2_18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/4a1ce406-16d6-23b1-26d4-93c65c575bf7.png)

    分析ビューを作成する際には、1つ以上の階層、メジャー列と、ファクト表の外部にある各ディメンション表に結合する列を持つファクト表を指定する必要があります。

1. 分析ビューの問合せに「計算」を追加できます。分析ビューに関連付けられたメジャーと階層により、新たに計算メジャーを作成できます。計算されたメジャーにはデータが格納されないため、データベースのサイズを増やすことなくメジャーを作成できます。
    ここで、[ 計算メジャーの追加 ]を押して、計算メジャーを追加してみます。
    ![Autonomous DatabaseのData Analysis機能を使ってみた2_19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/b48b3f12-0512-ead8-498c-6daa61458cc2.png)
1. [ 計算 ] タブで、システムが生成した名前で新しい計算を表示できます。デフォルトだと、「計算1」のように表示されるかと思います。

    新しく作成された[ 計算1 ]メジャーをクリックし、以下のように設定してみます。
    ![Autonomous DatabaseのData Analysis機能を使ってみた2_20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/84138f44-a788-1eff-6ad8-3bd014272ed4.png)
    設定の詳細は、[ドキュメント](https://docs.oracle.com/en/database/oracle/sql-developer-web/sdwad/data-analysis-tool.html#GUID-0CBFA445-2931-48EA-B345-9415FE6B2084)をご覧ください。
1. ここまで設定した分析ビューのDDLを表示できます。左下の[ DDLを表示 ]を押します。
    ![Autonomous DatabaseのData Analysis機能を使ってみた2_21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/d773adf1-7f11-9f75-c438-2e4d10b73860.png)

1. このように、DDLが表示されます。
    ![Autonomous DatabaseのData Analysis機能を使ってみた2_22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/c5122b44-a434-8d01-0c29-1d35b651582b.png)


### 分析ビューの作成

1. 画面右下の[ 作成 ]ボタンを押すと、以下のように分析ビューが生成されます。
    最初に[ データの品質 ] タブが表示され、エラーがあるかどうかが確認できます。
    ![Autonomous DatabaseのData Analysis機能を使ってみた3_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/d670e7ed-6245-fc76-3949-a52fdc1b6863.png)

1. [ 分析 ]タブを押します。また、分析ビューを編集したい場合は、分析ビュー名の右側にある青色の3点のボタンを押すと、画像のように作業が選択できます。
    ![Autonomous DatabaseのData Analysis機能を使ってみた3_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/a117cf61-9653-cbb9-5683-32d769ac4a5d.png)

1. [ 分析 ]タブから、階層レベルとメジャーを選択してデータを分析します。以下のように、ドラッグアンドドロップで、X軸、Y軸を指定していきます。値(Y軸)は、分析ビューのメジャーである必要があります。
    ![Autonomous DatabaseのData Analysis機能を使ってみた3_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/fd49037a-3c2a-aaeb-83ee-45983c6c58b9.png)

1. フィルタを指定して、分析したい値にドリルダウンするのに役立ちます。例えば、下記画像のようにMONTHをApril、CONTINENTをAsia、COUNTRYをJapanにチェックをつけると、時期と場所をフィルタリングすることができます。
    ![Autonomous DatabaseのData Analysis機能を使ってみた3_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/d558d2b0-ea2b-4f28-70fe-de894e7f8fd2.png)

    ![Autonomous DatabaseのData Analysis機能を使ってみた3_5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/3b82f0aa-ebd1-1489-5607-22f94792821e.png)
1. また、分析の表示結果をグラフではなく、表で表示することもできます。
    ![Autonomous DatabaseのData Analysis機能を使ってみた3_6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/d760931b-d00d-6075-c831-5a729c367123.png)

1. また、これまで分析してきた作業の過程をSQL文で見ることもできます。分析タブの画面上部のSQLのマークを押すと、以下のような画面に遷移します。
    右上の緑色の実行ボタンを押すと、SQLワークシートエディタの下の領域には、フィルタ条件に一致する検索条件の結果が表示されます。
    ![Autonomous DatabaseのData Analysis機能を使ってみた3_7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/061e2441-00e5-87ed-b833-12a00fa52aef.png)

1. また、実行結果をグラフで表示することもできます。
    ![Autonomous DatabaseのData Analysis機能を使ってみた3_8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/5100d7f2-f191-a007-14b9-66ae3dc8a395.png)

1. また、分析ビューの編集の段階で作成した計算メジャーを使用してみます。
    下記のように、X軸とY軸を設定し直します。そうすると、ジャンルごとの購買量を見ることができます。
    ![Autonomous DatabaseのData Analysis機能を使ってみた3_9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/f9678479-2b5d-e1a6-210f-29efda5cc317.png)

1. [ エクスポート ]タブは、Tableau や Microsoft Power BI などのツールにデータをエクスポートできます。
    ![Autonomous DatabaseのData Analysis機能を使ってみた3_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3058002/cb65da70-4a81-fc41-1a23-b9cc5487fc74.png)



# まとめ
本記事ではData Analysisを用いて、データ間のデータ依存関係を可視化し、分析を行ってみました。
# 参考資料

* [Oracle, Help Center, Using Oracle Database Actions for Oracle Cloud, 14 The Data Analysis Tool](https://docs.oracle.com/en/database/oracle/sql-developer-web/sdwad/data-analysis-tool.html#GUID-9D4C60B4-F35F-4654-AAFD-4A81ED9C877A)
* [OCIチュートリアル, Oracle Database編, 403 : Data Transformsを使ってみよう](https://oracle-japan.github.io/ocitutorials/database/adb403-data-transforms/)