※ 本記事は、Alexey Filanovskiyによる”Accelerate Your Analytics: Introducing External Table Cache in Oracle Autonomous AI Database“を翻訳したものです。

2025年11月14日


データベースの外(クラウド・オブジェクト・ストレージ、データ・レイク、分散ファイル・システムなど)に保存されたデータを扱うことは、柔軟性をもたらします。たとえば、データが存在する場所に即時にアクセスでき、チーム間でデータセットを共有でき、データベースにコピーすることなく複数のソースやクラウドへ接続できます。とはいえ、外部データの問合せは、一般にデータベース内部に保存されたデータよりも待ち時間が長く、性能が劣ります。これに対処するため、多くの組織は外部データをデータベースへコピーまたはレプリケートしています。これにより問合せが高速化される一方で、データパイプラインの構築、継続的な同期の管理、データ整合性の課題への対応が必要となり、最終的にはコスト、複雑さ、リスクが増大します。

External Table Cache のご紹介: よりシンプルでスマートな方法

この課題を解決する、よりシンプルでコスト効率の高い方法があります。Autonomous AI Databaseの external table cache機能により、追加のパイプライン、手動リフレッシュ、アプリケーションの変更なしで、外部データ処理の力とデータベース内のパフォーマンスを両立できます。 

External Table Cache とは何か、なぜ重要か

external table cacheは、Autonomous Database内にあるストレージ領域で、外部表(例: CSV、Parquet、ORC、AVRO、Iceberg)から頻繁にアクセスされるデータを保持します。これにより、最も重要な外部データを透過的かつ安全にアナリティクス環境の近くに持ち込めます。キャッシュ管理は、簡単に設定できるポリシーで制御可能です。Oracle Autonomous AI Databaseがキャッシュのライフサイクルを管理し、キャッシュされたデータの鮮度を自動的に維持し、キャッシュの内容を可視化します。

技術チームが external table cacheを好む理由は次のとおりです: 

  • アナリティクスの性能向上: 頻繁に使う外部データをデータベース内にキャッシュすることで、問合せが桁違いに高速化され、BIダッシュボード、定期的な分析、定例レポートに最適です。
  • 問合せの透過的な高速化: 問合せ、ダッシュボード、アプリは書き換え不要でそのまま動作します。Autonomous AI Databaseが裏側ですべてを処理します。
  • きめ細かく柔軟なキャッシュ制御: すべてのファイル、一定割合、または最新データだけをキャッシュ可能。プロシージャを使って、何をキャッシュするか、キャッシュサイズ、ストレージ上限を細かく制御できます。
  • 自動更新によるデータ鮮度の維持: キャッシュは外部データの最新変更と同期されます。新規または更新ファイルは容易に再取り込みでき、削除済みやアクセス不能なファイル由来のデータは自動的に無効化されるため、問合せは常に最新で正確な情報を反映します。
  • 手動でのキャッシュ管理は不要: データベースがキャッシュの投入、更新、クリーンアップを自動化し、カスタム・スクリプトや手動での追跡・介入を不要にします。
  • 効率的なキャッシュ管理: 時間や利用状況に基づいて、キャッシュ済みファイルの再取り込み、退役、削除が容易。ビューでキャッシュの状態を監視できます。ファイルの削除や資格情報の取り消し時には、キャッシュデータは無効化されアクセス不能となり、組織のセキュリティおよびコンプライアンス要件に準拠します。

ビジネス・チームがexternal table cacheを好む理由: 

  • より速い洞察で、より良い意思決定: レイテンシやクラウドからの繰り返し取得を排除することで、回答を迅速に得られ、タイムリーな意思決定とビジネスの俊敏性向上を実現します。
  • クラウドおよびデータ転送コストの削減: キャッシュにより、オブジェクト・ストレージから大容量ファイルを繰り返しダウンロードする回数が減り、エグレス料金を削減できます。特にマルチクラウドや高ボリューム環境で有効です。
  • シンプルさ、リスク低減、ガバナンス: アプリケーションやETLパイプラインを変更する必要がなく、導入リスクや継続的な保守が最小化されます。キャッシュはスキーマローカルであるため、既存のガバナンスモデルやユーザー制御がそのまま維持されます。
  • 将来にわたって有効なアナリティクス基盤: ワークロードやデータ量が増えても、ポリシー駆動かつ自動的なキャッシュ(近日提供予定)により、追加のエンジニアリング作業なしでコストと性能を最適化します。

仕組み – クイック例

アナリティクスチームがObject Storage内のParquetファイルを定期的に問合せしているとします。以下の5つの簡単なステップで問合せ性能を加速できます。

1. 外部表を作成

まず、Parquetファイルを指す外部表を作成します: 

BEGIN
  DBMS_CLOUD.CREATE_EXTERNAL_TABLE( 
    table_name      => 'MY_PARQUET_XT', 
    credential_name => 'MY_CLOUD_CRED', 
    file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/mybucket/b/myfolder/o/*.parquet', 
    format => '{"type":" parquet", "schema": "first"}'); 
  ); 
END;

2. キャッシュを作成

このステップでは、外部表用の空のキャッシュを作成するだけです。まだデータは読み込まれません。キャッシュを初期化する処理です。

BEGIN 
  DBMS_EXT_TABLE_CACHE.CREATE_CACHE( 
    owner          => 'MY_SCHEMA', 
    table_name     => 'MY_PARQUET_XT', 
    partition_type => 'PATH' 
  ); 
END;

3.キャッシュにデータを投入

ここでキャッシュにデータを投入します。組織のニーズに応じて、一部のファイル、最新のファイル、またはすべてのファイルからデータを読み込めます。

-- Add 50% of the files: 
BEGIN 
  DBMS_EXT_TABLE_CACHE.ADD_TABLE( 
    owner         => 'MY_SCHEMA', 
    table_name    => 'MY_PARQUET_XT', 
    percent_files => 50 
  ); 
END;

注: キャッシュされていないデータや最新データも引き続きアクセス可能です。たとえば、表の一部(ファイルの50%など)だけをキャッシュしている場合でも、問合せはすべてのデータを返します。キャッシュ内のデータはより高速にアクセスされ、その他のデータは必要に応じてObject Storageから読み込まれます。

-- Or add only the latest files (last 7 days): 
BEGIN 
  DBMS_EXT_TABLE_CACHE.ADD_LATEST_FILES( 
    owner      => 'MY_SCHEMA', 
    table_name => 'MY_PARQUET_XT', 
    since      => INTERVAL '7' DAY 
  ); 
END;

4. キャッシュを最新の状態に保つ

キャッシュされた古いファイル(たとえば、30日より古いファイル)をすばやく削除します: 

BEGIN 
  DBMS_EXT_TABLE_CACHE.RETIRE_FILES( 
    owner      => 'MY_SCHEMA', 
    table_name => 'MY_PARQUET_XT', 
    before     => INTERVAL '30' DAY 
  ); 
END;

キャッシュを完全に削除します: 

BEGIN 
  DBMS_EXT_TABLE_CACHE.DROP_CACHE( 
    owner      => 'MY_SCHEMA', 
    table_name => 'MY_PARQUET_XT' 
  ); 
END;

5. キャッシュの状態を監視 

SELECT external_table_name, 
       cached, 
       cache_cur_size, 
       last_refresh_time 
FROM   user_external_tab_caches;

以上です。キャッシュを活用するためにアプリの変更や追加のパイプラインは不要で、ダッシュボードとアナリティクスを高速かつ最新の状態に保てます。

次のステップは? 

現在、external table cacheはポリシーベースで、何をいつキャッシュするかを完全に制御できます。まもなく、自動キャッシュが利用状況分析を活用してさらに性能を最適化し、Autonomous AI Databaseが最も頻繁に使用されるデータセットを自動的にキャッシュするようになります。

はじめよう

External table cacheは、ダッシュボードやレポートを通じて外部データに頻繁にアクセスするチームに大きな価値を提供します。external table cacheにより、追加の開発や保守作業なしで、一貫した高性能と最新の結果を得られます。重要なデータセットでexternal table cacheをぜひお試しのうえ、アナリティクスをより高速・シンプル・高コスト効率化できることを体感してください。

詳しくはドキュメントをご参照ください。