Oracle Analytics Cloud Classic：続・利用状況を把握する ～準備：セマンティックモデラー編(Semantic Modeler)～

はじめに
---
Oracle Analytics Cloud（OAC）は、データベースを検索した結果を可視化したりレポート作成したりするためのツールです。
OACにはUsage Trackingという機能が備わっており、ユーザの利用状況を確認するための情報をデータベースに保管することができます。
Usage Trackingは初期状態では未設定となっています。
- [Oracle Analytics Cloud：利用状況を把握する ～準備編～](https://qiita.com/tyo38/items/5ed90689b69992bfbb6f)では、Oracle Analytics Developer Client ToolsのModel Administration Toolを利用した設定方法が紹介されています。
本記事では、セマンティックモデラー(Semantic Modeler)を利用して設定する方法について記載してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/db2e0181-9fbd-820f-f4d0-600eb73bb8d6.png)


記事記載時のOAC ver：Mar 2023 Update

前提
---
セマンティックモデラーとは何かというのがぼんやりとわかっている。
セマンティックモデラーで物理レイヤー、論理レイヤー、プレゼンテーションレイヤーを作成している。
データの保管先はAutonomous Data Warehouse（ADW）にする
Model Administration Toolを使ったことがある
※現時点では初期設定時に一部、Model Administration Toolを利用します。

利用状況を格納するDBユーザーの作成
---
ADWにanalytics_userを作成します
ADWにクラウドの管理コンソールから、ADWにアクセスします。
データベースアクションを開きます。
![{5DB2ECAB-E045-4E79-BEA6-90E21F38D16E}.tmp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/52ea6723-faeb-f092-c650-e9240d4bbed8.png)

中ほどまでスクロールダウンします。
管理のところのデータベース・ユーザーをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/b8d3ce7d-464e-1a08-8697-9537271b237f.png)

ユーザーの作成をクリックします。
![{5DB2ECAB-E045-4E79-BEA6-90E21F38D16E}.tmp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/b303da03-5e24-2c94-7bde-1fe065fa40a2.png)

ユーザー名、パスワード、パスワードの確認をセットします。表領域の割当て制限はUNLIMITEDに設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/9a6f10db-6843-251e-271e-b390ae552869.png)

付与されたロールのタブをクリックし、左上の"ロールでフィルタ"ところにDWROLEを入力します。付与済をクリックし、チェックを入れます。ユーザーの作成をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/a0512918-a2f2-7e91-80d8-b1c645e19202.png)


接続の作成
---
※作業前にコンソール - スナップショットでバックアップを取得しておきます。
OACにアクセスします。セマンティック・モデルを開きます。
接続タブをクリックします。"＋"アイコンをクリックし、接続の作成をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/49554966-c831-4f7c-8ab9-5fd45c802572.png)

Autonomous Data Warehouseをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/955dbf85-1751-ffcc-5198-d3335a1f78c7.png)

接続名を入力、ウォレットファイルをセットし、作成してある利用状況を格納するDBユーザーのユーザー名、パスワードを入力します。
セマンティック・モデルで接続を使用する際に必要な、システム接続のチェックボックスをクリックし、チェックを入れます。保存をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/07d97ced-d2e9-c76d-a5e8-27e747d9360c.png)

物理レイヤーの設定
---
物理レイヤータブをクリックします。"+"アイコンをクリックし、データベースの作成をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/6e280899-3f04-91d9-4844-ce6fa748ed57.png)

任意の名前を入力します。OKをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/9aaf90d8-0f39-c6ad-0bf1-ad2b0309c0e0.png)

作成したデータベースで、接続プールタブをクリックします。"+"アイコンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/95933580-f3f7-e069-8cd8-a42aa8da2fa5.png)

接続プールが作成されます。名前を変更します。作成した接続「analytics_usage」が選択されていることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/7467eb7c-8d1e-003f-af6c-3c9904bf8beb.png)

データベース、接続プールの名前は後程設定で利用しますので書き留めておきます。 
例ではデータベース名：ANALYTICS_USAGE、接続プール：UTConnectionPool

セマンティック・モデルのデプロイ
---
保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/711c9982-8b88-b1ec-52c7-ffd8c33d8242.png)

整合性チェックを実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/e783015f-f8bd-1c84-91b6-fd76a7a591db.png)

エラーがないことを確認します。デプロイします。右上部の「・・・(縦)」をクリック、メニューからデプロイをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/76dad7ce-5d1f-ec89-5eef-8429a1ae463c.png)

デプロイをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/93702f71-e887-3631-4def-9de77939ac77.png)

右下部にデプロイ中と表示されますので、デプロイに成功しました。と表示されるまで、待ちます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/4c7fc1c5-52c4-eb1f-1e42-2917377d1730.png)


Model Administration Toolで接続設定を追加する
---
現時点では、セマンティック・モデルに加えて、Model Administration Toolでの設定を行います。
OACに接続し、データ・モデルを開きます。下部「データ接続の使用」のチェックを外します。データソース名にウォレットファイルを解凍すると入っているtnsnames.oraの設定、共有ログオンのチェックを外し、DBユーザー名、パスワードをセットします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/2d372bb8-b9d3-f9fe-1848-c7cb0a9d89a6.png)

tnsnames.oraはdelayとretryを削除し、以下の部分をセット。xxxは自身のウォレットファイルを参考ください。
(description=(address=(protocol=tcps)(port=1522)(host=xxx.xx-xxxxx-1.oraclecloud.com))
  (connect_data=(service_name=xxxxxxx.adb.oraclecloud.com))(security=(ssl_server_dn_match=yes)))

設定後、保存し、クラウドに公開します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/e3c8cf39-5bed-2e66-4c1e-9ea68b8168ee.png)

利用状況 Usage Trackingの設定
---
コンソールからシステム設定を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/9323990d-bea9-71f9-1826-33d3174b1065.png)

次のプロパティを設定します。表名は任意です。入力した名前でANALYTICS_USERに表が作成されます。
|プロパティ|値（例）|
|---|---|
|Usage Tracking Maximum Rows|0|
|Usage Tracking Logical Query Logging Table|ANALYTICS_USAGE.ANALYTICS_USER.LogicalQueries|
|Usage Tracking Init Block Table|ANALYTICS_USAGE.ANALYTICS_USER.InitBlockInfo|
|Usage Tracking Connection Pool|ANALYTICS_USAGE.UTConnectionPool|
|Usate Tracking Physical Query Logging Table|ANALYTICS_USAGE.ANALYTICS_USER.PhysicalQueries|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/dc0680fb-f4e3-1b5f-f2c4-1b6e3eb1530b.png)

コンポーネントをリスタートします。
一番上までスクロールして、右上の「Apply」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/51f91f91-f1c5-93e7-a311-d162309c1c77.png)

指定したスキーマに自動的に必要な表が作成されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/ce1325e7-8aad-1174-0eba-9cfdf56394c7.png)


Model Administration Toolsの設定の取り込み
---
Model Administration Toolsの設定をセマンティック・モデルに取り込みます。
メニュー「・・・（縦）」をクリックします。Load Deployed Model」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/70ccb25b-7258-e17a-b1f9-831b1f6efa54.png)

Loadをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/791a8add-d0c2-d324-2281-8fae033f1ec5.png)

左上部の物理レイヤータブをクリックします。作成した物理レイヤーをクリックして、開きます。接続プールタブをクリックし、接続"system"."Default"をダブルクリックします。▲をクリックし、リストから作成した接続に変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/6e39a68f-8d48-ef44-9e22-8d4758a29a5a.png)

セマンティック・モデルを保存し、整合性チェックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/17b5ac19-22b7-0499-e4db-15ef45fbddce.png)

デプロイします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/89447d30-2920-12d6-41ca-8e8b4c0d1609.png)

セマンティック・モデルで、論理レイヤー、プレゼンテーション・レイヤーを設定します。


エラー
---
「状態: HY000。コード: 46281。[nQSError: 46281] データセット'system'.'Default'のメタデータのダウンロードに失敗しました。」
=> "System"."Defaul"から変更する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2516153/b63145fe-c36e-954f-c18c-952203549cbc.png)


参考文献
この記事は以下の情報を参考にして執筆しました。

- [Oracle Analytics Cloud：利用状況を把握する ～準備編～](https://qiita.com/tyo38/items/5ed90689b69992bfbb6f)