VOOZH about

URL: https://qiita.com/shirok/items/3b9ccefff059ff1ab40d

⇱ oracle-ai-ready-data Skill で Oracle Database のスキーマを AI Ready Data 評価してみてみた #rag - Qiita


👁 Image
30

Go to list of users who liked

13

Share on X(Twitter)

Share on Facebook

Add to Hatena Bookmark

👁 Image
「AI時代のデータベース、何が変わる?」について語ろう!
Qiita Tech Festa20262026年7月13日まで開催中!
@shirok(Shiro Kobayashi)Team Energy Drinkin👁 Image
日本オラクル株式会社

oracle-ai-ready-data Skill で Oracle Database のスキーマを AI Ready Data 評価してみてみた

30
Last updated at Posted at 2026-06-23

今回は 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 の違い

scanrag はどちらも 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_ATLAST_UPDATE_DATE などの鮮度列があるテーブルの割合
Source metadata coverage SOURCE_SYSTEMBATCH_IDCREATED_BY などの出所情報があるテーブルの割合
Text-bearing table coverage RAG 候補となるテキスト列を持つテーブルの割合
Vector table coverage VECTOR 型または embedding 候補を持つテーブルの割合
Sensitive candidate documentation 機微情報候補列のうちコメントがある列の割合
Broad data grant absence PUBLIC など広い相手へのデータアクセス権限が検出されなかった割合

これらの項目を組み合わせて、CleanContextualConsumableCurrentCorrelatedCompliant のスコアを算出します。

⚫︎ Oracle AI Feature Readiness とは

Oracle AI Feature Readiness は、スキーマの品質ではなく、Oracle Database 側で AI 機能が利用できる状態かを確認する評価です。

具体的には、以下のようなものを確認します。

機能 確認内容
Select AI / NL2SQL DBMS_CLOUD_AICREATE_PROFILEGENERATE などが見えるか
Select AI RAG CREATE_VECTOR_INDEX、AI Profile、Vector Index が使えそうか
Oracle AI Vector Search DBMS_VECTORDBMS_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_AIDBMS_CLOUD_AI_AGENTDBMS_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 スキーマなので、以下のように実行します。

HRスキーマ scan Profile情報取得例
sql -s admin/<password>@adb_high @scripts/oracle_ai_ready_collect.sql HR % scan

2) メタデータ .outファイル 取得
実行すると、以下のような .out ファイルが生成されます。

HRスキーマ scan Profile .out ファイル名
oracle_ai_ready_scan_HR_scan.out

rag profile の場合は以下です。

HRスキーマ rag Profile情報取得例
sql -s admin/<password>@adb_high @scripts/oracle_ai_ready_collect.sql HR % rag

こちらは以下のファイルが生成されます。

HRスキーマ rag Profile .out ファイル名
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 でした。

一方で、統計情報が未取得だったため、CleanCurrent のスコアが下がっています。

主なメトリクスは以下です。

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_AIDBMS_CLOUD_AI_AGENTDBMS_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 はまだありません。

そのため、次に必要なのは以下です。

  1. AI Provider を決める
  2. Credential を作成する
  3. DBMS_CLOUD_AI.CREATE_PROFILE で AI Profile を作成する
  4. DBMS_CLOUD_AI.SET_PROFILE で Profile をセットする
  5. SELECT AI showsql で NL2SQL を試す
  6. RAG を使う場合は Vector Index を作成する
  7. 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;
/

実際に利用する場合は、providercredential_namemodelobject_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_AIDBMS_CLOUD_AI_AGENTDBMS_VECTOR などが確認でき、AI機能の土台は存在していました。

ただし、AI ProfileCredentialVector 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

※ 本漫画は筆者による非公式の二次創作です。
※ 使用キャラクター:ずんだもん / 四国めたん / 春日部つむぎ
※ キャラクターの権利は各権利元に帰属します。
※ クレジット
 - ずんだもん / 四国めたん:東北ずん子・ずんだもんプロジェクト関連ガイドラインに基づいて利用
 - 春日部つむぎ:公式利用規約に基づいて利用

■ 参考

30

Go to list of users who liked

13
0

Go to list of comments

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30

Go to list of users who liked

13