2024年10月31日木曜日

Graph Visualization Plug-inのサンプル・アプリケーションをOracle Database 23aiのAPEXにインストールする

Oracle Database 23aiからProperty GraphおよびSQL/PGQがサポートされています。Graphの開発チームより、Oracle APEX向けのGraph Visualization Plug-inが提供されています。

このプラグインの使い方について、以下のドキュメントに記載されています。

Graph Developer's Guide for Property Graph

記載が非常に分かりにくいです。

以下より、実際にサンプル・アプリケーションの導入を行い、確認できた手順を紹介します。導入する対象は、Oracle APEX 24.1とOracle Database 23ai Freeです。データベースのバージョンやOracle APEXのバージョンが異なると、アプリケーションとしてインポートするファイルや実行するファイルが異なるので注意が必要です。

Graphのドキュメントの手順にはAPEXのワークスペース・スキーマにCREATE PROPERTY GRAPH権限を与える必要があると記載されていますが、APEX 24.1ではワークスペースの作成時にCREATE PROPERTY GRAPHの権限を与えています。そのため、管理サービスからAPEXのワークスペースを作成していれば、この作業は不要です。

Oracle APEXのサンプル・アプリを保持しているGitHubのリポジトリより、sample-graph-visualizations_23ai.sqlをダウンロードします。



パッケージDBMS_GVTを作成するスクリプトgvt_sqlgraph_to_json.sqlをダウンロードします。optional-23ai-onlyの下にあるファイルです。



パッケージDBMS_GVTを作成します。

Oracle Database 23ai FreeにはパッケージDBMS_GVTが含まれていますが、試したところファイルから作成するパッケージの代わりには使用できなかったです。

ダウンロードしたファイルgvt_sqlgraph_to_json.sqlを実行して、パッケージDBMS_GVTを作成します。

SQLワークショップSQLスクリプトを開きます。


アップロードをクリックします。


ファイルとしてgvt_sqlgraph_to_json.sqlを選択し、アップロードをクリックします。


ファイルがアップロードされたら、gvt_sqlgraph_to_json.sql実行します。


即時実行をクリックします。


パッケージDBMS_GVTとそのパッケージ本体およびファンクションORA_SQLGRAPH_TO_JSONが作成されます。


続いて、サンプル・アプリケーションをワークスペースにインポートします。手順自体は、通常のアプリケーションのインポートと変わりありません。

アプリケーション・ビルダーからインポートを開きます。


インポートするファイルとしてsample-graph-visualizations_23ai.sqlを選択します。

へ進みます。


アプリケーションのインストールをクリックします。


アプリケーションがインストールされます。

サポートするオブジェクトのインストールをクリックします。サンプル・アプリケーションが使用する表の作成やデータのロードなどが行われます。


サポートするオブジェクトのインストールが完了したら、インストール・サマリーをクリックして確認します。


スクリプトの実行が成功していることを確認し、インストール・サマリー左横にある矢印をクリックして、アプリケーション・ビルダーに移動します。


これからサンプル・アプリケーションSample Graph Visualizations - Do not edit -24.4.1を実行します。

その前に共有コンポーネント認証スキームにあるカレントの認証スキームApplication Express Accountsを開き、設定を少し変更します。


セッション共有タイプをカスタムからアプリケーション(非共有)に変更します。


必ずしも必要な作業ではありませんが、テーマのリフレッシュの実施は推奨します。


以上の作業を行なった後、アプリケーションを実行します。

サインインに、以下のようなホーム・ページが表示されます。


アプリケーションに実装されている、各種のサンプルを確認できます。


以上でGraph Visualization Pluginのサンプル・アプリケーションのインストールは完了です。