Azure Cosmos DBのOmniVecとは?Public Previewの変更点と導入前チェックポイント

Azure Cosmos DBでRAGやベクトル検索を使うチームにとって、OmniVecは「埋め込み生成パイプラインを自作し続けるべきか」を見直すきっかけになる更新です。2026年6月3日に公開または更新されたAzure Updatesでは、OmniVecがAzure Cosmos DB関連のPublic Previewとして案内されています。結論から言うと、OmniVecは複数のデータソースからデータを取り出し、埋め込みを生成し、Azure Cosmos DBなどのベクトル格納先へ書き込む処理を自動化するオープンソースのツールキットです。(Microsoft Azure)

ただし、既存のAzure Cosmos DBアカウントに自動で有効化される機能ではありません。自分のAzureサブスクリプションへOmniVecをデプロイして使う仕組みのため、導入前にはAKS、Azure Cosmos DB、ACR、埋め込みモデル、権限、コスト、ネットワーク設計を確認する必要があります。Public Previewは一般提供ではなく、Azure Updates上でも非本番での利用・テスト向けのステータスとして説明されています。(Microsoft Azure)

目次

Azure Cosmos DB向けOmniVecで何が変わるのか

OmniVecのポイントは、AIアプリケーションでよく発生する「データ抽出」「埋め込み生成」「ベクトルDBへの書き込み」「変更追跡」「再処理」を、ひとまとまりのパイプラインとして扱えるようにすることです。

これまでAzure Cosmos DBでRAGやセマンティック検索を作る場合、多くのチームは次のような処理を個別に実装していました。

項目従来の実装で起きやすいことOmniVec導入後の考え方
データ抽出Cosmos DB Change Feed、Blobイベント、DBのCDCなどを個別に組み合わせるSourceとして登録し、どこから読むかをパイプラインで管理する
埋め込み生成Azure OpenAIなどのAPI呼び出し、バッチ化、リトライを自作するModelとして登録し、OmniVecのWorkerが呼び出す
ベクトル格納/embeddingなどのフィールド設計、再書き込み、失敗時の再実行を実装するDestinationとして登録し、生成済みベクトルを書き込む
初期投入既存データのバックフィル処理を別ジョブで作るパイプライン作成時に既存データ処理を組み込める
運用失敗、スロットリング、処理遅延、再実行を個別監視するパイプライン単位で進捗や失敗を確認する

Microsoftの説明では、OmniVecはSource、Model、Destination、Pipelineという4つの構成要素で、従来ばらばらに作っていた処理をまとめます。Sourceは読み取り元、Modelは埋め込みモデル、Destinationはベクトルの書き込み先、Pipelineはそれらを結び付ける定義です。(Microsoft for Developers)

実務上の意味は大きく、PoCでは「まず動くRAG」を早く作り、本番検討では「既存の自作パイプラインをどこまで置き換えるか」を判断しやすくなります。一方で、OmniVec自体を運用するインフラは必要になるため、完全なマネージド機能として考えるのは危険です。

対象者はRAG、ベクトル検索、AIエージェント連携を扱うチーム

OmniVecの主な対象者は、Azure Cosmos DBをAIアプリケーションのデータ基盤として使っている開発者、データエンジニア、クラウド管理者です。特に次のようなケースでは検討価値があります。

対象者確認すべきこと
アプリ開発者どのフィールドを埋め込み対象にするか、検索品質をどう評価するか
データエンジニア既存データのバックフィル、変更追跡、再処理の設計
Azure管理者AKS、ACR、Cosmos DB、Key Vaultなどのリソース作成権限とコスト
セキュリティ担当者Managed Identity、RBAC、モデルAPIキー、機密データの送信範囲
運用担当者パイプライン失敗、処理遅延、RU消費、モデル呼び出し失敗の監視

逆に、Azure Cosmos DBに保存した少量のデータを一度だけ埋め込み化したいだけなら、まずはシンプルなスクリプトで十分な場合があります。OmniVecは「継続的に変わるデータを、埋め込みと同期し続ける」場面で価値が出やすいツールです。

既存環境への影響は限定的。ただし導入時のリソース追加に注意

今回のPublic Previewは、Azure Cosmos DBの既存コンテナーの動作を突然変えるものではありません。OmniVecは自分のAzureサブスクリプションへデプロイして使う方式で、Microsoftの解説ではAKS上にAPI、Controller、Workerなどのサービスを配置し、パイプラインのメタデータや進捗管理にはAzure Cosmos DBアカウントを使う構成が示されています。(Microsoft for Developers)

つまり、影響範囲は主に「OmniVecを導入するために追加するリソース」と「OmniVecが読み書きするデータソース・宛先」です。導入前に次を分けて考えると、判断しやすくなります。

観点影響
既存のCosmos DBコンテナーOmniVecのSourceまたはDestinationとして登録しない限り直接影響しない
新規リソースAKS、ACR、Cosmos DBメタデータストアなどが作成される
コストAKSノード、Cosmos DBのRUまたはサーバーレス利用、モデル推論、ストレージが課金対象になる
セキュリティOmniVecからCosmos DBや埋め込みモデルへアクセスするための権限設計が必要
運用パイプライン、Worker、モデル呼び出し、ベクトル書き込みの監視が増える

特にPoCでは、検証後にリソースグループごと削除できる構成にしておくことが重要です。AKSを含む構成は、アプリを停止したつもりでもノードや関連リソースの課金が残ることがあります。

OmniVecの基本構成を理解する

OmniVecは、単体のライブラリというより、Azure上に展開する埋め込み生成プラットフォームとして考えると分かりやすいです。GitHubのREADMEでは、Azure Blob Storage、Cosmos DB、PostgreSQL、MSSQLをSourceとして扱い、Cosmos DB Vector、pgvector、MSSQLをDestinationとして扱う構成が示されています。(GitHub)

主な構成要素は次の通りです。

Source

Sourceは、埋め込み対象のデータを読み取る場所です。Azure Cosmos DBをSourceにする場合、変更追跡にはChange Feedが関係します。たとえば商品マスタのnameとdescriptionを埋め込み対象にし、商品追加・更新時に再埋め込みする、といった使い方が考えられます。

Model

Modelは、テキストやドキュメントをベクトルに変換する埋め込みモデルです。公式のウォークスルーでは、Microsoft FoundryにデプロイしたAzure OpenAIの埋め込みモデルを使う例が示されています。Hosted Azure OpenAIを使う場合はGPUノードを用意せずに始められますが、セルフホストのモデルを使う場合はGPUノードプールの検討が必要です。(Microsoft for Developers)

Destination

Destinationは、生成されたベクトルを書き込む場所です。Azure Cosmos DBをDestinationにする場合は、ベクトルを格納するパス、次元数、距離関数、ベクトルインデックスを事前に設計します。

たとえばtext-embedding-3-smallを使い、/embeddingに1536次元のベクトルを格納するなら、コンテナー側のベクトルポリシーもそれに合わせる必要があります。モデルを変えると次元数が変わる場合があるため、ここを間違えると検索以前に書き込みやクエリの前提が崩れます。

Pipeline

Pipelineは、Source、Model、Destinationをつなぐ定義です。どのフィールドを埋め込むか、生成したベクトルをどのフィールドへ書くか、既存データを処理するかを決めます。GitHubのREADMEでは、パイプライン作成時に既存データを処理する設定や、パイプラインの進捗確認が紹介されています。(GitHub)

管理者が最初に確認すべき設定

OmniVecは便利ですが、管理者目線では「AI機能」ではなく「新しいAzureワークロード」として扱うべきです。特に以下は導入前に確認してください。

権限とロール

OmniVecのウォークスルーでは、Azure Cosmos DBに対してManaged Identityでアクセスする構成が説明されています。接続文字列をPodに持たせるのではなく、OmniVecのワークロードIDに対してCosmos DB Built-in Data ContributorとCosmos DB Account Reader Roleを付与する点が重要です。後者が不足すると、起動時にメタデータ読み取りエラーが発生する可能性があると説明されています。(Microsoft for Developers)

確認ポイントは次の通りです。

確認項目判断基準
誰がデプロイするかリソースグループ、AKS、ACR、Cosmos DBを作成できる権限があるか
OmniVecの実行IDUser-assigned Managed Identityを特定できるか
Cosmos DBデータアクセス読み取り元・書き込み先に必要最小限のデータプレーン権限を付与しているか
Cosmos DB管理情報ベクトルポリシーなどの読み取りに必要な管理プレーン権限があるか
モデル認証情報APIキーを使う場合、Key Vaultなどで安全に扱う設計になっているか

ネットワーク

検証環境ではパブリックFQDNでUIへアクセスする構成になりがちです。しかし企業環境では、管理UIやAPIをどこから触れるようにするかを必ず確認してください。

特に、次のような環境では早めにネットワーク設計を詰める必要があります。

  • Azure Cosmos DBをPrivate Endpoint経由で使っている
  • Azure OpenAIまたはMicrosoft Foundryへの通信を制限している
  • AKSから外部APIへのアウトバウンド通信を制御している
  • 社内データを埋め込みモデルに送る前に審査が必要
  • 本番サブスクリプションでのパブリックIP作成を禁止している

OmniVecの導入可否は、機能よりもネットワークと権限で決まることが多いです。PoCの段階から本番に近い制約で試しておくと、後から作り直すリスクを減らせます。

コスト

OmniVecでは、埋め込みモデルの推論コストだけでなく、AKS、Cosmos DB、ACR、ストレージ、キュー、ログなどのコストも見ます。GitHubのREADMEでは、デプロイ時にAKS、Cosmos DB、ACR、Key Vault、Storage、Service Bus、Event Gridなどが関係する構成が示されています。(GitHub)

特に注意したいのは初期バックフィルです。既存ドキュメントが多いコンテナーを対象にすると、短時間で大量の読み取り、モデル呼び出し、書き込みが発生します。検証では、まず数百件から数千件程度のサンプルで処理時間、失敗率、RU消費、検索品質を測り、その後に本番規模へ広げるのが安全です。

開発者が失敗しやすいポイント

OmniVecはパイプラインを簡単にしますが、検索品質まで自動で保証するものではありません。RAGやベクトル検索の精度は、どのデータを、どの粒度で、どのモデルに渡すかで大きく変わります。

埋め込み対象フィールドを広げすぎない

商品データを例にすると、nameだけでは情報が短すぎます。一方で、レビュー全文、社内メモ、管理用フラグまで全部まとめると、ノイズが増えます。

実務では、まず次のように分けると設計しやすくなります。

データ種別埋め込み対象に向くか理由
商品名、説明文、FAQ本文向いているユーザーの自然文クエリと意味的に対応しやすい
カテゴリ、タグ条件付きで向く埋め込みよりフィルター条件として使う方がよい場合もある
価格、在庫数、更新日時基本的には向かない数値条件や並べ替えで処理した方がよい
社内メモ、非公開情報慎重に判断生成AIに渡してよい情報か確認が必要
HTML、ログ、JSON全文そのままでは不向き前処理やチャンク分割が必要になりやすい

「とりあえず全フィールドを埋め込む」は失敗しやすい方法です。検索させたい問いを先に決め、その問いに答えるのに必要なフィールドだけを選ぶのが基本です。

モデル名とデプロイ名を混同しない

Azure OpenAIやMicrosoft Foundryを使う場合、モデル名とデプロイ名を混同しやすい点にも注意が必要です。OmniVecのREADMEでは、Azure PortalのDeploymentsに表示される正確なデプロイ名を使う必要があると説明されています。(GitHub)

たとえば、モデル自体はtext-embedding-3-smallでも、デプロイ名をmy-embeddingsにしているなら、設定で使う値は環境に合わせる必要があります。ここを間違えると、パイプライン作成後にモデルテストや埋め込み生成で失敗します。

ベクトルの次元数を合わせる

Azure Cosmos DB側のベクトルポリシーで指定するdimensionsは、使う埋め込みモデルの出力次元と一致させます。たとえば公式の例では、text-embedding-3-smallに合わせて1536次元の/embeddingを作る構成が示されています。(Microsoft for Developers)

確認すべき項目は次の通りです。

項目例
ベクトル格納パス/embedding
データ型float32
次元数使用モデルの出力次元に合わせる
距離関数cosineなど、検索要件に合わせる
ベクトルインデックスCosmos DB側で検索対象パスと一致させる

モデルを変更したら、既存のベクトルをそのまま使い続けられるとは限りません。次元数や意味空間が変わるため、基本的には再埋め込みと再評価が必要です。

Integrated Embeddingsとの違いを整理する

同時期にAzure Cosmos DBではIntegrated EmbeddingsもPublic Previewとして案内されています。これはAzure Cosmos DB側がアイテムの書き込み・更新に合わせて埋め込みを生成・維持する機能で、embeddingSourceをコンテナーのベクトルポリシーに定義する方式です。(Microsoft for Developers)

OmniVecとIntegrated Embeddingsは似ていますが、使いどころが違います。

比較項目OmniVecIntegrated Embeddings
主な用途複数データソースからの埋め込みパイプライン運用Cosmos DB内データの埋め込みをCosmos DB側で維持
インフラAKSなどOmniVec実行基盤が必要既存のCosmos DBとFoundryリソースを中心に構成
データソースCosmos DB以外も視野に入るCosmos DB for NoSQLのアイテムが中心
運用自由度高い。Source、Model、Destination、Pipelineを明示管理シンプル。Cosmos DBのポリシーとして管理
向くケースBlob上のPDF、SQL Server、PostgreSQLなども含めたいCosmos DB内のアイテムをそのままRAG検索に使いたい

判断基準はシンプルです。Azure Cosmos DB for NoSQLのコンテナー内データだけを対象にし、なるべくマネージドに近い形で埋め込みを同期したいならIntegrated Embeddingsを先に検討します。一方、複数のデータソースや外部ベクトル格納先、独自の前処理、セルフホストモデルを含めたいならOmniVecが候補になります。

移行・展開時のおすすめ手順

既存の埋め込み生成パイプラインがある場合、OmniVecへ一気に置き換えるのはおすすめしません。まずは並行稼働で品質と運用性を確認します。

手順作業内容合格基準
現状整理既存のデータソース、埋め込みモデル、格納先、失敗時処理を一覧化どの処理をOmniVecに任せるか説明できる
小規模PoC別リソースグループにOmniVecをデプロイ検証後に丸ごと削除できる
Cosmos DB設計Source用・Destination用コンテナー、ベクトルパス、インデックスを決めるモデル次元数とベクトルポリシーが一致している
権限付与Managed Identityへ必要なRBACを付与接続文字列に依存せず読み書きできる
パイプライン作成Source、Model、Destination、Pipelineを登録既存データの処理数、失敗数、完了率を確認できる
検索評価実際の検索クエリでTop-K結果を確認業務上許容できる関連性が出ている
運用評価監視、ログ、再処理、コストを確認障害時の切り分け手順がある
本番判断Previewであることを前提に採用可否を決める変更・破壊的更新に対応できる体制がある

特に重要なのは、検索品質の評価です。パイプラインが100%完了しても、ユーザーが求める検索結果が出なければ意味がありません。代表的な検索クエリを20〜50個ほど用意し、「期待する文書が上位に出るか」「不要な文書が混ざりすぎないか」「メタデータフィルターが必要か」を確認してください。

本番導入前の注意点

OmniVecはPublic Previewであり、GitHubのREADMEでも本番利用に完全には準備できておらず、破壊的変更や未完成機能、限定的なサポートがあり得ることが明記されています。(GitHub)

そのため、現時点では次のような使い方が現実的です。

  • RAG基盤のPoC
  • 既存の自作パイプラインとの比較検証
  • Cosmos DBベクトル検索の評価
  • BlobやSQL系データを含む埋め込み生成フローの検証
  • 将来の本番設計に向けた運用課題の洗い出し

本番相当データを使う場合は、Previewであること以上に、データ取り扱いの確認が重要です。埋め込み対象に個人情報、契約情報、機密文書、社内限定情報が含まれるなら、モデルに送信してよい範囲、ログに残る情報、保存されるベクトルの扱いを事前に決めてください。

まず確認すべきチェックリスト

OmniVecを試す前に、次のチェックリストを埋めると、導入判断がぶれにくくなります。

チェック項目確認内容
利用目的RAG、セマンティック検索、推薦、類似検索のどれか
データソースCosmos DB、Blob、PostgreSQL、SQL Serverなど対象が明確か
埋め込み対象どのフィールドをベクトル化するか決まっているか
モデルAzure OpenAIなどの埋め込みモデルを用意済みか
次元数Cosmos DBのベクトルポリシーとモデル出力が一致するか
権限Managed IdentityとRBACでアクセスできるか
コストAKS、Cosmos DB、モデル推論、ログの費用を見積もったか
ネットワークUI、API、Cosmos DB、モデルへの通信経路を設計したか
運用失敗時の再処理、監視、削除手順があるか
Preview前提破壊的変更や仕様変更を許容できる検証環境か

OmniVecの価値は、埋め込み生成そのものよりも「変わり続ける業務データとベクトル表現を同期し続ける運用」をまとめられる点にあります。Azure Cosmos DBでAI検索やRAGを作るなら、まずは小さな検証環境でSource、Model、Destination、Pipelineの流れを確認し、既存の自作処理と比べてどこを任せられるかを見極めるのが次の一手です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次