Oracle Analytics Cloud：ブラウザでリポジトリ作成 2/3 ～論理層の作成～

:::note
この記事の内容は、Oracle Analytics Cloud（**OAC**） May 2023 Updateを使用して検証しました。
将来のアップデートでUIが変更される可能性があります。
:::
# この前の作業
こちらを参考に、新規のセマンティック・モデルを作成の上、物理層を定義してください。
[Oracle Analytics Cloud：ブラウザでリポジトリ作成 1/3 ～接続プールと物理層の作成～](https://qiita.com/tyo38/items/e95b5b4c87ae3ab46669)

# 1. 論理層の作成
セマンティックモデルを開き（あるいはセマンティックモデルを開いた状態で）、「新規」ボタンをクリックし「ビジネス・モデル」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/ea7e604e-6281-1944-b919-240a3fa6dcda.png)

今回は、「SH」という名前のビジネスモデルを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/7f8a4f9e-7c04-c50d-4312-a29e3899484a.png)

# 2. ビジネスモデルの定義
ビジネスモデルに必要な定義を加えていきます。

## 2.1 論理表の選択
最初にファクト表を選択します。
ファクト表とは、集計するデータが格納された表のことです。
集計するデータとは、一般的には金額や数量、人数などです。ファクト表には集計列の他に、分析の軸にあたるディメンションとの結合列が含まれます。
ファクトの「表の追加」アイコンをクリックし、「表の追加」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/46890fd7-2c2f-f577-10e5-b42dd78f6f5a.png)
「SALES」表を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/7ccc19f5-6c71-b91c-0bb5-aae8bf82e8a7.png)
同様に、ディメンションにも表を追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/b1cfa2bb-574f-57c4-a0ca-fcdc4ce84e30.png)
「CHANNELS」「PRODUCTS」「TIMES」の3つの表を追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/a57b9e9e-c43a-c346-7c55-138b1164d5d8.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/54760a1a-1539-8a7c-821f-bcb93d75dd23.png)

## 2.2 チャネル・ディメンションの定義
「CHANNELS」ディメンション表をダブルクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/711f9bee-1609-45c8-1dfb-6bcf10a6d9df.png)
「一般」タブに移動して、「主キー」として「CHANNEL_ID」が選択されていることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/416bc1a6-f80d-8e25-8372-57c45d69c818.png)
「列」タブに移動して、上下の矢印アイコンやドラッグ＆ドロップで、列の並び順を変えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/2839c8de-9d70-30dd-ea0a-acdeebd3fda6.png)
「階層」タブに移動し、階層タイプを「レベル・ベース」にします。
階層名を「H1」から「Channel Dim」に変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/b4be17e5-9851-b99f-a529-0278cfc1ac6d.png)
デフォルトの「合計」「詳細」を削除します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/46b30e0d-3bdd-0f96-d038-3be1f21d9941.png)
総計レベルを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/31743ffa-d06a-1c5b-c1ae-5276278a42ff.png)
次に、「新規レベル」を追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/71496748-c134-1bce-a18f-3f4580944a95.png)
もう一つ、「新規レベル」を追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/de81e6b0-a4e3-d924-a730-e0efbf2f5067.png)
最後に「詳細」を追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/8924e649-18ec-6fcc-1af3-fcda77a1d5f8.png)
「総計レベル」をクリックし、レベル名を「Grand Total」にして、「このレベルの要素」を「1」にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/e2378d86-b503-7886-e802-2c40da9d02f4.png)
総計レベルのすぐ下のレベル（おそらく「レベル-3」という名前になっているはず）を選択し、レベル名を「Channel Total」にします。主キーは「CHANNEL_TOTAL_ID」、表示キーは「CHANNEL_TOTAL」にします。
関連付けられた列には、「CHANNEL_TOTAL_ID」と「CHANNEL_TOTAL」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/58e62f10-a572-0114-8d3c-06a8d00bdd63.png)
同様の手順で残りのレベルも設定します。
|元のレベル名|レベル名|主キー|表示キー|関連付けられた列|
|:-|:-|:-|:-|:-|
|レベル-4|Channel Category|CHANNEL_CLASS_ID|CHANNEL_CLASS|CHANNEL_CLASS_ID、CHANNEL_CLASS|
|詳細|Channel Detail|CHANNEL_ID|CHANNEL_DESC|CHANNEL_ID、CHANNEL_DESC|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/d5f5c09c-4a94-3fb8-f8dd-689d346be88e.png)
保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/dc56e248-c1eb-1f6e-f807-547b2e579e02.png)

## 2.3 製品・ディメンションの定義
もう一つ普通のディメンションを定義します。製品ディメンションです。
ビジネスモデル「SH」のタブに戻って、「PRODUCTS」をダブルクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/07900c1a-a171-a4ac-776c-d4b682062fa1.png)
「一般」タブに移動し、主キーが「PROD_ID」であることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/fa8e6e4c-9e71-829f-8eaf-098b5cbb426d.png)
「列」タブに戻り、「PROD_DESC」論理列をクリックして選択し、「削除」アイコンをクリックします。確認を求められたら「はい」を選択します。
※物理的には削除されませんので、元のデータには影響ありません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/74ba35ed-92d3-ad45-1117-78615f34b51a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/c5b5cd6b-42e3-a794-4708-d084cadb699c.png)
続いて、次の列を残して**それ以外**を削除します。まとめて選択して削除することもできます。
- PROD_ID
- PROD_NAME
- PROD_SUBCATEGORY
- PROD_SUBCATEGORY_ID
- PROD_CATEGORY
- PROD_CATEGORY_ID
- PROD_TOTAL
- PROD_TOTAL_ID
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/f90c0d60-a719-a46e-c95e-382c343b2165.png)
ドラッグ＆ドロップや上下の矢印アイコンを使って、列の順序を変えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/b845c10d-d2b4-bb04-54de-8c560008b121.png)
「階層」タブに移動し「階層タイプ」を「レベル・ベース」にします。デフォルトの「合計」「詳細」を削除します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/1386a987-df08-5979-5a6e-120451806176.png)
階層名をH1から「Product Dim」に変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/c19d8278-8b48-a7dd-13b2-a48d06c890f9.png)
総計レベルを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/c3955b6c-adef-4992-521e-e646ae1a80e6.png)
新規レベルを3つ追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/75200173-eb0d-c97a-4c2b-eeb5fd8aa064.png)
次に「詳細」を追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/3d9b3b60-e11a-694c-1250-c8815cbfca03.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/a11fd952-3b8d-228b-cae4-080eb1afe9ba.png)
「総計レベル」をクリックし、レベル名を「Grand Total」にして、「このレベルの要素」を「1」にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/e2378d86-b503-7886-e802-2c40da9d02f4.png)
その他のレベルを次のように変更します。

|元のレベル名|新しいレベル名|主キー|表示キー|関連付けられた列|
|:-|:-|:-|:-|:-|
|レベル-3|Product Total|PROD_TOTAL_ID|PROD_TOTAL|PROD_TOTAL_ID、PROD_TOTAL|
|レベル-4|Product Category|PROD_CATEGORY_ID|PROD_CATEGORY|PROD_CATEGORY_ID、PROD_CATEGORY|
|レベル-5|Product Sub Category|PROD_SUBCATEGORY_ID|PROD_SUBCATEGORY|PROD_SUBCATEGORY_ID、PROD_SUBCATEGORY|
|詳細|Product Detail|PROD_ID|PROD_NAME|PROD_ID、PROD_NAME|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/0068a5f2-b2d5-41ed-2b3c-66acb76a8fb5.png)
保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/1ced34c1-fde7-e710-f102-d5fcd56c1876.png)

## 2.4 時間・ディメンションの定義
最後に時間ディメンションを定義します。
ビジネスモデル「SH」のタブに戻って、「TIMES」をダブルクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/332f85f0-05f4-76f8-ded0-9bb85623800e.png)
「一般」タブに移動し、主キーが「TIME_ID」であることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/d87e14d3-e4b7-08ba-88a1-620b67042fb9.png)
「列」タブに戻って、不要な論理列を削除します。今回は残す列は次の通りです。
- CALENDAR_YEAR
- CALENDAR_MONTH_DESC
- TIME_ID
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/98a8e972-5d21-abf0-016f-6a3dc4f3d737.png)
列の順序を並べ替えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/98ce7047-5fc0-11d2-ebed-34ef969ba133.png)
「階層」タブに移動します。階層タイプを「時間」にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/aace36ba-7b8d-a629-3ea8-7130afab4a13.png)
デフォルのレベル、「合計」と「詳細」は削除します。
名前を「Time Dim」に変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/056ec66f-6377-a444-4ca9-8d08d8d614e9.png)
総計レベルを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/f3a4e76b-b40a-cf37-c93e-bee87d237972.png)
新規レベルを2つ追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/a3c6edd2-9ee4-25f1-b385-edbc9f8c3212.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/6f4754a4-8ff0-2ae0-eecb-f6ecec399587.png)
最後に「詳細」を追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/f443804f-33c6-13d5-98b0-5936de510aec.png)
「総計レベル」をクリックし、レベル名を「Grand Total」にして、「このレベルの要素」を「1」にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/e2378d86-b503-7886-e802-2c40da9d02f4.png)
その他のレベルを次のように変更します。
一番下のレベル（Time Detail）では、時系列キーを指定するのを忘れないようにします。

|元のレベル名|新しいレベル名|主キー|表示キー|関連付けられた列|時系列キー|
|:-|:-|:-|:-|:-|:-|
|レベル-3|YYYY|CALENDAR_YEAR|CALENDAR_YEAR|CALENDAR_YEAR|<設定しない>|
|レベル-4|YYYY/MM|CALENDAR_MONTH_DESC|CALENDAR_MONTH_DESC|CALENDAR_MONTH_DESC|<設定しない>|
|詳細|Time Detail|TIME_ID|TIME_ID|TIME_ID|TIME_ID|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/75c726fa-93ef-812a-5e4c-c40aa5801123.png)
保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/dc56e248-c1eb-1f6e-f807-547b2e579e02.png)

## 2.5 ファクトの定義
SHビジネスモデルのタブに戻り、「SALES」ファクトをダブルクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/69dbd961-e3dd-e125-3ed5-6088d6f1da4a.png)
「QUANTITY_SOLD」列を右クリックし、表示されたメニューから「詳細を開く」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/2d6952ce-4f78-90d4-1960-a51642ef958b.png)
集計ルールを「合計」とします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/6039b86c-e1a6-701e-eea3-d5cbd6253097.png)
同様の手順で、「AMOUNT_SOLD」の集計ルールを「合計」に、「CUST_ID」の集計ルールを「件数」とします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/587b5bc8-f33a-3fea-c80a-59b71c76a51c.png)
保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342206/dc56e248-c1eb-1f6e-f807-547b2e579e02.png)

# 次の作業
次は、プレゼンテーション層でサブジェクト領域を作成します。
- [Oracle Analytics Cloud：ブラウザでリポジトリ作成 3/3 ～プレゼンテーション層の作成と発行～](https://qiita.com/tyo38/items/1674b3da692746b0b1fe)