cosmosdb-best-practices
Azure Cosmos DB のパフォーマンス最適化およびベストプラクティスに関するガイドラインを提供します。NoSQL設計、パーティショニング、クエリ最適化、SDK の適切な使用方法をカバーしており、Cosmos DB に関連するコードの新規作成・レビュー・リファクタリング、データモデル設計、高パフォーマンスなデータベース操作の実装時に活用できます。
description の原文を見る
| Azure Cosmos DB performance optimization and best practices guidelines for NoSQL, partitioning, queries, and SDK usage. Use when writing, reviewing, or refactoring code that interacts with Azure Cosmos DB, designing data models, optimizing queries, or implementing high-performance database operations.
SKILL.md 本文
Azure Cosmos DB ベストプラクティス
Azure Cosmos DB アプリケーションのための包括的なパフォーマンス最適化ガイドです。12カテゴリにわたる100以上のルールを含み、 自動リファクタリングとコード生成をガイドするため、インパクト順に優先順位付けされています。
適用すべき場面
以下の場合にこれらのガイドラインを参照してください:
- Cosmos DB のデータモデルを設計する
- パーティションキーを選択する
- クエリを記述・最適化する
- SDK パターンを実装する
- ローカル開発で Cosmos DB Emulator を使用する
- 開発者向けツールで Cosmos DB データを検査・管理する
- Cosmos DB でベクトル検索または RAG 機能を実装する
- パフォーマンス問題についてコードをレビューする
- スループットとスケーリングを構成する
- グローバル分散アプリケーションを構築する
ルールカテゴリ(優先順位順)
| 優先度 | カテゴリ | インパクト | プレフィックス |
|---|---|---|---|
| 1 | データモデリング | 重大 | model- |
| 2 | パーティションキー設計 | 重大 | partition- |
| 3 | クエリ最適化 | 高 | query- |
| 4 | SDK ベストプラクティス | 高 | sdk- |
| 5 | インデックス戦略 | 中〜高 | index- |
| 6 | スループット & スケーリング | 中 | throughput- |
| 7 | グローバル分散 | 中 | global- |
| 8 | 監視 & 診断 | 低〜中 | monitoring- |
| 9 | デザインパターン | 高 | pattern- |
| 10 | 開発者ツール | 中 | tooling- |
| 11 | ベクトル検索 | 高 | vector- |
クイックリファレンス
1. データモデリング(重大)
model-embed-related- 一緒に取得される関連データを埋め込むmodel-reference-large- アイテムが大きくなりすぎた場合はデータを参照するmodel-avoid-2mb-limit- アイテムサイズを2MB制限より十分低く保つmodel-id-constraints- ID値の長さと文字制約に従うmodel-nesting-depth- 128レベルのネスト深度制限内に留まるmodel-numeric-precision- IEEE 754の数値精度制限を理解するmodel-denormalize-reads- 事前計算集計を含むリード集約的なワークロード用に非正規化するmodel-schema-versioning- ドキュメントスキーマをバージョン管理するmodel-type-discriminator- ポリモーフィックデータに型判別式を使用するmodel-json-serialization- Cosmos DB ドキュメントの JSON シリアライゼーションを正しく処理するmodel-relationship-references- ドキュメント関係には ID参照と一時的なハイドレーション使用する
2. パーティションキー設計(重大)
partition-high-cardinality- 高カーディナリティのパーティションキーを選択するpartition-avoid-hotspots- 書き込みを均等に分散させるpartition-hierarchical- 柔軟性のための階層的パーティションキーを使用;レベルを広い→狭い順に並べるpartition-query-patterns- パーティションキーをクエリパターンと一致させるpartition-synthetic-keys- 必要に応じて合成キーを作成するpartition-key-length- パーティションキー値の長さ制限に従うpartition-immutable-key- パーティションキーとして不変プロパティを選択するpartition-20gb-limit- 20GB の論理パーティション制限を計画する
3. クエリ最適化(高)
query-aggregate-single-pass- min/max/avg をスコープ付き集計クエリで一度に計算するquery-avoid-cross-partition- クロスパーティションクエリを最小化するquery-use-projections- 必要なフィールドのみプロジェクションする;プロジェクション用に専用結果型を優先するquery-pagination- 継続トークンをペジネーションに使用するquery-avoid-scans- コンテナの全スキャンを避けるquery-parameterize- パラメータ化されたクエリを使用するquery-order-filters- フィルタを選択性でソートするquery-top-literal- TOP には常にリテラル整数を使用;パラメータは使用しないquery-latest-by-timestamp- 明示的な ORDER BY と TOP 1 で「最新」ドキュメントをクエリするquery-olap-detection- 分析クエリを検出し、トランザクションコンテナから離すquery-point-reads- id とパーティションキーがわかっている場合、クエリの代わりにポイント読み取り(ReadItem)を使用する
4. SDK ベストプラクティス(高)
sdk-singleton-client- CosmosClient をシングルトンとして再利用するsdk-async-api- スループットのために非同期 API を使用するsdk-retry-429- 429 を retry-after で処理するsdk-connection-mode- 本番環境では Direct モードを使用するsdk-preferred-regions- 優先リージョンを構成するsdk-excluded-regions- 問題が発生しているリージョンを除外するsdk-availability-strategy- 回復力のために可用性戦略を構成するsdk-circuit-breaker- フォルトトレランスのためにサーキットブレーカーを使用するsdk-diagnostics- トラブルシューティング用に診断をログに出力するsdk-serialization-enums- enum を整数ではなく文字列としてシリアライズするsdk-emulator-ssl- Cosmos DB Emulator 用に SSL と接続モードを構成するsdk-ifnonematch-create-createItemでsetIfNoneMatchETag("*")を使用して重複を原子的に拒否する(競合時は409)sdk-no-shared-request-options- 複数のcreateItem呼び出しでCosmosItemRequestOptionsインスタンスを再利用しない — SDK は内部でそれを変更し、2番目の呼び出しで誤ったパーティションキーを引き起こすsdk-patch-incr- 原子的なカウンター増分にCosmosPatchOperations.incr()を使用する — RU読み取りなし、ETag競合サイクルなしsdk-bypage-empty-token-byPage()を呼び出す前に空の文字列継続トークンをガードする — 最初のページにnullを渡し、決して""を渡さないsdk-etag-concurrency- 読み取り-変更-書き込み操作に ETag を使用して楽観的同時実行制御を行うsdk-java-content-response- 書き込み操作時にコンテンツレスポンスを有効にする(Java)sdk-java-cosmos-config- Spring Boot で Cosmos DB 初期化を正しく構成するsdk-java-spring-boot-versions- Java バージョンを Spring Boot 要件と一致させるsdk-local-dev-config- クラウド競合を避けるようにローカル開発を構成するsdk-dotnet-cosmos-package-id- 廃止されたAzure.Cosmosv4-preview パッケージではなくMicrosoft.Azure.Cosmosを使用するsdk-newtonsoft-dependency- Newtonsoft.Json パッケージを明示的に参照するsdk-python-async-deps- Python 非同期 SDK を使用するときに aiohttp をインクルードするsdk-spring-data-annotations- Spring Data Cosmos 用にエンティティにアノテーションを付けるsdk-spring-data-repository- CosmosRepository を正しく使用し、Iterable 戻り値型を処理するsdk-langchain-cosmosdb-saver- LangGraph チェックポイント用に非同期コンテナクライアントで CosmosDBSaver を使用するsdk-langchain-async-checkpointer- モジュールレベルではなくスタートアップルーチンで非同期 Cosmos DB コンテナを初期化するsdk-langchain-mcp-persistent-session- アプリケーションの全期間を通じて永続的な MCP クライアントセッションを維持するsdk-langchain-mcp-tool-content-format- MCP ToolMessage コンテンツの文字列形式とリスト形式の両方を処理するsdk-langgraph-mcp-tool-filtering- エージェント毎の割り当てのため、名前プレフィックス別に MCP ツールをフィルタリングするsdk-dotnet-namespace-collision-Microsoft.Azure.Cosmos名前空間とドメインモデル(User、Database、Container 等)の衝突を避ける
5. インデックス戦略(中~高)
index-exclude-unused- クエリされないパスを除外するindex-composite- ORDER BY に複合インデックスを使用するindex-composite-direction- 複合インデックス方向を ORDER BY と一致させるindex-spatial- ジオクエリのため空間インデックスを追加するindex-range-vs-hash- 適切なインデックス型を選択するindex-lazy-consistent- インデックスモードを理解する
6. スループット & スケーリング(中)
throughput-autoscale- 変動するワークロードにオートスケール使用するthroughput-right-size- プロビジョニングスループットを適切にサイズ設定するthroughput-serverless- 開発/テスト環境ではサーバーレスを検討するthroughput-burst- バースト容量を理解するthroughput-container-vs-database- 割り当てレベルを賢く選択する
7. グローバル分散(中)
global-multi-region- マルチリージョン書き込みを構成するglobal-consistency- 適切な一貫性レベルを選択するglobal-conflict-resolution- 競合解決を実装するglobal-failover- 自動フェイルオーバーを構成するglobal-read-regions- ユーザーの近くに読み取りリージョンを追加するglobal-zone-redundancy- HA のためにゾーン冗長性を有効にする
8. 監視 & 診断(低~中)
monitoring-ru-consumption- RU 消費を追跡するmonitoring-latency- P99 レイテンシを監視するmonitoring-throttling- スロットリングについて警告するmonitoring-azure-monitor- Azure Monitor を統合するmonitoring-diagnostic-logs- 診断ログを有効にする
9. デザインパターン(高)
pattern-change-feed-materialized-views- クロスパーティションクエリ最適化のため変更フィードを使用するpattern-efficient-ranking- 効率的なランキングのためカウントベースまたはキャッシュ方式を使用するpattern-service-layer-relationships- サービスレイヤーを使用してドキュメント参照をハイドレートするpattern-langgraph-multi-agent- マルチエージェントルーティング用に条件付きエッジを持つ StateGraph を使用するpattern-langgraph-interrupt-human- 人間参加確認フロー用に LangGraph interrupt を使用するpattern-langgraph-resume-checkpoint- マルチターン会話のため interrupt 後のチェックポイントから LangGraph を再開するpattern-langgraph-agent-routing-cosmosdb- ポイント読み取りで決定論的ルーティング用に Cosmos DB でアクティブエージェントを永続化するpattern-langgraph-fastapi-startup- FastAPI スタートアップで再試行ロジック付き LangGraph エージェントを初期化するpattern-langgraph-chat-history-separate- チェックポインターではなく専用コンテナにチャット履歴を保存するpattern-background-task-writes- ノンブロッキングなチャット履歴書き込み用に FastAPI バックグラウンドタスクを使用するpattern-langgraph-async-cosmos-routing- LangGraph ルーティング関数用に asyncio.to_thread で Cosmos DB 同期呼び出しをラップするpattern-langgraph-async-cosmos-writes- 非同期ノード関数でのアクティブエージェント書き込み用に asyncio.to_thread を使用するpattern-langgraph-agent-name-attribution- API レスポンス属性用にエージェント名で AI メッセージにタグを付ける
10. 開発者ツール(中)
tooling-vscode-extension- 日常的な検査と管理には VS Code 拡張機能を使用するtooling-emulator-setup- ローカル開発とテストに Emulator を使用する
11. ベクトル検索(高)
vector-enable-feature- ベクトル機能を使用する前に、アカウント上でベクトル検索を有効にするvector-embedding-policy- ベクトルプロパティ用にベクトル埋め込みポリシーを定義するvector-index-type- インデックスポリシーでベクトルインデックスを構成するvector-normalize-embeddings- コサイン類似性のため埋め込みを正規化するvector-distance-query- 類似度検索に VectorDistance を使用するvector-repository-pattern- ベクトル検索のためリポジトリパターンを実装する
12. フルテキスト検索(高)
fts-enable-capability- アカウントでEnableNoSQLFullTextSearch機能を有効にする — すべての FTS 関数の前提条件fts-full-text-policy- コンテナでfullTextPolicyを定義する;正しい言語コード(en-US、大文字小文字区別)でfts-index-policy- インデックスポリシーにfullTextIndexesエントリを追加して転置インデックスをビルドするfts-contains-query-CONTAINS(LOWER(...))の代わりにFullTextContains/FullTextContainsAll/FullTextContainsAnyを使用するfts-score-ranking- BM25 関連性ランキング用にORDER BY RANK FullTextScore(path, term)を使用するfts-hybrid-query- FTS 述語と範囲/等価フィルタを組み合わせる;最も選別的なフィルタを最初に置く
使い方
詳細な説明とコード例については、上記のリンク済みルールファイルを使用してください。リンクはエージェントに関連するガイドへの直接パスを 提供し、フォルダスキャンや推論されたファイル名に依存しません。
各ルールファイルには以下が含まれます:
- それが重要である理由の簡潔な説明
- 説明付き不正なコード例
- 説明付き正しいコード例
- 追加のコンテキストと参考資料
全コンパイルドキュメント
すべてのルールを展開した完全なガイドについては:AGENTS.md
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- azurecosmosdb
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/azurecosmosdb/cosmosdb-agent-kit / ライセンス: MIT
関連スキル
hugging-face-trackio
Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。
btc-bottom-model
ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。
protein_solubility_optimization
タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。
research-lookup
Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。
tree-formatting
ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。
querying-indonesian-gov-data
インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。