はじめに
この記事では、Autonomous Databaseの新機能である
「PAR URL Table View with Column Level Group By and UI Options(PAR URLのテーブルビューにおける列ごとのグループ化とUIオプションの追加)」について検証してみました。
この機能は、URLにアクセスすることでデータを取得できる事前認証リクエスト(PAR) での機能強化となります。
マニュアルはこちらです。
PAR URLとは
PAR URL
表またはビュー、SQLクエリの実行結果に対する読み取り専用の事前認証リクエスト(PAR) URLの生成し、Autonomous Database内のデータをブラウザ上で表示できるようにし、共有できるようにするものです。
- 2024/11から、column_listsパラメータが追加されました。PAR URLを生成するときに、column_listsパラメータを使用して、指定した列のUIを指定できます。
- column_listsパラメータでは、列ごとにオプションをJSON配列で指定します。
手順
PAR URLの作成
-
ADMINユーザーから、事前認証済リクエスト(PAR)URLを作成するユーザー(本記事ではQTEAM)に対しDBMS_DATA_ACCESSパッケージの実行権限を付与します。
GRANT EXECUTE ON DBMS_DATA_ACCESS TO QTEAM;
-
ADMINからはサインアウトをし、QTEAMユーザーでサインインします。
-
QTEAMスキーマに格納してあるMOVIE_SALES_2020表に対し、以下のようにPAR URLを作成してみようと思います。
set serveroutput on DECLARE status CLOB; BEGIN DBMS_DATA_ACCESS.GET_PREAUTHENTICATED_URL( schema_name => 'QTEAM', --対象のスキーマ名を指定 schema_object_name => 'MOVIE_SALES_2020', --オブジェクトの名前を指定 expiration_minutes => 360, --URLの有効期限(分単位) service_name => 'HIGH', --接続サービスを指定 column_lists => '{"group_by_columns":["MONTH"], "order_by_columns":["COUNTRY"], "filter_columns":["GENRE"], "default_color_columns":["DAY"]}', result => status ); dbms_output.put_line(status); --取得したURLを出力 END; /
-
指定できるcolumn_listsの値については以下のようになります。
column_lists値 | 説明 |
---|---|
order_by_columns | ソートをサポートする列を指定します。列はJSON配列で指定 |
filter_columns | フィルタリングをサポートする列を指定します。列はJSON配列で指定 |
default_color_columns | 指定した列にデフォルトの色のみを使用することを指定します。列はJSON配列で指定 |
group_by_columns | 指定した列に対してグループ化基準を許可することを指定します(指定した列をグループ化してデータを表示することは許可されます)。列はJSON配列で指定 |
本記事では上記のように、group_by_columnsでMONTH列、order_by_columnsでCOUNTRY列、filter_columnsでGENRE列、default_color_columnsでDAY列をそれぞれ指定しております。
ブラウザにアクセス
- PAR URLの作成ができると、以下のような結果が例として返されます。
{"status":"SUCCESS","id":"YDWgGfki6wGEr5CEYwYSzJe4rVFdx5UeKKSZjv2S55MFf4TX9dZuTZ
TKv4bIKDp1","preauth_url":"https://dataaccess.adb.ap-tokyo-1.oraclecloudapps.com
/adb/p/Nqrfuxmu1kWtWwbjyRacavM9y0VvcLlFSS9dArDENnl8kkvRUL7iRVmp95dq54XLTYeo3pEo5
4c/data","expiration_ts":"2024-12-04T08:45:10.722Z","expiration_count":null}
- 生成されたURLにブラウザからアクセスをしてみます。