5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Autonomous Database と APEX で BIデータ更新アプリ をクイックに作成する

Last updated at Posted at 2022-02-10

はじめに

経営の意思決定を目的としたデータ分析のために、BIのデータウェアハウスとして、Autonomous Databaseを採用するケースが増えています。
BIを運用していく中で、DWHのデータを手動で少し更新したいという要件も出てくるかと思います。
Autonomous Databaseでは、APEX(Oracle Application Express)というローコード開発プラットフォームを無料で使用し、簡単にWebアプリケーションを作成することができます。
データベース開発ツールの用意やスクラッチでWebアプリを開発する必要がなく、OCI上のAPEXだけで画面やREST APIをカスタマイズできるのは大変便利です。

【参照】Oracle APEXとは
image.png

この記事はこんな人向け

・AutonomousDatabaseのデータ更新画面を簡単に作成したい人
・APEXでとりあえず何かサクッと作ってみたい人

作るもの・ゴール

AutonomousDatabase / サンプルデータ / REST API / Web操作画面
image.png

AutonomousDatabaseとAPEXでBIテーブル更新用のWebアプリを作成し、画面からデータを更新することがゴールです。

構築手順

  1. Autonomous Databaseの作成
  2. APEXの開始
  3. RESTサービス用のワークスペースの作成
  4. サンプルテーブルの作成
  5. RESTによるテーブルの有効化
  6. アプリケーション用のワークスペースの作成
  7. アプリケーションの作成
  8. Webソースの追加
  9. ページの作成
  10. ページの更新

1. Autonomous Databaseの作成

まずはAutonomousDatabaseを作成していきましょう。
image.png
画面左上のハンバーガーメニューからOracle Databaseを選択します。
今回はBIツールのデータウェアハウスを想定し、Autonomous DataWarehouseを選択します。

image.png
「Autonomous Databaseの作成」ボタンを押下します。

Autonomous Databaseの基本情報の指定エリアで、コンパートメントの選択、表示名データベース名を編集します。ワークロード・タイプの選択は、「データ・ウェアハウス」となっていることを確認してください。
デプロイメントタイプの選択は、「共有インフラストラクチャ」となっていることを確認してください。
今回はハンズオン想定ですので、OCPU数、ストレージはそれぞれ最小値の1で十分です。
管理者資格証明の作成のDBユーザパスワードは必須です。任意の文字列を入力してください。

ハンズオン想定のため、ネットワーク・アクセスの選択では、「すべての場所からのセキュア・アクセス」を選択します。セキュリティの観点から、本番環境では、Autonomous DatabaseをVCN内にデプロイメントすることを検討してください。

ライセンスタイプは、「ライセンス込み」を選択してください。
運用上の通知およびお知らせ用の連絡先は、任意のメールアドレスを入力してください。
ここまで入力したら、「Autonomous Databaseの作成」ボタンを押下します。
押下後、次の画面に遷移します。
image.png
1分ほどでADWが使用可能となります。
image.png

これで、Autonomous Databaseが使用可能となりました。
Autonomous Database作成について、さらなる詳細は、下記リファレンスをご参照ください。
【参照】共有ExadataインフラストラクチャでのAutonomous Databaseの作成

2. APEXの開始

では、本題のAPEXをはじめましょう!
起動しているAutonomousDatabaseの画面から、「サービス・コンソール」ボタンを押下します。
image.png

別タブでAutonomous Data Warehouseの画面が立ち上がります。
image.png
この画面で、左ナビゲーションペインの、「開発」ラベルを押下します。
すると、AutonomousDatabaseで扱える各種開発ツールが表示されます。
Oracle APEXを押下してください。
image.png
すると、APEXのログイン画面が別タブで起動します。
ここで、Autonomous Databaseの作成時に設定したパスワードを入力してください。
image.png
ログイン後、APEXの画面に遷移します。

3. RESTサービス用のAPEXワークスペースの作成

image.png

ハンズオンのスタートラインに立ちました。
いま、AutonomousDatabaseの管理者ユーザでログインしている状態です。
APEXでは、ワークスペースという単位で作成するアプリケーションを管理します。
Create Workspaceボタンを押下して、ワークスペースを作りましょう。
ワークスペースは手順の中で2つ作成することになります。
まずは、DBからのデータのやりとりを定義するREST API用のワークスペースを作成します。

image.png
すると、ポップアップ画面でDatabase UserPasswordWorkspace Nameの必須入力が求められます。Database UserとPasswordは、ADMIN以外の任意の名前を設定できます。今回は、ワークスペースの役割を明示的に区別するため、RESTAPIとしておきましょう。入力後、Create Workspaceボタンを押下します。
image.png

現在、ADMINユーザでAPEXにログインしていますが、このRESTAPIユーザで操作していきます。
APEX画面右上のユーザボタンを押下し、Sign Outラベルを押下します。
今度は、Workspace名、ユーザ名パスワードの入力画面が表示されるので、前画面で作成した情報を入力してSign Inボタンを押下します。
image.png

4. サンプルテーブルの作成

まだAutonomous Databaseは空なので、OCI側であらかじめ用意されているサンプルデータをインポートします。
SQL Workshopのタブから、Utilitiesを選択し、Sample Databaseを選択します。
image.png

今回は、EMP / DEPTを使用しましょう。Installボタンを押下してください。
image.png

任意の言語を選択肢、Nextボタンを押下します。
image.png
DEPT、EMPテーブルとEMP_DEPT_VIEWというビューがひとつ作成されることを確認します。
Install Datasetボタンを押下します。
image.png
Exitボタンを押下します。
※今回は、テーブルに直接アプリケーションを作成する手順は踏みません。このあと、REST APIでサンプルデータを呼び出し、別ワークスペースで作成したアプリケーションからデータを参照します。
image.png

5. RESTによるテーブルの有効化

メインメニューからSQLワークショップを選択し、SQLスクリプトを選択します。
画面遷移後、Createボタンを押下します。
image.png
スクリプト編集画面に、下記URLのSQL分をコピー&ペーストします。
【参照】REST API スクリプト
さらに、Script Nameに""と入力します。(REST APIの命名なので任意の文字列でOKです)
RUNボタンを押下します。
image.png

画面遷移後、Run Nowボタンを押下します。
image.png

実行結果として、4つのSQL文が実行されたことがわかります。
image.png

作成したAPIを確認しましょう。
メインメニューからSQLワークショップを選択し、RESTful Serviceを選択します。
画面遷移後、Modules->emp.rest->holを展開し、GETを選択します。
image.png
FileURLをコピーし、ブラウザの新規タブにペーストします。
下記のように、AutonomousDatabaseにインサートしたサンプルデータの値が表示されたら成功です。
image.png
これで、REST APIからAutonomousDatabaseのデータを操作できるようになりました。
次は、このAPIを利用したアプリケーションの作成を進めていきます。

6. アプリケーション用のAPEXワークスペースの作成

まずは、ワークスペースを作成します。
ワークスペース作成のために、管理者ユーザに切り替えます。
RESTAPIユーザをサインアウトし、下記情報を入力し、管理者ユーザでAPEXにサインインします。
Workspace:Internal(固定値)
Username:Admin(固定値)
Password:Autonomous Database作成時に入力したパスワード

ログイン後、ワークスペースの作成を選択します。
REST APIユーザを作成したときと同様、作成を進めます。
Database UserWorkspace NameはApp(任意の値でOK)にしておきましょう。

作成後、下記の画面のようにワークスペースが作成されたこと、作成したワークスペースにサインインすることをおすすめしてくれるラベルが表示されるので、APP(Workspace Name)をクリックして、サインインします。
image.png

7. アプリケーションの作成

さあ、アプリケーションを作成していきましょう。
App Builderを押下します。
image.png
画面遷移後、Create、New Applicationを選択します。
image.png
image.png
アプリケーション作成画面で、NameにREST Employeesと入力します。(任意の文字列でOK)
Create Applicationボタンを押下します。
image.png
モーダル画面表示後、アプリケーション作成の管理画面が表示されます。
image.png
image.png
次章以降、この画面からアプリケーションの作成を進めていきます。

8. EMPのWebソースの追加

このアプリケーションに連携するREST APIをインポートします。
Shared Componentsを押下します。
image.png
画面遷移後、画面左下のData Sourcesエリア内のREST Data Sourcesラベルを選択します。
image.png
画面遷移後、Createボタンを押下します。ポップアップ画面が起動します。
Create REST Data SourceがFrom Scratchとなっていることを確認し、Nextボタンを押下します。
image.png

画面遷移後、REST Data Source Typeに Oracle REST Data Servicesを選択します。
NameにREST EMP Source(任意の文字列)と入力し、URL Endpointに5. RESTによるテーブルの有効化で確認したURLを入力します。Nextボタンを押下します。
image.png
次画面で、ベースURLおよびサービスURLパスを確認します。Nextボタンを押下します。
次画面は、認証画面となります。

今回は認証をオフにして作成します。
本番環境では認証の導入を検討してください。

Discoverボタンを押下します。
image.png

Create REST Data Sourceボタンを押下します。
image.png

アプリケーションにREST Sourceが登録されたことが確認できました。
REST Source Nameのラベルを押下します。
image.png

GETおよびPOST操作のみが追加されていることがわかります。
image.png
これは、先ほど指定した5. RESTによるテーブルの有効化で確認したURLで定義したAPIメソッドが複数行のGET(取得)とPOST(追加)のみだからです。
image.png

ここに、単一行のGET、PUTとDELETEのメソッドを追加していきましょう。

単一行のGET
Add Operationボタンを押下します。
URL Patternに**:empno**、HTTP MethodGETを選択します。
Database OperationFetch single rowを選択します。
Createボタンを押下します。
image.png

PUT(更新)
Add Operationボタンを押下します。
URL Patternに**:empno**、HTTP MethodPUTを選択します。
Database OperationUpdate rowを選択します。
Createボタンを押下します。

DELETE(削除)
Add Operationボタンを押下します。
URL Patternに**:empno**、HTTP MethodDELETEを選択します。
Database OperationDelete rowを選択します。
Createボタンを押下します。

作成後、REST Data Source画面で下記のようにOperationsが登録されていればOKです。
image.png

ここまでで、アプリケーション画面からのデータ取得準備が整いました。

9. ページの作成

アプリケーションのホーム画面に戻り、ページを作成していきます。
Create Pageボタンを押下します。
image.png

Create a Pageポップアップ画面で、Page TypeにReportを選択します。
image.png

Report Typeには、Report with Formを選択します。Nextボタンを押下します。
image.png

遷移後の画面で、下記情報を入力します。
Report Page Name:Employees
Form Page Name:Maintain Employee
Form Page Mode:Modal Dialog
Breadcrumb:Breadcrumb
image.png

Nextボタンを押下します。

Create Report with Form画面に遷移後、
Navigation PreferenceCreate a new navigation menu entryを選択します。
Nextボタンを押下します。
image.png

Data Source画面に遷移後、次の操作を行います。
Data Source:REST Data Source
REST Data Source:REST Data Source Type
Nextボタンを押下します。
image.png

Primary Key ColumnにEMPNOを選択します。
Createボタンを押下します。
image.png

これでページが作成されました。

10. ページの更新

作成されたページを確認し、登録したAPIからデータを更新してみましょう。
ADMINユーザで一度サインアウトし、Appユーザでサインインします。
image.png

App Builderを押下し、REST Employeesを選択します。
image.png
image.png

ページ遷移後、Run Applicationを押下します。
image.png
別タブでログイン画面が表示されます。Usernameにapp、パスワードにappユーザ作成時のパスワードを入力してください。
image.png

ログイン後、アプリケーションのトップページが表示されます。
image.png

画面左上のハンバーガーメニューを開き、Employeesを選択します。
image.png

先ほどREST APIで取得したデータと同じ情報がアプリケーション画面にも表示されることが確認できました。
データを更新してみましょう。
任意行の編集アイコンを押下します。

すると、行の情報編集ポップアップ画面が表示されます。
image.png

試しにJob項目を社長から会長に変え、Apply Changesボタンを押下してみましょう。
image.png

データが更新されたことを確認できました!
image.png

まとめ

AutonomousDatabaseを作成するところから、ここまで15分~30分ほどでハンズオンできたのではないでしょうか。BIツールのデータセットとしてAutonomousDatabaseを扱うとき、ちょっとしたデータの更新に使用できるかと思います。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?