18.4.10 データ同期化の管理
「データ同期化」を有効にすると、ローカル表の内容をRESTサービスのデータと自動的に同期できます。
- データ同期化について
データ同期化では、開発者は、ローカル表のコンテンツをRESTサービスのデータと自動的に同期化できます。 - RESTソース同期化のインポートおよびエクスポートについて
アプリケーションをインポートすると、RESTソース同期化は無効になります。インポート後に同期化を有効にする方法について学習します。 - REST同期化の構成
ローカル表をRESTサービスからのデータと自動的に同期するように、REST同期化を構成します。 - アプリケーションで定義されているREST同期化の表示
現在のアプリケーションで定義されているREST同期化を表示します。 - 同期化設定のクリア
同期化設定をクリアすると、同期化処理が停止され、同期化に関連するRESTデータ・ソース属性がすべてリセットされます。 - 同期化の使用状況の表示
ローカル同期化表をデータ・ソースとして現在使用しているアプリケーション・コンポーネントのレポートを表示します。 - REST同期ログの管理
REST同期ログについて学習します。
関連項目:
『Oracle APEX管理ガイド』のバックグラウンド・ジョブの構成
親トピック: RESTデータ・ソースの管理
18.4.10.1 データ同期化について
データ同期化では、開発者は、ローカル表のコンテンツをRESTサービスのデータと自動的に同期化できます。
データ同期化は、手動でトリガーすることも、スケジューラ・ジョブを使用して定期的にトリガーすることもできます。スケジュールどおりにRESTソース同期化を実行するには、アプリケーションの解析対象スキーマにCREATE JOB
権限を付与する必要があります。
Oracle APEXでは、RESTデータ・ソースの「データ・プロファイル」の表示列に基づいてローカル表を作成できます。この表はデータベース・スキーマの表示オブジェクトであるため、開発者は、索引の追加、物理プロパティの変更または別の列の追加を行うことができます。
表がデータ・プロファイルと同期していない場合、データ同期化は表とデータ・プロファイルの両方に存在する列を対象に動作し続けます(他の列は無視されます)。ただし、APEXでは、データ・プロファイルに表の列を同期化するためのSQL DDL文が生成されます。これらの文は、サポートするオブジェクトとしてアプリケーションに追加できます。
データ同期化のユースケース
RESTデータ・ソースのデータ同期化を使用する一般的なユースケースには、次のものがあります。
-
RESTサービスから取得された大きいデータ・セットに関する効率的なレポートの提供
一部のRESTサービスは、ページ区切りを含む大量の結果データを返すことがあります。レポート要件でより大きなデータ・セットが必要な場合は、複数のHTTPリクエストが発行され、レスポンス時間が遅くなる可能性があります。索引やその他のデータベース機能を使用して、レポート問合せを高速化することもできません。この場合は、データ同期化を有効にしてリモート・データをローカル表に同期し、ローカル表に基づくレポートを作成することをお薦めします。
-
RESTサービスからの、PL/SQLパッケージまたはその他のロジックで使用するデータの収集
RESTサービスからのデータをローカル表にレプリケートすると、開発者は、ローカル表についてあらゆる種類の処理を実行したり様々なレポートを作成できます。
-
REST APIからの長期間にわたるデータの収集
一部のREST APIでは、最近の期間のデータのみが提供されます。長期間のレポートを作成する場合、開発者は、データ同期化を使用してRESTデータをフェッチし、ローカル表に格納できます。このユースケースでは、後続の2つのRESTリクエストで重複するデータ・セットが返されるため、主キーによるマージ機能も必要になる場合があります。
-
APEXコンポーネントへのインテリジェント・キャッシュの利用
RESTデータ・ソースには、すでにキャッシュ・メカニズムが用意されています。APEXは、JSONレスポンスをCLOBとしてキャッシュ表にキャッシュします。APEXコンポーネントでRESTデータ・ソースが使用され、キャッシュが失効していない場合は、HTTPリクエストが保存され、キャッシュされたJSONが使用されます。ただし、JSONは引き続き解析する必要があります(つまり、データ・セットが大きいと、JSON解析のオーバーヘッドが大きくなります)。索引またはその他のデータベース・テクノロジを使用して問合せを高速化することはできません。JSONは解析されなくなり、レポート問合せをサポートするように表を最適化できるため、名前付きローカル表内のキャッシュにより、より適切なレベルのキャッシュが作成されます。
親トピック: データ同期化の管理
18.4.10.2 RESTソース同期のインポートおよびエクスポートについて
アプリケーションのインポート後、RESTソースの同期は無効になります。インポート後に同期化を有効にする方法について学習します。
バージョン管理などの目的で、開発者はアプリケーションをワークスペースに複数回インポートすることがよくあります。これらのインポート時に同期が有効になっていた場合は、これにより複数の同期インスタンスが同時に実行されることになります。これは望ましい結果ではありません。したがって、Oracle APEXでは、アプリケーションのインポート後に同期が無効になります。
次の例に示すように、次のPL/SQLブロックを使用して、共有コンポーネント、RESTデータ・ソース、同期管理またはランタイムのみの環境で同期を直接アクティブ化できます。
例18-1 同期を有効にし、すぐに実行スケジュールを開始する
declare
l_app_id number := {new application ID};
begin
apex_session.create_session(
p_app_id => l_app_id,
p_page_id => {one of the application pages},
p_username => '{workspace user}');
apex_rest_source_sync.enable(
p_application_id => l_app_id,
p_module_static_id => '{REST Source static ID}');
end;
例18-2 同期を有効にし、次の実行タイムスタンプを明示的に設定する
declare
l_app_id number := {new application ID};
begin
apex_session.create_session(
p_app_id => l_app_id,
p_page_id => {one of the application pages},
p_username => '{workspace user}');
apex_rest_source_sync.reschedule(
p_application_id => l_app_id,
p_module_static_id => '{REST Source static ID}');
p_next_run_at => trunc( sysdate + 1 ), -- next midnight
end;
親トピック: データ同期化の管理
18.4.10.3 REST同期化の構成
ローカル表をRESTサービスからのデータと自動的に同期するように、REST同期化を構成します。
新しいREST同期化を作成するには、まず新しいRESTデータ・ソースを作成してから、「同期化の管理」をクリックして詳細を構成します。
データ同期化を構成するには:
親トピック: データ同期化の管理
18.4.10.4 アプリケーションで定義されているREST同期化の表示
現在のアプリケーションで定義されているREST同期化を表示します。
現在のアプリケーション用に定義されているREST同期化を表示するには:
関連項目:
REST同期化の構成親トピック: データ同期化の管理
18.4.10.5 同期化設定のクリア
同期化設定をクリアすると、同期化処理が停止され、同期化に関連するRESTデータ・ソース属性がすべてリセットされます。
APEXコンポーネントは、ローカル同期化表を使用している場合、RESTサービスを直接使用するようにリセットされます。
同期化設定をクリアするには:
- そのアプリケーションを選択し、「共有コンポーネント」に移動します。
- ワークスペースのホームページで、「アプリケーション・ビルダー」をクリックします。
- アプリケーションを選択します。
- アプリケーションのホームページで、「共有コンポーネント」をクリックします
- 「共有コンポーネント」ページで、「タスク」リストから「REST同期化」を選択します。
- 「REST同期化」を選択します。
- 「設定のクリア」をクリックします。
親トピック: データ同期化の管理
18.4.10.6 同期化の使用状況の表示
ローカル同期化表をデータ・ソースとして現在使用しているアプリケーション・コンポーネントのレポートを表示します。
同期化の使用状況レポートを表示します。
親トピック: データ同期化の管理
18.4.10.7 REST同期ログの管理
REST同期ログについて学習します。
- REST同期ログについて
REST同期ログには、以前に実行された同期化の詳細が記録されます。 - 同期ログのパージ
REST同期ログをパージします。
関連項目:
Oracle APEX管理ガイドのREST同期ログ・エントリの削除
親トピック: データ同期化の管理
18.4.10.7.1 REST同期ログについて
REST同期ログには、以前に実行された同期化の詳細が記録されます。
同期化が正常に実行されると、「同期化」ページの「ログ」にREST同期ログが表示されます。
REST同期ログには、ステータス(成功または失敗)、処理された行数、発行されたHTTPリクエストの数など、以前に実行された同期化の詳細が含まれます。同期ログからWebサービス・ログにドリルダウンして、この同期化に対して行われた個々のHTTPリクエストを確認できます。
親トピック: REST同期ログの管理