DBMS_EXT_TABLE_CACHEパッケージ

DBMS_EXT_TABLE_CACHEパッケージには、外部表およびマウントされたカタログを介してAutonomous AI Databaseに公開される表からの頻繁にアクセスされるデータのキャッシュを構成および管理するためのルーチンが用意されています。

DBMS_EXT_TABLE_CACHEサブプログラムの要約

この表は、DBMS_EXT_TABLE_CACHEパッケージに含まれるサブプログラムの概要を示しています。

サブプログラム 摘要
ADD_BY_LIKEプロシージャ 指定されたフィルタに一致する1つ以上のファイルをレイク・キャッシュに追加します。
ADD_FILEプロシージャ レイクキャッシュにファイルを追加します。
ADD_LATEST_FILESプロシージャ SINCE引数で指定された時間間隔と現在のタイムスタンプに基づいて、1つ以上のファイルを移入します。
ADD_TABLEプロシージャ 指定されたソース表からレイク・キャッシュにファイルを追加します。ソース表は、外部表またはマウントされたカタログを介して公開される表のいずれかです。
CLEARプロシージャ レイク・キャッシュをクリアします。
CREATE_CACHEプロシージャ レイク・キャッシュを作成します。
DISABLEプロシージャ レイク・キャッシュを無効にします。
DROP_BY_LIKEプロシージャ 指定されたフィルタに基づいて、レイク・キャッシュからファイルをドロップします。
DROP_CACHEプロシージャ レイク・キャッシュを削除します。
DROP_FILEプロシージャ 指定されたソース・ファイルをレイク・キャッシュから削除します。
ENABLEプロシージャ 以前に無効にしたレイク・キャッシュを有効にします。
GET_USER_PROPERTYファンクション レイク・キャッシュのキャッシュ・プリファレンスを取得します。
RETIRE_FILESプロシージャ 指定された間隔より古い1つ以上のファイルをキャッシュから削除します。
SET_USER_PROPERTYプロシージャ レイク・キャッシュのキャッシュ・プリファレンスを指定します。
VALIDATEプロシージャ レイク・キャッシュを検証します。

ADD_BY_LIKEプロシージャ

DBMS_EXT_TABLE_CACHE.ADD_BY_LIKEプロシージャは、指定された1つ以上のソース・ファイルをレイク・キャッシュにロードします。

構文

DBMS_EXT_TABLE_CACHE.ADD_BY_LIKE (
      owner        IN VARCHAR2,
      table_name   IN VARCHAR2,
      path_filters IN CLOB,
      esc_char     IN VARCHAR2 DEFAULT NULL,
      force        IN BOOLEAN  DEFAULT FALSE);

パラメータ

パラメータ 摘要
owner スキーマ名を指定します。
table_name ソース表名を指定します。ソース表は、外部表またはマウントされたカタログを介して公開される表のいずれかです。
path_filters PATH_FILTERSは、ファイルURL内の指定されたパターンの検索に使用されるパス・フィルタのJSON_ARRAYです。
esc_char

パスフィルタで使用するエスケープ文字を指定します。エスケープ文字がパターンの'%'または'_'の前に存在する場合、特殊文字は文字どおり解釈され、特殊なパターン一致文字として解釈されません。

このパラメータはオプションであり、このパラメータのデフォルト値はNULLになります。

force

ファイルが変更されていなくても、指定した既存のファイルがキャッシュで上書きされます。

このパラメータはオプションで、forceパラメータのデフォルト値はFALSEです。

BEGIN
  DBMS_EXT_TABLE_CACHE.ADD_BY_LIKE (
    owner        => 'SALES',
    table_name   =>'STORE_SALES',
    path_filters => '["https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata1.parquet",
                      "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata2.parquet"]'
);
END;
/

このプロシージャは、マウントされたカタログを介して公開される表もサポートします。

使用上のノート

  • デフォルトでは、DBMS_EXT_TABLE_CACHE.ADD_BY_LIKEプロシージャは次の場合にファイルのロードをスキップします。

    • ファイルは以前にキャッシュされ、キャッシュに引き続き使用できました。

    • ファイルは最後にキャッシュされてから変更されていません。

    ただし、ファイルが変更されていない場合でも、forceパラメータを使用してキャッシュ内のファイルを上書きできます。

ADD_FILEプロシージャ

DBMS_EXT_TABLE_CACHE.ADD_FILEプロシージャは、指定されたファイルをレイク・キャッシュにロードします。

構文

DBMS_EXT_TABLE_CACHE.ADD_FILE (
      owner        IN VARCHAR2,
      table_name   IN VARCHAR2,
      file_url     IN VARCHAR2,
      force        IN BOOLEAN DEFAULT FALSE);

パラメータ

パラメータ 摘要
owner スキーマ名を指定します。
table_name ソース表名を指定します。ソース表は、外部表またはマウントされたカタログを介して公開される表のいずれかです。
file_url ファイルURLを指定します。
force

ファイルが変更されていなくても、指定した既存のファイルがキャッシュで上書きされます。

このパラメータはオプションで、forceパラメータのデフォルト値はFALSEです。

BEGIN
  DBMS_EXT_TABLE_CACHE.ADD_FILE (
    owner        => 'SALES',
    table_name   => 'STORE_SALES',
    file_url     => 'https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata.parquet'
);
END;
/

このプロシージャは、マウントされたカタログを介して公開される表もサポートします。

使用上のノート

  • 指定したファイルがキャッシュに存在し、ファイルが最後にキャッシュされてから変更されていない場合、DBMS_EXT_TABLE_CACHE.ADD_FILEプロシージャは、キャッシュへのファイルのロードをスキップします。

  • forceパラメータを使用すると、ファイルが変更されていない場合でも、キャッシュ内のファイルを上書きできます。

ADD_LATEST_FILESプロシージャ

DBMS_EXT_TABLE_CACHE.ADD_LATEST_FILESは、1つ以上のファイルをレイク・キャッシュに移入します。ファイルは、SINCE引数と現在のタイムスタンプによって決定される時間間隔に基づいて移入されます。

構文

DBMS_EXT_TABLE_CACHE.ADD_LATEST_FILES (
      owner        IN  VARCHAR2,
      table_name   IN  VARCHAR2,
      since        IN  INTERVAL DAY TO SECOND,
      max_files    IN  NUMBER,
      force        IN  BOOLEAN DEFAULT FALSE);

パラメータ

パラメータ 摘要
owner スキーマ名を指定します。
table_name ソース表名を指定します。ソース表は、外部表またはマウントされたカタログを介して公開される表のいずれかです。
since sinceパラメータは、INTERVAL DAY TO SECOND値を受け入れ、since値と現在のタイムスタンプの間の時間間隔を計算するために使用されます。結果の時間間隔は、最後に変更された時間に基づいてファイルを移入するために使用されます。
max_files

レイク・キャッシュに移入できるファイルの数を制限するには、max_files値を指定します。

このパラメータはオプションで、指定しない場合のデフォルトは無制限です。

force

ファイルが変更されていなくても、指定した既存のファイルがキャッシュで上書きされます。

このパラメータはオプションであり、このパラメータのデフォルト値はFALSEになります。

BEGIN
  DBMS_EXT_TABLE_CACHE.ADD_LATEST_FILES (
    owner        => 'SALES',
    table_name   => 'STORE_SALES',
    since        => INTERVAL '7' DAY,
    max_files    => 5,
    force        => TRUE);
END;
/

このプロシージャは、マウントされたカタログを介して公開される表もサポートします。

使用上のノート

  • デフォルトでは、DBMS_EXT_TABLE_CACHE.ADD_LATEST_FILESプロシージャは次の場合にファイルへの移入をスキップします。

    • 指定されたファイルは以前にキャッシュされ、キャッシュ内で使用可能でした。

    • 指定されたファイルは、最後にキャッシュされてから変更されていません。

    ただし、ファイルが変更されていない場合でも、forceパラメータを使用してキャッシュ内のファイルを上書きできます。

ADD_TABLEプロシージャ

DBMS_EXT_TABLE_CACHE.ADD_TABLEプロシージャは、表全体またはソース表の特定の割合をキャッシュにロードします。ソース表は、外部表またはマウントされたカタログを介して公開される表のいずれかです。

構文

DBMS_EXT_TABLE_CACHE.ADD_TABLE (
      owner         IN VARCHAR2,
      table_name    IN VARCHAR2,
      percent_files IN NUMBER DEFAULT NULL,
      force         IN BOOLEAN DEFAULT FALSE);

パラメータ

パラメータ 摘要
owner スキーマ名を指定します。
table_name ソース表名を指定します。ソース表は、外部表またはマウントされたカタログを介して公開される表のいずれかです。
percent_files

キャッシュする表データの割合を指定します。たとえば、1から100です。

デフォルトでは、すべてのファイルがロードされます。

force

ファイルが変更されていなくても、指定したファイルがキャッシュで上書きされます。

このパラメータはオプションで、forceのデフォルト値はFALSEです。

BEGIN
  DBMS_EXT_TABLE_CACHE.ADD_TABLE (
    owner         => 'SALES',
    table_name    => 'STORE_SALES',
    percent_files => 50);
END;
/

このプロシージャは、マウントされたカタログを介して公開される表もサポートします。

使用上のノート

  • DBMS_EXT_TABLE_CACHE.ADD_TABLEは、表全体または指定された割合のファイル・コンテンツをキャッシュにキャッシュしようとします。

  • percent_filesパラメータとforceパラメータは相互に排他的です。

  • デフォルトでは、DBMS_EXT_TABLE_CACHE.ADD_TABLEプロシージャは次の場合にファイルのロードをスキップします。

    • 指定されたファイルは以前にキャッシュされ、キャッシュ内で使用可能でした。

    • 指定されたファイルは、最後にキャッシュされてから変更されていません。

    ただし、ファイルが変更されていない場合でも、forceパラメータを使用してキャッシュ内のファイルを上書きできます。

CLEARプロシージャ

DBMS_EXT_TABLE_CACHE.CLEARプロシージャは、キャッシュを保持しながら、レイク・キャッシュからすべてのファイルを削除します。

構文

DBMS_EXT_TABLE_CACHE.CLEAR (
      owner         IN VARCHAR2,
      table_name    IN VARCHAR2);

パラメータ

パラメータ 摘要
owner スキーマ名を指定します。
table_name ソース表名を指定します。ソース表は、外部表またはマウントされたカタログを介して公開される表のいずれかです。

BEGIN
  DBMS_EXT_TABLE_CACHE.CLEAR (
    owner         => 'SALES',
    table_name    => 'STORE_SALES');
END;
/

このプロシージャは、マウントされたカタログを介して公開される表もサポートします。

CREATE_CACHEプロシージャ

DBMS_EXT_TABLE_CACHE.CREATE_CACHEプロシージャは、Autonomous AI Databaseインスタンスにレイク・キャッシュを作成します。

構文

DBMS_EXT_TABLE_CACHE.CREATE_CACHE (
      owner            IN    VARCHAR2,
      table_name       IN    VARCHAR2,
      partition_type   IN    VARCHAR2,
      col_subset     IN VARCHAR2 DEFAULT NULL
);

パラメータ

パラメータ 摘要
owner スキーマ名を指定します。
table_name ソース表名を指定します。ソース表は、外部表またはマウントされたカタログを介して公開される表のいずれかです。
partition_type

partition_typeパラメータの有効な値は次のとおりです。

  • FILE: FILE$PATHおよびFILE$NAME非表示列を使用してレイク・キャッシュをパーティション化します。

  • PATH: FILE$PATH非表示列を使用してレイク・キャッシュをパーティション化します。

file$path: オブジェクト名の先頭までのファイル・パス・テキストを指定します。

file$name: 最後の'/'に続くすべてのテキストを含め、オブジェクトの名前を指定します。

詳細は、外部表メタデータ列を参照してください。

col_subset col_subsetは、キャッシュする列を指定します。外部表の列名のJSON_ARRAYを指定します。これらの列のみがレイク・キャッシュにキャッシュされます。

col_subsetはオプションです。col_subsetを指定しない場合、レイク・キャッシュにはデフォルトですべての列が含まれます。

例: すべての列を含むレイク・キャッシュの作成

BEGIN
    DBMS_EXT_TABLE_CACHE.CREATE_CACHE (
      owner          => 'SALES',
      table_name     => 'STORE_SALES',
      partition_type => 'FILE');
END;
/

このプロシージャは、マウントされたカタログを介して公開される表もサポートします。

例: 列のサブセットを含むレイク・キャッシュの作成

BEGIN
    DBMS_EXT_TABLE_CACHE.CREATE_CACHE (
    owner          => 'SALES',
    table_name     => 'STORE_SALES',
    partition_type => 'FILE',
    col_subset     => '["PROD_ID","STORE_ID","SALES_AMT"]');
END;
/

このプロシージャは、マウントされたカタログを介して公開される表もサポートします。

使用上のノート

  • DBMS_EXT_TABLE_CACHE.CREATE_CACHEは、Autonomous AI Databaseインスタンスにレイク・キャッシュを作成します。キャッシュの作成は、データベース・スキーマでの表の作成に似ています。

DISABLEプロシージャ

DBMS_EXT_TABLE_CACHE.DISABLEプロシージャは、指定されたレイク・キャッシュを無効にします。キャッシュは無効としてフラグ付けされますが、キャッシュ内のデータは保持されます。

構文

DBMS_EXT_TABLE_CACHE.DISABLE (
      owner        IN VARCHAR2,
      table_name   IN VARCHAR2
);

パラメータ

パラメータ 摘要
owner スキーマ名を指定します。
table_name ソース表名を指定します。ソース表は、外部表またはマウントされたカタログを介して公開される表のいずれかです。

BEGIN
    DBMS_EXT_TABLE_CACHE.DISABLE (
      owner          => 'SALES',
      table_name     => 'STORE_SALES');
END;
/

このプロシージャは、マウントされたカタログを介して公開される表もサポートします。

使用上のノート

  • DBMS_EXT_TABLE_CACHE.DISABLEは、レイク・キャッシュからデータを削除しません。かわりに、キャッシュをDISABLEDとしてマークします。つまり、オプティマイザはクエリー・リライトにキャッシュを使用できません。

DROP_BY_LIKEプロシージャ

DBMS_EXT_TABLE_CACHE.DROP_BY_LIKEプロシージャは、レイク・キャッシュから1つ以上のファイルを削除します。ファイルは、指定されたフィルタに基づいて削除されます。

構文

DBMS_EXT_TABLE_CACHE.DROP_BY_LIKE (
      owner        IN VARCHAR2,
      table_name   IN VARCHAR2,
      path_filters IN CLOB,
      esc_char     IN VARCHAR2 DEFAULT NULL);

パラメータ

パラメータ 摘要
owner スキーマ名を指定します。
table_name ソース表名を指定します。ソース表は、外部表またはマウントされたカタログを介して公開される表のいずれかです。
path_filters PATH_FILTERSは、ファイルURL内の指定されたパターンの検索に使用されるパス・フィルタのJSON_ARRAYです。
esc_char

パスフィルタで使用するエスケープ文字を指定します。エスケープ文字がパターンの'%'または'_'の前に存在する場合、特殊文字は文字どおり解釈され、特殊なパターン一致文字として解釈されません。

このパラメータはオプションであり、このパラメータのデフォルト値はNULLになります。

BEGIN
  DBMS_EXT_TABLE_CACHE.DROP_BY_LIKE (
    owner        => 'SALES',
    table_name   => 'STORE_SALES',
    path_filters => '["https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata1.parquet",
                      "https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata2.parquet"]'
);
END;
/

このプロシージャは、マウントされたカタログを介して公開される表もサポートします。

DROP_CACHEプロシージャ

DBMS_EXT_TABLE_CACHE.DROP_CACHEプロシージャは、指定されたレイク・キャッシュを削除します。このプロシージャは、キャッシュを削除し、キャッシュに関連付けられた記憶域を解放します。

構文

DBMS_EXT_TABLE_CACHE.DROP_CACHE (
      owner            IN    VARCHAR2,
      table_name       IN    VARCHAR2
);

パラメータ

パラメータ 摘要
owner スキーマ名を指定します。
table_name ソース表名を指定します。ソース表は、外部表またはマウントされたカタログを介して公開される表のいずれかです。

BEGIN
    DBMS_EXT_TABLE_CACHE.DROP_CACHE (
      owner          => 'SALES',
      table_name     => 'STORE_SALES');
END;
/

このプロシージャは、マウントされたカタログを介して公開される表もサポートします。

使用上のノート

  • キャッシュを削除すると、そのメタデータがデータ・ディクショナリから削除され、そのキャッシュされたすべてのデータが削除されます。

DROP_FILEプロシージャ

DBMS_EXT_TABLE_CACHE.DROP_FILEプロシージャは、指定されたファイルをレイク・キャッシュから削除します。

構文

DBMS_EXT_TABLE_CACHE.DROP_FILE (
      owner        IN VARCHAR2,
      table_name   IN VARCHAR2,
      file_url     IN VARCHAR2);

パラメータ

パラメータ 摘要
owner スキーマ名を指定します。
table_name ソース表名を指定します。ソース表は、外部表またはマウントされたカタログを介して公開される表のいずれかです。
file_url ファイルURLを指定します。

BEGIN
  DBMS_EXT_TABLE_CACHE.DROP_FILE (
    owner        => 'SALES',
    table_name   => 'STORE_SALES',
    file_url     => 'https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/your_namespace/your_bucket/salesdata.parquet'
);
END;
/

このプロシージャは、マウントされたカタログを介して公開される表もサポートします。

ENABLEプロシージャ

DBMS_EXT_TABLE_CACHE.ENABLEプロシージャは、以前に無効にしたレイク・キャッシュを有効にします。キャッシュが作成されると、デフォルトで有効になります。

構文

DBMS_EXT_TABLE_CACHE.ENABLE (
    owner         IN    VARCHAR2,
    table_name    IN    VARCHAR2
);

パラメータ

パラメータ 摘要
owner スキーマ名を指定します。
table_name ソース表名を指定します。ソース表は、外部表またはマウントされたカタログを介して公開される表のいずれかです。

BEGIN
  DBMS_EXT_TABLE_CACHE.ENABLE (
    owner        => 'SALES',
    table_name   => 'STORE_SALES'
 );
END;
/

このプロシージャは、マウントされたカタログを介して公開される表もサポートします。

GET_USER_PROPERTYファンクション

このファンクションは、指定されたスキーマのキャッシュ・プリファレンスを戻し、Numberを戻します。

構文

DBMS_EXT_TABLE_CACHE.GET_USER_PROPERTY (
    property_name   IN   VARCHAR2,
    owner           IN   VARCHAR2 DEFAULT NULL);

RETURN NUMBER;

パラメータ

パラメータ 摘要
property_name

プロパティ名を指定します。

property_nameの有効な値は次のとおりです。

  • MAX_CACHE_PERCENT

  • MAX_CACHE_SIZE

owner スキーマ名を指定します。

戻り値

戻り値 摘要
数値内のMAX_CACHE_SIZEまたはMAX_CACHE_SIZE値。 戻される数値は、property_nameパラメータに応じてMAX_CACHE_SIZEまたはMAX_CACHE_SIZEの値になります。

SET SERVEROUTPUT ON
    DECLARE
    max_cache_sz NUMBER,
    BEGIN
    max_cache_sz := DBMS_EXT_TABLE_CACHE.GET_USER_PROPERTY (
        property_name       => 'MAX_CACHE_SIZE',
        owner               => 'SALES');
END;
/

RETIRE_FILESプロシージャ

DBMS_EXT_TABLE_CACHE.RETIRE_FILESは、指定した間隔より古いファイルをキャッシュから削除します。ファイルは、BEFOREパラメータ値を使用して計算された時間間隔に基づいて削除されます。

構文

DBMS_EXT_TABLE_CACHE.RETIRE_FILES (
    owner        IN VARCHAR2,
    table_name   IN VARCHAR2,
    before       IN INTERVAL DAY TO SECOND
);

パラメータ

パラメータ 摘要
owner スキーマ名を指定します。
table_name ソース表名を指定します。ソース表は、外部表またはマウントされたカタログを介して公開される表のいずれかです。
before beforeパラメータは、INTERVAL DAY TO SECOND値を受け入れ、before値と現在のタイムスタンプの間の時間間隔を計算するために使用されます。その後、キャッシュからファイルを削除するために、結果の時間間隔が使用されます。

BEGIN
 DBMS_EXT_TABLE_CACHE.RETIRE_FILES (
    owner        => 'SALES',
    table_name   => 'STORE_SALES',
    before       => INTERVAL '30' DAY);
END;
/

このプロシージャは、マウントされたカタログを介して公開される表もサポートします。

SET_USER_PROPERTYプロシージャ

DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTYプロシージャは、スキーマのキャッシュ・プリファレンスを設定します。

構文

DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTY (
    property_name    IN    VARCHAR2,
    property_value   IN    NUMBER,
    owner            IN    VARCHAR2 DEFAULT NULL);

パラメータ

パラメータ 摘要
property_name

プロパティ名を指定します。

property_nameの有効な値は次のとおりです。

  • MAX_CACHE_PERCENT

  • MAX_CACHE_SIZE

  • CONSUMER_GROUP

次に、CONSUMER_GROUPの有効な値を示します

  • HIGH: 同時実行性が最も低い最も高いCPU/IOリソースを提供します。

  • MEDIUM: 中間リソースを提供します。

  • LOW: 最小のCPU/IOリソースを提供しますが、最高の同時実行性を実現します。

  • TP,TPURGENT: トランザクション処理(OLTP)ワークロードに特化したコンシューマ・グループで、多くの場合、HIGHよりも優先度が高くなります。

property_value プロパティ値を指定します。
owner スキーマ名を指定します。

BEGIN
    DBMS_EXT_TABLE_CACHE.SET_USER_PROPERTY (
    property_name  => 'MAX_CACHE_PERCENT',
    property_value => 100,
    owner          => 'SALES');
END;
/

VALIDATEプロシージャ

DBMS_EXT_TABLE_CACHE.VALIDATEプロシージャは、レイク・キャッシュを検証します。参照されたソース表がデータベースに見つからない場合は、エラーが報告されます。

構文

DBMS_EXT_TABLE_CACHE.VALIDATE (
      owner            IN    VARCHAR2,
      table_name       IN    VARCHAR2,
      raise_errors     IN    BOOLEAN DEFAULT TRUE);

パラメータ

パラメータ 摘要
owner スキーマ名を指定します。
table_name ソース表名を指定します。ソース表は、外部表またはマウントされたカタログを介して公開される表のいずれかです。
raise_errors レイク・キャッシュが無効とマークされた場合にレポートします。

BEGIN
  DBMS_EXT_TABLE_CACHE.VALIDATE (
    owner         => 'SALES',
    table_name    => 'STORE_SALES',
    raise_errors  => TRUE);
END;
/

このプロシージャは、マウントされたカタログを介して公開される表もサポートします。