はじめに
Autonomous Databaseで、ネットワーク・ファイル・システム(NFS)内のファイルを含むディレクトリに対してデータ・パイプラインおよびSELECT AIベクトル索引作成が可能になりました。
これまで提供されているObject Storage内のファイルおよびベクトル索引で使用可能なすべてのファンクションがサポートされています。
試してみました。
事前準備
Autonomous DatabaseにNFSのアタッチ
Autonomous DatabaseにはOCI File StorageサービスやNFSサーバーをアタッチすることができます。
今回は、以下の記事を参考にしました。ありがとうございます。
- [OCI]Autonomous DatabaseにアタッチしたNFS共有上にあるファイルからデータをロードしたり外部表を作ったりしてみた
- [OCI]Computeインスタンス上に構築したNFSサーバによるNFS共有をAutonomous Databaseにアタッチしてみた
SELECT AI with RAG
SELECT AI with RAG の確認は、以下の記事の手順で行いました。
NFSにファイルの配置
Autonomou Database にアタッチしたNFS領域に rocket.txtファイルを配置します。
APEXワークスペースの作成とAPEXアプリケーションのインポート
元の記事の内容通りに実施します。
SELECT AIを利用するための準備
SELECT AI機能の利用に必要な権限の付与
パッケージの実行権限に加えて、NFSをアタッチしたディレクトリオブジェクトへのREAD/WRITE権限を付与します。
-- SELECT AI機能の利用に必要なパッケージの実行権限を付与
GRANT DWROLE, UNLIMITED TABLESPACE TO WKSP_APEXDEV;
GRANT EXECUTE ON DBMS_CLOUD_AI TO WKSP_APEXDEV;
GRANT EXECUTE ON DBMS_CLOUD TO WKSP_APEXDEV;
GRANT READ on directory MY_FSS_DIR to WKSP_APEXDEV;
GRANT WRITE on directory MY_FSS_DIR to WKSP_APEXDEV;
OCI生成AIサービスのクレデンシャル作成
元の記事の内容通りに実施します。
AIプロファイルの作成
2025年9月時点で使用可能なモデルを使用してAIプロファイルを作成
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE(
profile_name =>'RAG_PROFILE',
attributes =>'{"provider": "oci",
"credential_name": "OCI_GENAI_CRED",
"vector_index_name": "MY_INDEX",
"embedding_model": "cohere.embed-v4.0",
"model": "cohere.command-a-03-2025"
}');
end;
/
ベクトル索引作成
DBMS_CLOUD_AI.CREATE_VECTOR_INDEXプロシージャを使用して、ベクトル索引を作成します。
locationパラメータで、NFSをアタッチしたディレクトリオブジェクトとファイルを指定します。
BEGIN
DBMS_CLOUD_AI.CREATE_VECTOR_INDEX(
index_name => 'MY_INDEX',
attributes => '{"vector_db_provider": "oracle",
"location": "MY_FSS_DIR:*",
"object_storage_credential_name": "OCI_GENAI_CRED",
"profile_name": "RAG_PROFILE",
"vector_dimension": 1536,
"vector_distance_metric": "cosine",
"chunk_overlap":128,
"chunk_size":400,
"refresh_rate":1
}');
END;
/
locationパラメータにディレクトリを指定する場合、
1つのディレクトリとファイル名を指定できます。
ディレクトリを指定するフォーマットは、MY_DIR:filename.extです。
デフォルトでは、ディレクトリ名MY_DIRはデータベース・オブジェクトで、大文字と小文字は区別されません。ファイル名では大文字と小文字が区別されます。
ディレクトリ内のファイル名を指定するには、ワイルドカードが使用できます。
文字*は複数の文字のワイルドカードとして使用でき、文字?は単一の文字のワイルドカードとして使用できます。
RAGを使用した自然言語問合せの実行
「OraBoosterとは?」
「一番売り上げが多いロケットエンジンと、そのエンジンの重量を教えてください。」
さいごに
Autonomous DatabaseにNFSをアタッチして、SELECT AI with RAG を行うことができました。

