Microsoft Ignite (ITエンジニア・開発者向け、Microsoftの最新テクノロジ、最新ツーDル、ソリューションが紹介されるテクニカル カンファレンス ) の中で、Azure Cosmos DB の新機能が発表されました。
今回は、Azure Cosmos DB 新機能の概要について、自分の整理も兼ねて、まとめてみようと思います。
Azure Cosmos DB 新機能について
Microsoft Ignite 2024 では、Azure Cosmos DB の以下のような機能が発表されました。
- ベクトル検索 & DiskANN ベクトルインデックス (GA)
- ハイブリッド 検索 & フルテキスト検索 (Public Preview)
- 動的スケーリング (GA)
ベクトル検索 & DiskANN ベクトルインデックス
Azure Cosmos DB for NoSQL で ベクトル検索 および DiskANN ベクトル インデックスをサポート (GA)
DiskANN : Microsoft Research によって開発された最先端のベクトル インデックス作成 アルゴリズム スイート。効率的で制度の高いベクトル検索を実現。
ベクトル検索はベクトル埋め込みを使用して高度な類似検索を実施することが可能。
DiskANN ベクトル インデックスと合わせて使用することで、パフォーマンスを犠牲にしたり過剰なコストが必要になることなく、高速検索を実現することが可能。
ハイブリッド 検索 & フルテキスト検索
現時点 (2024年11月時点) で パブリック プレビュー かつ 言語も 英語(en-us)のみのサポートとなるが、フルテキスト検索 および ランキング機能 (全文検索スコア BM25 ) が登場。
フルテキスト検索で辞書機能が存在するかは GA になってから確認しようと思いますが、全文検索スコア (BM25) を利用したスコア付けアルゴリズムを利用したランキング機能と組み合わせて使用することで、クエリー結果を関連性の高い順 (BM25スコアが最も高い順) から 関連性の低い順 (BM25スコアが最も低い順) に並べ替えることが可能。
現時点 (2024年11月時点) で パブリック プレビュー機能となるがハイブリッド検索が登場。
ハイブリッド検索クエリでは、ベクトル検索の類似性 (VectorDistance) と 全文検索スコア (MB25) のスコアを RRF (reciprocal rank fusion) アルゴリズム により統合された結果セットと生成し、一つの検索スコアのみの検索と比較し、より関連性の高い検索結果を得るなどの精度が向上。
動的スケーリング
動的スケーリングは、自動スケーリングの拡張機能であり、パフォーマンスを維持しつつコストを最適化することが可能な機能。(15% - 70% の自動スケーリングコストの削減効果)
例えば、2つのパーティションをもつコンテナに 1000 要求ユニット (RU) を割り当てた場合、1つのパーティション毎に 500 要求ユニット (RU) まで 自動スケーリング することが可能となります。
既定では、最も利用されているリージョンの最も利用されているパーティションのワークロードに基づいて均一に自動スケーリングが実施されます。
そのため、以下のように各パーティションのワークロード量が不均一な場合、リージョン 1 の パーティション 1 が 500 要求ユニット (RU) に自動スケーリングされる状況になると、他のパーティションでは 500 要求ユニット (RU) が必要ないワークロードであるのにも関わらず、同様に リージョン 1 の パーティション 2、リージョン 2 の パーティション 1, 2 共に 500 要求ユニット (RU) に自動スケーリングされ、課金対象が 合計の 2000 要求ユニット (RU) に増加することになります。
なお、新機能の動的スケーリングを有効化した場合、リージョン毎のパーティション毎に自動スケーリングが行われるように動作が変わり、各リージョン毎のパーティション毎に割り当てられた要求ユニット (RU) の合計が課金対象となります。
以下の例の場合、合計 900 要求ユニット (RU) のみが課金対象となり、既定の自動スケーリングを実施した場合と比較すると、大幅にコストを削減できることが期待できます。
【動的スケーリングによるコスト削減が期待できるユースケース】
- ディザスター リカバリーのために、トラフィックの多いプライマリ リージョンとセカンダリ パッシブ リージョンを持つデータベース ワークロード
- 複数リージョンのデータベース ワークロード
※ 2024年11月現在