マテリアライズド・ビューを使用したクラウド・リンクのパフォーマンスの最適化

マテリアライズド・ビューは、リモート・データをコンシューマ・データベースにローカルにキャッシュし、それを増分的にリフレッシュすることで、クラウド・リンクのパフォーマンスを向上させます。これは、ネットワーク上のすべてを毎回再読取りするのではありません。

マテリアライズド・ビューは、パフォーマンス向上のためによく使用されます。特にデータベース・リンクを使用している表またはビューを使用しているローカル・データベースにデータを格納する場合に使用します。同様に、大規模計算または要約がある場合、特にデータ・セットが大きい場合に、ビューのかわりにマテリアライズド・ビューが使用されることがよくあります。マテリアライズド・ビューは指定した間隔でリフレッシュされます。これは、データが必ずしも最新ではないことを意味していますが、マテリアライズド・ビューに対する問合せは前述の例では非常に高速になります。ただし、このようなユースケースでは、これらのマテリアライズド・ビューに対する問合せが大幅に高速化されます。

マテリアライズド・ビューのリフレッシュ

データベースでは、実表の変更後にマテリアライズド・ビューをリフレッシュして、マテリアライズド・ビューのデータを管理します。マテリアライズド・ビューをリフレッシュするとそのすべての索引が自動的に更新されます。完全リフレッシュの場合は、リフレッシュ中にすべての索引を再作成できるように、一時ソート領域が必要です。

マテリアライズド・ビューのリフレッシュのタイプ:

クラウド・リンクを使用するマテリアライズド・ビューの増分リフレッシュ方法は次のとおりです。

  • ログベースのリフレッシュ

様々なリフレッシュ方法については、「マテリアライズド・ビューのリフレッシュ」の章を参照してください。

ノート

パーティション・チェンジ・トラッキング(PCT)リフレッシュおよび論理パーティション・チェンジ・トラッキング(LPCT)リフレッシュは、クラウド・リンクを使用するマテリアライズド・ビューではサポートされていません。

クラウド・リンクを介したマテリアライズド・ビューの増分リフレッシュ

増分リフレッシュは、一般にFASTリフレッシュと呼ばれ、通常は、完全リフレッシュよりも高速に実行されます。

増分リフレッシュにより、マテリアライズ・ビューを最初から再作成する必要がなくなります。このように、変更のみ処理するため、リフレッシュ時間が非常に速くなります。ログベースの高速リフレッシュ方式を使用するマテリアライズド・ビューの場合、実表に対する変更はマテリアライズド・ビュー・ログに保持されます。マテリアライズド・ビュー・ログとは、実表で定義されたマテリアライズド・ビューを増分的にリフレッシュできるように、実表への変更を記録したスキーマ・オブジェクトです。各マテリアライズド・ビュー・ログは、それぞれ1つの実表に関連付けられています。マテリアライズド・ビュー・ログは、実表と同じデータベースおよびスキーマに格納されます。Oracle Autonomous AI Databaseで、クラウド・リンクを介してアクセスするリモート表のマテリアライズド・ビューを定義およびリフレッシュできます。

Autonomous AI Database Serverlessは、FASTリフレッシュを使用してマテリアライズド・ビューの増分リフレッシュを実行します。この方法は、マテリアライズド・ビュー全体の完全リフレッシュを実行するのではなく、前回のリフレッシュ以降に行われた変更のみを適用します。

増分リフレッシュのサポート:
  • フル・データ・リロードなしでダッシュボードとレポートをすばやくリフレッシュできるため、ほぼリアルタイムの分析が可能になります。
  • データ鮮度の向上により、分析ワークロードのサービス・レベル合意(SLA)を改善。

クラウド・リンクによる増分リフレッシュをサポートする様々なタイプのマテリアライズド・ビューについては、「マテリアライズド・ビューのタイプ」を参照してください。

マテリアライズド・ビューの高速リフレッシュを使用したクラウド・リンクの登録

マテリアライズド・ビューの高速リフレッシュがサポートされていることを示すには、クラウド・リンクを登録する必要があります。DBMS_CLOUD_LINKパッケージのREGISTERプロシージャをMV_FAST_REFRESH引数とともに使用して、クラウド・リンクを登録します。

マテリアライズド・ビュー・ログ表がCLOUDLINKスキーマのSALES_VIEW_AGG表に作成されているとします。その後、REGISTERプロシージャでMV_FAST_REFRESH引数にTRUE値を渡すことで、高速リフレッシュ機能を有効にしたクラウド・リンクとして登録できます。
BEGIN
   DBMS_CLOUD_LINK.REGISTER(
    schema_name     => 'CLOUDLINK',
    schema_object   => 'SALES_VIEW_AGG',
    namespace       => 'REGIONAL_SALES', 
    name            => 'SALES_AGG',
    description     => 'Aggregated regional sales information.',
    scope           => 'MY$TENANCY',
    auth_required   =>  FALSE,
    data_set_owner  =>  'tomholl@example.com',
    mv_fast_refresh =>  TRUE );
END;
/
ノート

プロバイダとして、コンシューマ・データベースのマテリアライズド・ビューに対応する、プロバイダ・データベースの実表にマテリアライズド・ビュー・ログ表を作成する必要があります。

詳細は、REGISTERプロシージャを参照してください。

マテリアライズド・ビューの高速リフレッシュによるクラウド・リンクの更新

クラウド・リンクを更新して、マテリアライズド・ビューの高速リフレッシュがクラウド・リンクでサポートされていることを示すことができます。

高速リフレッシュ機能なしでクラウド・リンクが登録されているとします。
BEGIN
   DBMS_CLOUD_LINK.REGISTER(
    schema_name    => 'CLOUDLINK',
    schema_object  => 'SALES_ALL',
    namespace      => 'TRUSTED_COMPARTMENT', 
    name           => 'SALES',
    description    => 'Trusted Compartment, only accessible within my compartment. Early sales data.',
    scope          => 'MY$COMPARTMENT',
    auth_required  =>  FALSE,
    data_set_owner =>  'tomholl@example.com' );
END;
/

マテリアライズド・ビュー・ログ表は、後でCLOUDLINKスキーマのSALES_ALL表に作成されるとします。UPDATE_REGISTRATIONプロシージャでMV_FAST_REFRESH引数にTRUE値を渡すことで、高速リフレッシュ機能を有効にするようにクラウド・リンクを更新できます。

BEGIN
   DBMS_CLOUD_LINK.UPDATE_REGISTRATION(
    namespace       => 'TRUSTED_COMPARTMENT', 
    name            => 'SALES',
    mv_fast_refresh => TRUE );
END;
/

UPDATE_REGISTRATIONプロシージャは、クラウド・リンクを介してマテリアライズド・ビュー・ログ表にアクセスできるようにすることで、クラウド・リンクを介したマテリアライズド・ビューの高速リフレッシュを有効にします。アクセスできるようにするには、MV_FAST_REFRESH引数にTRUEの値を渡す必要があります。

詳細は、UPDATE_REGISTRATIONプロシージャを参照してください。

プロバイダは必要なマテリアライズド・ビュー・ログを作成しています。リンクのメタデータをリフレッシュして、新しいログ表が反映されるようにする必要があります。

例: マテリアライズド・ビューの増分リフレッシュのユースケース

自律型AIデータベース・インスタンス全体でダッシュボードを操作するデータ・アナリストは、クラウド・リンクを介してアクセスするリモートAutonomous AI Database表でマテリアライズド・ビューを定義し、増分的にリフレッシュできるようになりました。これにより、フル・データ・リロードなしでダッシュボードを迅速に更新できるため、ユーザー・エクスペリエンスが向上し、コストが削減されます。

前提条件

クラウド・リンクを介したマテリアライズド・ビューの増分リフレッシュを実装する前に、次の前提条件が満たされていることを確認してください。

  • クラウド・リンクは適切に構成およびテストされます。
  • コンシューマ・データベースとプロバイダ・データベース間のネットワーク接続は安定しています。
  • マテリアライズド・ビューを作成およびリフレッシュするユーザーに、適切な権限が付与されます。
  • プロバイダ・データベースでは、実表に対してマテリアライズド・ビュー・ロギングが構成されています。

データ・アナリストは、クラウド・リンクを使用してプロバイダ自律型AIデータベースのデータを問い合せるダッシュボードをコンシューマ自律型AIデータベースに構築します。自律型AIデータベース全体の全表スキャン(時間がかかり、コストがかかる)ではなく、高速リフレッシュを使用してコンシューマ自律型AIデータベースにマテリアライズド・ビューを作成し、プロバイダ自律型AIデータベース表から変更されたデータのみを増分更新します。

  1. プロバイダは、実表にマテリアライズド・ビュー・ログを作成します。
  2. プロバイダAutonomous AIデータベースでは、データベース管理者が次のいずれかのDBMS_CLOUD_LINKプロシージャを実行します:
    • REGISTER: MV_FAST_REFRESH=TRUEを使用して新しいクラウド・リンク登録を作成し、最初から高速リフレッシュ機能を有効にします。
    • UPDATE_REGISTRATION: 既存のクラウド・リンク登録を変更して、高速リフレッシュ機能を追加します。

    プロバイダは、ログが存在することを認識し、それらを読み取ることができます。

  3. データ・アナリストは、コンシューマ自律型AIデータベース(ダッシュボード・データベース)で作業し、REFRESH FASTを指定してCREATE MATERIALIZED VIEW文を実行して、ダッシュボード・データ・キャッシュを構築します。