Visual Index Policy Editor
Cosmos 默认索引所有 paths。每个 write 为每个索引的 path 支付 1 RU。DBA 需要编辑带 inclusion/exclusion paths 的巨大 JSON,一个错字会破坏部署。可视化编辑器以树形显示采样的 schema,按 path 切换,实时计算 RU/write 影响,并生成可粘贴的 JSON。
它在应用中的位置: Tools → Cosmos DB → Index Policy Editor
它做什么
- 对 100 文档进行 Schema sampling 以自动发现 paths。
- 带按 path Include/Exclude toggle 的 paths 树视图。
- 成本估算:"默认 47 RU/write → 变更后 12 RU/write — 便宜 74%"。
- 自动生成的 JSON 预览。
- 按(connection、ns)持久化的 draft — 可以迭代而不丢失。
分步
- 1
采样 schema
输入 namespace(例如 `app.products`)。点击 "Sample schema"。~3s 后显示发现的 paths 树。
- 2
切换 paths
点击每个 path 旁边的 Include / Excluded 按钮。顶部 "After your changes: N RU per write" 的实时更新。
- 3
保存 draft
"Save draft" 按钮本地持久化。下方 JSON 预览已准备好可复制。
- 4
在 Cosmos 中应用
复制生成的 JSON,打开 Azure portal → Containers → Settings → Indexing policy → 粘贴 → save。(或通过 az-cli `az cosmosdb sql container update` 运行。)
- 5
(可选)通过 WHAT-IF 验证
在生产中应用之前,用对应的 `add-index` 或 `drop-index` 运行 WHAT-IF 以确认收益。
真实用例
大 BLOB 索引的 path
Collection 默认索引了 `payload` 字段(JSON blob 5-20kb)。通过编辑器排除。Writes 从 38 RU 降到 9 RU。每月节省 R$ 1.8k。
无用的 Wildcard paths
团队索引了 `/metadata/*` 但只读取 2 个 sub-paths。排除 wildcard + 仅包含 2 个使用的 paths = -65% RU/write。