oracle-ai-ready-data Skill で Oracle Database のスキーマを AI Ready Data 評価してみてみた
今回は HR スキーマを例に、Oracle Database のスキーマが AI Ready Data としてどの程度整っているかを評価してみます。
👁 AI-ReadyData.png
Oracle Database では、Select AI、RAG、AI Vector Search、AI Agent など、AI 関連の機能が増えてきています。Oracle Autonomous AI DatabaseとOracle AI Databaseの両方において、Select AIは、チャット、自然言語からSQLへの変換(NL2SQL)生成、合成データ生成、AIエージェント、要約、翻訳など、26aiと19cの両方で一貫したコアエクスペリエンスを提供します。
👁 OracleAIDatabaseのAI機能.jpg
-
NL2SQL
Select AIの中核機能の一つが自然言語からSQLへの変換です。これにより、ユーザーは必要なデータ結果を自然言語で記述し、Select AI によって SQL を生成、実行、ナレーション、説明してくれる機能です。 -
Feedback
生成された SQL や結果に対してフィードバックを与え、NL2SQL の精度改善に利用する機能です。 -
Auto Object Selection
ユーザーのプロンプトに関連するオブジェクトを自動的に選択し、LLM に渡すメタデータの範囲を適切に絞り込むための機能です。 -
RAG
embedding の生成、Vector Store からの意味検索、取得した情報によるプロンプト拡張を組み合わせ、回答をデータで grounding するための機能です。 -
SDG
Synthetic Data Generation の略で、機密性の高い本番データを使わずに、スキーマに準拠した合成データを生成するための機能です。 -
AI Agents
Select AI を SQL 実行や RAG などのツール利用を含むアクション指向のワークフローへ拡張するための機能です。 -
Summarization
クエリ結果やテキストを自然言語で要約するための機能です。 -
Translation
自然言語による応答やコンテンツを多言語化するための機能です。 -
Chat
ユーザーのプロンプトを LLM に渡して、通常のチャット形式で応答するための機能です。
👁 image.png
これらの機能を見ると、Oracle Database 側では AI を活用するための仕組みがかなり増えてきていることが分かります。
一方で、AI 機能が用意されているだけでは、対象データをそのまま安全かつ高精度に使えるとは限りません。
AI の「幻覚(ハルシネーション)」や誤動作を防ぐ、または低減するためには、LLM や AI エージェントに渡すデータの意味、構造、関係性、鮮度、権限、機微情報の扱いが明確になっていることが重要です。
AI Ready Data とは、単なる「綺麗なデータ」の枠を超え、大規模言語モデル(LLM)や AI エージェント、機械学習モデルが人間の介入なしに、自律的に読み取り、推論し、アクションを起こせるように最適化されたデータ構造およびプロセスです。
Oracle Database のスキーマで考えると、テーブルやカラムの意味がコメントで説明されていること、主キーや外部キーで関係性が明確になっていること、統計情報や鮮度情報が確認できること、RAG や Vector Search に必要なテキスト列や VECTOR 列の設計があることなどが、AI Ready Data の重要な要素になります。
そのため、これらの AI 機能を使う前に、対象となるスキーマやテーブルが AI から見て扱いやすい状態になっているか、つまり AI Ready な状態か を確認しておきたい場面があります。
たとえば、以下のような観点です。
- テーブルやカラムにコメントが設定されているか
- 主キーや外部キーが定義されているか
- 統計情報が取得されているか
- RAG に使えるテキスト列や VECTOR 列があるか
- Select AI / RAG / Agent などの Oracle AI 機能が DB 側で見えているか
ということで、今回は Oracle Database 向けに作成した oracle-ai-ready-data Skill を使って、Autonomous AI Lakehouse 上の HR スキーマを AI Ready 評価してみてみます。
👁 image.png
今回は、oracle-ai-ready-data Skill を使って、HR スキーマに対して以下の 3 種類の評価を実行します。
| 評価 | 内容 |
|---|---|
| scan profile | スキーマ全体の AI Ready 度を広く確認 |
| rag profile | RAG / Vector Search / Agent RAG の観点で確認 |
| feature readiness | Select AI、RAG、AI Agent、SDG などの Oracle AI 機能が DB 側で見えているか確認 |
今回は第1回として、まずは HR スキーマに対する評価結果を確認します。
次回以降では、Select AI Profile を作成して NL2SQL を試したり、RAG / Vector Search も試してみたいと思います。
-
予定
- 第1回: Oracle Database の HR スキーマを AI Ready 評価してみた
- 第2回: BAD_AI_READY スキーマを作って AI Ready 評価で失敗させてみた
- 第3回: Select AI Profile を作って NL2SQL してみた
- 第4回: Oracle AI Vector Search / RAG 用の Vector Index を作ってみた
- 第5回: AI Agent の SQL Tool / RAG Tool を試してみた
■ 検証環境
今回の検証環境は以下です。
| 項目 | 内容 |
|---|---|
| Database | OCI Autonomous AI Lakehouse |
| Database version | Oracle AI Database 26ai Enterprise Edition 23.26.2.2.0 |
| 対象スキーマ | HR |
| 実行ツール | SQLcl |
| レポート生成 | Python 3 |
| 評価ツール | oracle-ai-ready-data Skill |
Autonomous AI Lakehouse、 HRスキーマの作成と SQLcl 設定は次が参考になります。
- Autonomous AI Lakehouse作成
- HRスキーマの作成
- SQLcl クライアント設定
■ oracle-ai-ready-data とは
oracle-ai-ready-data は、Oracle Database のスキーマや Oracle AI 機能の利用準備状況を確認するために作成した Skill です。
GitHub リポジトリはこちらです。
https://github.com/shirok-tech/oracle-ai-ready-data
この Skill では、SQLcl で Oracle Database のメタデータを収集し、Python スクリプトで Markdown レポートと改善 SQL を生成します。
主な構成は以下です。
| ファイル | 内容 |
|---|---|
scripts/oracle_ai_ready_collect.sql |
scan / rag 用のメタデータ収集 SQL |
scripts/score_oracle_ai_ready_scan.py |
scan / rag レポート生成スクリプト |
scripts/oracle_ai_feature_collect.sql |
Oracle AI Feature Readiness 収集 SQL |
scripts/score_oracle_ai_feature_readiness.py |
Feature Readiness レポート生成スクリプト |
profiles/scan.yaml |
scan profile の重み定義 |
profiles/rag.yaml |
rag profile の重み定義 |
profiles/feature-readiness.yaml |
Oracle AI 機能確認用 profile |
examples/bad_ai_ready_schema.sql |
失敗パターン確認用スキーマ作成 SQL |
■ oracle-ai-ready-data の評価観点
oracle-ai-ready-data では、大きく以下の観点で Oracle Database の AI Ready 度を確認します。
| 評価観点 | 内容 |
|---|---|
| Clean | 主キー、制約、統計情報など、AI 処理の前提となる構造的な信頼性 |
| Contextual | テーブルコメント、カラムコメント、リレーション定義など、データの意味説明 |
| Consumable | AI / RAG が利用しやすいテキスト列、VECTOR 列、安定 ID |
| Current | 更新日時列、統計情報の鮮度 |
| Correlated | 外部キー、source metadata、更新者情報など、関連付けや追跡性 |
| Compliant | 機微情報候補列、広い権限付与候補など、レビュー対象の明確化 |
特に今回は、テーブルコメントとカラムコメントを重要視しています。
oracle-ai-ready-data では、テーブルコメントまたはカラムコメントに欠落がある場合、数値スコアに関係なく Mandatory comment gate が fail になります。
⚫︎ SCAN Profile と RAG Profile の違い
scan と rag はどちらも AI Ready 評価ですが、目的が少し違います。
| Profile | 主な目的 |
|---|---|
| scan | スキーマ全体の AI Ready 度を広く確認する |
| rag | RAG / Vector Search / Agent RAG の観点で確認する |
scan は、スキーマ全体の健康診断のようなものです。
主キー、外部キー、コメント、制約、統計情報、鮮度列、権限などを広く確認します。
一方で rag は、RAG や Vector Search の情報源として使いやすいかを重視します。
たとえば、検索対象となるテキスト列があるか、VECTOR 列があるか、根拠行を一意に特定できるか、データの鮮度を説明できるか、などを確認します。
⚫︎ 評価項目一覧
今回の Skill では、以下のようなメトリクスを確認します。
| Metric | 内容 |
|---|---|
| Table comment coverage | コメントが設定されている評価対象テーブルの割合 |
| Column comment coverage | コメントが設定されている評価対象カラムの割合 |
| PK coverage | 有効な主キーがあるテーブルの割合 |
| FK coverage | 外部キー関係に参加しているテーブルの割合 |
| Relationship coverage | 主キーまたは外部キーを持つテーブルの割合 |
| Constraint coverage | 主キー、一意、外部キー、CHECK 制約などがあるテーブルの割合 |
| Table stats coverage |
LAST_ANALYZED が入っているテーブルの割合 |
| Column stats coverage |
LAST_ANALYZED が入っているカラムの割合 |
| Recent stats coverage | 最近統計情報が取得されたテーブルの割合 |
| Freshness coverage |
UPDATED_AT や LAST_UPDATE_DATE などの鮮度列があるテーブルの割合 |
| Source metadata coverage |
SOURCE_SYSTEM、BATCH_ID、CREATED_BY などの出所情報があるテーブルの割合 |
| Text-bearing table coverage | RAG 候補となるテキスト列を持つテーブルの割合 |
| Vector table coverage | VECTOR 型または embedding 候補を持つテーブルの割合 |
| Sensitive candidate documentation | 機微情報候補列のうちコメントがある列の割合 |
| Broad data grant absence | PUBLIC など広い相手へのデータアクセス権限が検出されなかった割合 |
これらの項目を組み合わせて、Clean、Contextual、Consumable、Current、Correlated、Compliant のスコアを算出します。
⚫︎ Oracle AI Feature Readiness とは
Oracle AI Feature Readiness は、スキーマの品質ではなく、Oracle Database 側で AI 機能が利用できる状態かを確認する評価です。
具体的には、以下のようなものを確認します。
| 機能 | 確認内容 |
|---|---|
| Select AI / NL2SQL |
DBMS_CLOUD_AI、CREATE_PROFILE、GENERATE などが見えるか |
| Select AI RAG |
CREATE_VECTOR_INDEX、AI Profile、Vector Index が使えそうか |
| Oracle AI Vector Search |
DBMS_VECTOR、DBMS_VECTOR_CHAIN、VECTOR 列、vector index が使えそうか |
| AI Agent |
DBMS_CLOUD_AI_AGENT が見えるか |
| Synthetic Data Generation |
GENERATE_SYNTHETIC_DATA が見えるか |
| NL2SQL Feedback |
FEEDBACK が見えるか |
| Auto Object Selection | 自動 object selection に必要な機能が見えるか |
今回は Autonomous AI Lakehouse で実行したため、DBMS_CLOUD_AI、DBMS_CLOUD_AI_AGENT、DBMS_VECTOR が確認できました。
ただし、AI Profile や Vector Index はまだ作成していないため、各機能は 対応あり・設定必要 という判定になりました。
■ HR スキーマに oracle-ai-ready-data を実行してみる
ここから実際に HR スキーマへ oracle-ai-ready-data を実行してみます。
⚫︎ oracle-ai-ready-data ダウンロード
GitHub からダウンロードし、Oracle SQLcl を実行するクライアントへ配置します。
git clone コマンド使う場合は次になります。
git clone https://github.com/shirok-tech/oracle-ai-ready-data.git
cd oracle-ai-ready-data
ディレクトリ構成は以下のようになっています。
oracle-ai-ready-data/
├── README.md
├── SKILL.md
├── scripts/
│ ├── oracle_ai_ready_collect.sql
│ ├── oracle_ai_feature_collect.sql
│ ├── score_oracle_ai_ready_scan.py
│ └── score_oracle_ai_feature_readiness.py
├── profiles/
│ ├── scan.yaml
│ ├── rag.yaml
│ └── feature-readiness.yaml
├── references/
└── examples/
⚫︎ SQLcl でメタデータ収集
oracle-ai-ready-data では、まず SQLcl でメタデータを収集します。
1) oracle-ai-ready-data 実行
基本的な実行形式は以下です。
sql -s <user>/<password>@<connect_identifier> @scripts/oracle_ai_ready_collect.sql <schema_owner> <table_like_pattern> <profile>
今回の対象は HR スキーマなので、以下のように実行します。
sql -s admin/<password>@adb_high @scripts/oracle_ai_ready_collect.sql HR % scan
2) メタデータ .outファイル 取得
実行すると、以下のような .out ファイルが生成されます。
oracle_ai_ready_scan_HR_scan.out
rag profile の場合は以下です。
sql -s admin/<password>@adb_high @scripts/oracle_ai_ready_collect.sql HR % rag
こちらは以下のファイルが生成されます。
oracle_ai_ready_scan_HR_rag.out
⚫︎ scan profile 実行
scan profile の .out ファイルから Markdown レポートと改善 SQL を生成します。
python3 scripts/score_oracle_ai_ready_scan.py \
oracle_ai_ready_scan_HR_scan.out \
--profile scan \
--language ja \
--output hr_scan_report.md \
--sql-output hr_scan_improvement.sql
生成されるファイルは以下です。
| ファイル | 内容 |
|---|---|
hr_scan_report.md |
scan profile の評価レポート |
hr_scan_improvement.sql |
改善 SQL |
⚫︎ rag profile 実行
次に rag profile のレポートを生成します。
python3 scripts/score_oracle_ai_ready_scan.py \
oracle_ai_ready_scan_HR_rag.out \
--profile rag \
--language ja \
--output hr_rag_report.md \
--sql-output hr_rag_improvement.sql
生成されるファイルは以下です。
| ファイル | 内容 |
|---|---|
hr_rag_report.md |
rag profile の評価レポート |
hr_rag_improvement.sql |
改善 SQL |
⚫︎ feature readiness 実行
次に、Oracle AI Feature Readiness を確認します。
1) oracle_ai_feature_collect.sql 実行
sql -s admin/<password>@adb_high @scripts/oracle_ai_feature_collect.sql HR %
2) .out ファイル取得
実行すると、以下の .out ファイルが生成されます。
oracle_ai_feature_readiness_HR.out
3) レポートとセットアップ SQL 生成
この .out から Markdown レポートとセットアップ SQL テンプレートを生成します。
python3 scripts/score_oracle_ai_feature_readiness.py \
oracle_ai_feature_readiness_HR.out \
--language ja \
--output oracle_ai_feature_readiness_HR.md \
--sql-output oracle_ai_feature_setup_HR.sql
生成されるファイルは以下です。
| ファイル | 内容 |
|---|---|
oracle_ai_feature_readiness_HR.md |
Oracle AI Feature Readiness 評価レポート |
oracle_ai_feature_setup_HR.sql |
AI Profile / RAG / Agent などのセットアップ SQL テンプレート |
■ HR スキーマの実行結果
ここから、実際に HR スキーマに対して実行した結果を見ていきます。
⚫︎ scan の結果
scan profile の結果は以下です。
| 項目 | 結果 |
|---|---|
| 総合スコア | 0.67 / 1.00 |
| Profile | scan |
| Mandatory comment gate | pass |
| 評価対象テーブル数 | 7 |
| 評価対象カラム数 | 35 |
| 結論 | PoC または限定パイロット向け |
Dimension ごとのスコアは以下です。
| Dimension | Score | 主な根拠 |
|---|---|---|
| Clean | 0.50 | PK 100.0%、制約 100.0%、統計情報 0.0% |
| Contextual | 1.00 | テーブルコメント 100.0%、カラムコメント 100.0%、リレーション 100.0% |
| Consumable | 0.65 | コメントと PK は良好、テキスト列 / VECTOR 列は 0.0% |
| Current | 0.17 | 鮮度列 28.6%、recent stats 0.0% |
| Correlated | 0.70 | FK 71.4%、source metadata 42.9%、PK 100.0% |
| Compliant | 0.96 | 機微情報候補はコメント済み、広いデータ権限は未検出 |
HR スキーマでは、テーブルコメントとカラムコメントが 100% で、Mandatory comment gate は pass でした。
一方で、統計情報が未取得だったため、Clean と Current のスコアが下がっています。
主なメトリクスは以下です。
| Metric | Value | Status |
|---|---|---|
| Table comment coverage | 100.0% | pass |
| Column comment coverage | 100.0% | pass |
| PK coverage | 100.0% | 良好 |
| FK coverage | 71.4% | 要確認 |
| Relationship coverage | 100.0% | 良好 |
| Constraint coverage | 100.0% | 良好 |
| Table stats coverage | 0.0% | 要改善 |
| Column stats coverage | 0.0% | 要改善 |
| Freshness coverage | 28.6% | 要改善 |
| Text-bearing table coverage | 0.0% | 参考 |
| Vector table coverage | 0.0% | 参考 |
改善 SQL としては、統計情報収集用の DBMS_STATS.GATHER_TABLE_STATS と、鮮度列候補の UPDATED_AT 追加テンプレートが生成されました。
BEGIN
DBMS_STATS.GATHER_TABLE_STATS(
ownname => 'HR',
tabname => 'EMPLOYEES',
cascade => TRUE,
method_opt => 'FOR ALL COLUMNS SIZE AUTO'
);
END;
/
鮮度列については、実際のアプリケーション影響があるため、テンプレートとしてコメントアウトされています。
-- ALTER TABLE "HR"."COUNTRIES" ADD "UPDATED_AT" TIMESTAMP(6);
-- ALTER TABLE "HR"."DEPARTMENTS" ADD "UPDATED_AT" TIMESTAMP(6);
-- ALTER TABLE "HR"."JOBS" ADD "UPDATED_AT" TIMESTAMP(6);
-- ALTER TABLE "HR"."LOCATIONS" ADD "UPDATED_AT" TIMESTAMP(6);
-- ALTER TABLE "HR"."REGIONS" ADD "UPDATED_AT" TIMESTAMP(6);
⚫︎ rag の結果
rag profile の結果は以下です。
| 項目 | 結果 |
|---|---|
| 総合スコア | 0.68 / 1.00 |
| Profile | rag |
| Mandatory comment gate | pass |
| 評価対象テーブル数 | 7 |
| 評価対象カラム数 | 35 |
| 結論 | PoC または限定パイロット向け |
Dimension ごとのスコアは以下です。
| Dimension | Score | 主な根拠 |
|---|---|---|
| Clean | 0.50 | PK 100.0%、制約 100.0%、統計情報 0.0% |
| Contextual | 1.00 | テーブルコメント 100.0%、カラムコメント 100.0%、リレーション 100.0% |
| Consumable | 0.50 | text-bearing tables 0.0%、vector tables 0.0% |
| Current | 0.17 | freshness columns 28.6%、recent stats 0.0% |
| Correlated | 0.70 | FK 71.4%、source metadata 42.9%、PK 100.0% |
| Compliant | 0.96 | sensitive documented 100.0%、broad data grant absence 100.0% |
rag profile では、RAG や Vector Search の観点で、テキスト列や VECTOR 列も確認します。
今回の HR スキーマでは、以下のような結果でした。
| Metric | Value |
|---|---|
| Text-bearing table coverage | 0.0% |
| Vector table coverage | 0.0% |
HR スキーマは、テーブルコメント、カラムコメント、主キー、外部キーなどの説明性は高いです。
そのため、Select AI / NL2SQL の PoC 対象としては良さそうです。
一方で、RAG 用の長文テキスト列や VECTOR 列はありませんでした。
つまり、HR スキーマそのものは RAG 用の vector store として設計されているわけではなく、RAG を試すには文書データ、chunking、embedding model、vector index などを別途設計する必要がありそうです。
⚫︎ feature readiness の結果
次に、Autonomous AI Lakehouse で Oracle AI Feature Readiness を実行した結果です。
| 項目 | 結果 |
|---|---|
| Feature readiness score | 0.60 / 1.00 |
| すぐ利用できそうな機能 | なし |
| 対応あり・設定必要な機能 | Select AI / NL2SQL、Select AI RAG、Oracle AI Vector Search、AI Agent、SDG、Feedback、Auto Object Selection |
| 現ユーザーから未検出の機能 | なし |
最初にこの結果を見たとき、すぐ利用できそうな機能: なし と表示されたため、AI 機能が無いのかと思いますが、詳細を見るとそうではありません。
パッケージ / プロシージャ証跡では、以下が確認できます。
| 項目 | 結果 |
|---|---|
| DBMS_CLOUD_AI visible | yes |
| DBMS_CLOUD_AI_AGENT visible | yes |
| DBMS_VECTOR / DBMS_VECTOR_CHAIN visible | yes |
さらに、DBMS_CLOUD_AI では以下のようなプロシージャも確認できました。
CREATE_PROFILE
CREATE_VECTOR_INDEX
GENERATE
GENERATE_SQL
GENERATE_SYNTHETIC_DATA
FEEDBACK
SET_ATTRIBUTE
SET_ATTRIBUTES
DBMS_CLOUD_AI_AGENT では以下のようなプロシージャも確認できました。
CREATE_AGENT
CREATE_TASK
CREATE_TEAM
CREATE_TOOL
ENABLE_AGENT
ENABLE_TASK
ENABLE_TEAM
ENABLE_TOOL
つまり、今回の Autonomous AI Lakehouse では、Select AI、RAG、AI Agent、SDG など必要機能がありました。
ただし、AI Profile はまだ作成していないため、すぐに使える状態ではありませんでした。
AI profile は検出されませんでした。
そのため、今回の正しい解釈は以下です。
AI 機能がない
→ 誤り
AI 機能はあるが、AI Profile、Credential、Vector Index が未作成
→ 正しい
⚫︎ 確認できた AI 機能
Autonomous AI Lakehouse では以下が確認できました。
| 機能 | Autonomous AI Lakehouse | 設定・確認に参考になる Oracle Document |
|---|---|---|
| DBMS_CLOUD_AI | 検出 |
DBMS_CLOUD_AI Package Manage AI Profiles Select AI and Select AI Agent Capability Matrix |
| DBMS_CLOUD_AI_AGENT | 検出 |
Select AI Agent Examples of Using Select AI Agent Select AI and Select AI Agent Capability Matrix |
| DBMS_VECTOR / DBMS_VECTOR_CHAIN | 検出 |
Overview of Oracle AI Vector Search DBMS_VECTOR DBMS_VECTOR_CHAIN |
| AI Profile | 未作成 |
Manage AI Profiles DBMS_CLOUD_AI Package |
| Select AI / NL2SQL | 対応あり・設定必要 |
Manage AI Profiles Use AI Keyword to Enter Prompts Select AI and Select AI Agent Capability Matrix |
| Select AI RAG | 対応あり・設定必要 |
Manage AI Profiles DBMS_CLOUD_AI Package Use AI Keyword to Enter Prompts |
| AI Agent | 対応あり・設定必要 |
Select AI Agent Examples of Using Select AI Agent Select AI and Select AI Agent Capability Matrix |
Autonomous AI Lakehouse では DBMS_CLOUD_AI、DBMS_CLOUD_AI_AGENT、DBMS_VECTOR / DBMS_VECTOR_CHAIN が確認できました。
そのため、Autonomous AI Lakehouse 側は「AI 機能が無い」のではなく、AI Profile、Credential、Vector Index などがまだ未作成の状態でした。
まずは DBMS_CLOUD_AI.CREATE_PROFILE で AI Profile を作成し、SELECT AI showsql で NL2SQL を試すのが次のステップになりそうです。
■ 結果から分かったこと
今回の HR スキーマ評価と Feature Readiness から分かったことを整理します。
⚫︎ HR スキーマはコメントと制約が強い
HR スキーマは、テーブルコメントとカラムコメントが 100% でした。
| 項目 | 結果 |
|---|---|
| Table comment coverage | 100.0% |
| Column comment coverage | 100.0% |
| Mandatory comment gate | pass |
| PK coverage | 100.0% |
| Relationship coverage | 100.0% |
| Constraint coverage | 100.0% |
特に今回の Skill では、コメント有無を mandatory gate として扱っています。
そのため、テーブルコメントとカラムコメントが 100% である HR スキーマは、AI Ready 評価のベースラインとしてかなり良い対象でした。
Select AI / NL2SQL では、スキーマの意味を LLM に伝えるためにコメントや制約が重要になるため、HR スキーマは PoC 対象として良さそうです。
⚫︎ RAG 用のテキスト列 / VECTOR 列はまだ無い
一方で、RAG の観点では以下が 0% でした。
| 項目 | 結果 |
|---|---|
| Text-bearing table coverage | 0.0% |
| Vector table coverage | 0.0% |
HR スキーマは、従業員、部署、職種、国、地域などの業務データを持っています。
ただし、RAG でよく使うような長文ドキュメントや、embedding を格納する VECTOR 列はありません。
そのため、HR スキーマは NL2SQL の PoC には向いているが、RAG 用の vector store としては追加設計が必要 という結果になりました。
RAG を試す場合は、以下のような設計が必要そうです。
- 検索対象となる文書データ
- chunking 方針
- embedding model
- vector index
- refresh rate
- 回答根拠として提示する source 情報
⚫︎ Select AI / RAG / Agent は Profile 作成前の状態
Feature Readiness では、以下の機能が見えていました。
| 機能 | 状態 |
|---|---|
| Select AI / NL2SQL | 対応あり・設定必要 |
| Select AI RAG | 対応あり・設定必要 |
| Oracle AI Vector Search / Vector Index | 対応あり・設定必要 |
| Select AI Agent - SQL tool | 対応あり・設定必要 |
| Select AI Agent - RAG tool | 対応あり・設定必要 |
| Synthetic Data Generation | 対応あり・設定必要 |
| NL2SQL Feedback | 対応あり・設定必要 |
| Auto Object Selection | 対応あり・設定必要 |
今回、未検出の機能はありませんでした。
ただし、AI Profile はまだありません。
そのため、次に必要なのは以下です。
- AI Provider を決める
- Credential を作成する
-
DBMS_CLOUD_AI.CREATE_PROFILEで AI Profile を作成する -
DBMS_CLOUD_AI.SET_PROFILEで Profile をセットする -
SELECT AI showsqlで NL2SQL を試す - RAG を使う場合は Vector Index を作成する
- Agent を使う場合は Agent / Tool / Team を作成する
今回の Skill では、AI Profile 作成用のテンプレート SQL も生成されました。
BEGIN
DBMS_CLOUD_AI.CREATE_PROFILE(
profile_name => 'AI_READY_NL2SQL',
status => 'enabled',
description => 'AI Ready NL2SQL profile scoped for review',
attributes => JSON_OBJECT(
'provider' VALUE 'oci',
'credential_name' VALUE 'TODO_AI_PROVIDER_CRED',
'model' VALUE 'TODO_MODEL_NAME',
'object_list' VALUE JSON_ARRAY(JSON_OBJECT('owner' VALUE 'HR')),
'comments' VALUE true,
'constraints' VALUE true,
'enforce_object_list' VALUE true
)
);
END;
/
実際に利用する場合は、provider、credential_name、model、object_list などを環境に合わせて設定する必要があります。
■ まとめ
今回は、Oracle Database 向けに作成した oracle-ai-ready-data Skill を使って、Autonomous AI Lakehouse 上の HR スキーマを AI Ready Data の観点で評価してみました。
実行した評価は以下です。
| 評価 | 内容 |
|---|---|
| scan | スキーマ全体の AI Ready 度を確認 |
| rag | RAG / Vector Search 観点の readiness を確認 |
| feature readiness | Select AI / RAG / Agent などの Oracle AI 機能が見えているか確認 |
HRスキーマは、テーブルコメント、カラムコメント、主キー、外部キー、制約などが整っており、Select AI / NL2SQL の検証対象としてはかなり良さそうでした。
一方で、統計情報や鮮度列には改善余地があり、RAG用の長文テキスト列やVECTOR列も無いため、RAG / Vector Search用途では追加のデータ設計が必要そうです。
また、Autonomous AI Lakehouse では DBMS_CLOUD_AI、DBMS_CLOUD_AI_AGENT、DBMS_VECTOR などが確認でき、AI機能の土台は存在していました。
ただし、AI Profile、Credential、Vector Index はまだ未作成だったため、今回の正しい解釈は「AI機能が無い」ではなく、「AI機能はあるが、利用するための設定がこれから必要」という状態でした。
次回は、AI Profile を作成して、Select AI / NL2SQL を実際に試してみてみます。
-
予定
第1回: Oracle Database の HR スキーマを AI Ready 評価してみてみた
第2回: BAD_AI_READY スキーマを作って AI Ready 評価で失敗させてみてみた
第3回: Select AI Profile を作って NL2SQL してみたみてみた
第4回: Oracle AI Vector Search / RAG 用の Vector Index を作ってみてみた
第5回: AI Agent の SQL Tool / RAG Tool を試してみてみた
■ 解説
まだあまり理解されていない Database のメタデータ, AI Ready Data について詳しく解説しています。
■ おまけ
今回の内容を、ずんだもん達に紹介してもらう漫画も作ってみました。 技術記事の補足として、少しでも楽しく読んでもらえたらうれしいです。
👁 おまけ.png
※ 本漫画は筆者による非公式の二次創作です。
※ 使用キャラクター:ずんだもん / 四国めたん / 春日部つむぎ
※ キャラクターの権利は各権利元に帰属します。
※ クレジット
- ずんだもん / 四国めたん:東北ずん子・ずんだもんプロジェクト関連ガイドラインに基づいて利用
- 春日部つむぎ:公式利用規約に基づいて利用
■ 参考
-
GitHub
-
Documents
- Select AI by Release: A Quick Guide to 26ai and 19c Capabilities
- Select AI and Select AI Agent Capability Matrix
- Use Select AI for Natural Language Interaction with your Database
- Select your AI Provider and LLMs
- Profile Attributes
- DBMS_CLOUD_AI Package
- DBMS_CLOUD_AI Views
- Use AI Keyword to Enter Prompts
- Overview of Oracle AI Vector Search
- DBMS_VECTOR
- DBMS_VECTOR_CHAIN
- Select AI Agent
-
LiveLabs
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme
