Autonomous DBにODIレポジトリの作成方法

本ブログは、[オラクル・クラウドの個人ブログ](https://qiita.com/letian/items/10152a4fec813c1b7d98)の1つです。
# 初めに
冒頭ですが、この記事の位置付けは、次のシリーズ記事の1つです。
[データ統合 (ODI On-P, ODI MP, OCI DI)](https://qiita.com/letian/items/10152a4fec813c1b7d98#%E3%83%87%E3%83%BC%E3%82%BF%E7%B5%B1%E5%90%88-odi-on-p-odi-marketplace-oci-di)

前回の記事では、OCIマーケットプレイスからODIインスタンスを作成する方法を紹介しました。今回は、オラクルの自律型データベース(Autonomous Database)上にODIリポジトリを作成する方法を紹介したいと思います。

__動作確認環境__
ODI Marketplace (12.2.1.4)
Autonomous Data Warehouse

__ステップ__
[1. ADBでレポジトリ用ユーザの作成](#1-adbでレポジトリ用ユーザの作成)
[2. ADBウォレットファイルをダウンロードし、ODIインスタンスにアップロードする](#2-adbウォレットファイルをダウンロードしodiインスタンスにアップロードする)
[3. マスター・リポジトリの新規作成](#3-マスターリポジトリの新規作成)
[4. マスター・リポジトリへの接続](#4-マスターリポジトリへの接続)
[5. 作業リポジトリの作成](#5-作業リポジトリの作成)
[6. 作業リポジトリへの接続](#6-作業リポジトリへの接続)

※この方法は「ODI On-P」に適用しないことをご注意ください。（ODI On-Pの場合、ADBにリポジトリの保存ができません。）

# 1. ADBでレポジトリ用ユーザの作成
adminユーザとしてログインし、ODIリポジトリー用ユーザを新規作成します。 （この例では、「SQL Developer」を使用しています。）
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/16308798-b29c-ec8e-acd6-7b3c08ac0857.png" width="500">

ユーザに「DWROLE」を付与します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/be3a4e51-dc15-cd64-c62e-a6bcc95f126f.png" width="500">

ユーザに「PDB_DBA」を付与します（「管理者」オプション付き）。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/c9e8f48c-1697-7144-546d-2eab2f471ca9.png" width="500">

無制限の表領域をユーザに付与します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/19e88f3c-38c0-6424-a7da-702c225c4663.png" width="500">

「適用」ボタンをクリックしてユーザを作成します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/1011807f-f051-891a-9cad-43ad9b331963.png" width="500">

ユーザ作成後
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/8ba82c11-f915-261f-f3e6-a3ed6a4d64bc.png" width="300">

SQLスクリプトは、次のようです。

```sql
-- USER SQL
CREATE USER "ODI_REPO" IDENTIFIED BY "<Password>"  
DEFAULT TABLESPACE "DATA"
TEMPORARY TABLESPACE "TEMP";

-- QUOTAS
ALTER USER "ODI_REPO" QUOTA UNLIMITED ON "DATA";

-- ROLES
GRANT "PDB_DBA" TO "ODI_REPO" WITH ADMIN OPTION;
GRANT "DWROLE" TO "ODI_REPO" ;
```

# 2. ADBウォレットファイルをダウンロードし、ODIインスタンスにアップロードする
Autonomous Database -> Autonomous Database Details -> DB Connection
ウォレットのタイプを指定して、"Download Wallet"をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/e71a6db3-f072-d8de-a8e5-fb19de074854.png)

パスワードを入力して、ダウンロードを開始します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/55bb5033-2c5d-d91d-0911-8413dea18e46.png" width="450">

ADBウォレットをODIインスタンスにアップロードする手順をスキップします。お好きなFTP/SSHツールを利用し、アップロードしてください。ウォレットファイルは、`/home/oracle/.odi/oracledi/ewallet`の下に格納しておいてください。(<font color=blue>解凍は不要</font>)

```
[opc@oracle-odi-inst-wc4b ~]$ pwd
/home/opc
[opc@oracle-odi-inst-wc4b ~]$ ls -l Wallet_ADW2021.zip
-rw-rw-r--. 1 opc opc 21617 Nov  5 06:49 Wallet_ADW2021.zip
[opc@oracle-odi-inst-wc4b ~]$ sudo mv Wallet_ADW2021.zip /home/oracle/.odi/oracledi/ewallet/
[opc@oracle-odi-inst-wc4b ~]$ sudo chown oracle:oracle /home/oracle/.odi/oracledi/ewallet/Wallet_ADW2021.zip
[opc@oracle-odi-inst-wc4b ~]$ sudo ls -l /home/oracle/.odi/oracledi/ewallet/Wallet_ADW2021.zip
-rw-rw-r--. 1 oracle oracle 21617 Nov  5 06:49 /home/oracle/.odi/oracledi/ewallet/Wallet_ADW2021.zip
[opc@oracle-odi-inst-wc4b ~]$
```

# 3. マスター・リポジトリの新規作成
ODI Studioを起動し、次の手順でリポジトリの作成を開始します。
Menu Bar -> File -> New -> Create a New Master Repository
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/3c672388-c00a-4095-0be4-bccc7333ca8a.png)

以下のように接続情報を入力します。

|項目|  コメント    |
|:------|:--------|
|Technology|Oracle (デフォルト)|
|JDBC Driver|oracle.jdbc.OracleDriver (デフォルト)|
|Use Credential File|チェックする|
|Credential File|ADBウォレットの圧縮ファイルを選択する。|
|Connection Details|`<ADB_Name_high>,<ADB_Name_medium>,<ADB_Name_low>`から選択|
|Use Http Proxy|デフォルトではチェックされていない。 (この例ではスキップする)|
|JDBC URL|編集不要|
|User|ODIリポジトリのスキーマ名（STEP-1で作成した）|
|Password|上記スキーマのパスワード|
|DBA User|admin|
|DBA Password|ADB管理者(admin)のパスワード|

「Test Connection（接続のテスト）」をクリックしてテストします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/f4e37a7d-69e6-6b8b-8829-26c4a419781d.png" width="600">

接続に成功したら、「次へ」ボタンをクリックして続行します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/d1a8ff1e-74a8-adf5-d010-6f4b52b0f899.png" width="600">

「ODI認証」（デフォルト）または「外部認証」のどちらを使用するかを選択できます。「ODI認証」の場合、「SUPERVISOR」のパスワードを作成する必要があります。パスワードを入力したら、「次へ」をクリックして続行します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/f6171e42-b757-15c8-3a54-503f205d2ed4.png" width="600">

パスワードを内部ストレージまたは外部ストレージに保存することを選択できます。このテストでは「内部パスワード・ストレージ」（デフォルト）を選択します。
「Finish（完了）」ボタンをクリックすると、マスター・リポジトリの作成が始まります。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/115b9961-d38a-b150-4e7d-9d0a4ca9128e.png" width="600">

マスター・リポジトリの作成には、約数分間かかります。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/840e0f9b-7e06-d4b3-b513-0e0eb5130ae6.png">

作成後、次のようなメッセージが表示されます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/86fc1204-f8e2-a49d-d080-3e471acd5aca.png" width="450">

# 4. マスター・リポジトリへの接続
Security Tab -> Connect to Repository -> "+" (プラス・アイコン)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/8ba070ad-de3a-dd21-51b0-035310c27a0e.png)

以下のように接続情報を入力します。

|項目|コメント|
|:--|:--|
|Login Name|マスター・リポジトリのログイン名を入力する。|
|User(ODI Connection)|SUPERVISOR|
|Password|SUPERVISORのパスワードを入力する。|
|User(DB Connection)|ODI_REPO (STEP-1で作成したユーザ。)|
|Password|ユーザ「ODI_REPO」のパスワードを入力する。|
|Driver List|Oracle JDBC Driver (Default)|
|Driver Name|oracle.jdbc.OracleDriver (Default)|
|Use Credential File|チェックする|
|Credential File|ADBウォレットの圧縮ファイルを選択する。|
|Connection Details|`<ADB_Name_high>,<ADB_Name_medium>,<ADB_Name_low>`から選択する。|
|Use Http Proxy|デフォルトではチェックされていない（この例ではスキップする）。|
|URL|編集不要|
|Master Repository Only|チェックする|

「Test Connection（接続のテスト）」をクリックしてテストします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/f3f983ae-dc14-47ec-18c4-c00427958511.png" width="550">

接続に成功したら、「OK」をクリックして接続ウィンドウを閉じます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/943dc576-bc84-720e-8201-38e11a54884f.png" width="550">

パスワードは安全なウォレットに保存できますが、この例ではウォレットを利用しないようにします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/b4cae99f-a3b3-8c1e-7901-7387a3f0bbb0.png" width="450">

ログイン情報を確認し、「OK」をクリックしてマスター・リポジトリにログインします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/74d70f43-2f8d-38c4-bd50-334a18d6c183.png" width="450">

# 5. 作業リポジトリの作成
Topology Tab -> Repositories -> Work Repositories -> New Work Repository
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/a8bd5443-35c1-37ce-7d55-e6c076b7cc61.png)

デフォルトでは、次のように接続情報が表示されます。通常なら、編集する必要はありません。内容確認後、「Test Connection（接続のテスト）」をクリックしてテストします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/820f9746-fc22-59c7-3cf0-e0bfb9b1765f.png)

接続に成功したら、「次へ」ボタンを押して続行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/4c4e0c0e-df2c-d69f-b508-dee3537e46e9.png)

以下の情報を入力した後、「Finish（完了）」ボタンをクリックして、作業リポジトリの作成を開始します。

|項目|コメント|
|:--|:--|
|Name|WORKREP1 (デフォルト)|
|Password|パスワードを入力（作成）する（確認用の再入力はない）。|
|Work Repository Type|"Development"(デフォルト)または"Execution"を選択する。|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/088acee2-f732-ec20-ed43-fe8b5bd6a61a.png)

作業リポジトリが作成されたら、新しいログインを作成できます（「Yes」を押します）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/37cd94a6-ecaa-7ae0-4dec-6580332c8237.png)

作業リポジトリの「ログイン名」を入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/c0332a41-38e8-fb41-0c2f-20ea44db6c9f.png)

# 6. 作業リポジトリへの接続
マスター・リポジトリから切断します。 (Designer Tab -> Disconnect)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/7829990c-735b-0b58-234b-9d2f9ee14322.png)

Designer Tab -> Connect to Repository -> 作業リポジトリのログイン名を選択 -> 編集アイコンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/05162738-1b7a-5dfe-dc93-5c43881e4e6d.png)

SUPERVISORのパスワードを入力し、ADBウォレット・ファイルを選択してから、「テスト」ボタンを押して接続をテストします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/ad84bbf6-1b34-e643-f613-09e6af9478a3.png" width="550">

接続に成功したら、「OK」を押して接続ウィンドウを閉じます。この接続テストを成功するのに少し時間がかかりました。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/29cfc941-02ae-5baa-a6a0-537af59b2570.png" width="550">

Designer Tab -> Connect to Repository -> Select Login Name for work repository -> OKボタン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/8d94a51b-bbf4-46ee-312d-2b1ac72df615.png)

これで、作業リポジトリに接続されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/9b96bb17-a5af-a734-1de3-38d83e2541e1.png)

以上

----
__関連記事__
[オラクル・クラウドの個人ブログ一覧](https://qiita.com/liu-wei/items/10152a4fec813c1b7d98)
[ODI On-PとODI MarketplaceとOCI Data Integrationの比較](https://qiita.com/liu-wei/items/dc527ad423fbd2f1742d)
[OCIマーケットプレイスからODIインスタンスを作成する方法](https://qiita.com/liu-wei/items/9a0e92e2e0905976f3ae)