跳转到内容
← 返回 Cosmos DB 概览
Killer #4

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. 1

    采样 schema

    输入 namespace(例如 `app.products`)。点击 "Sample schema"。~3s 后显示发现的 paths 树。

  2. 2

    切换 paths

    点击每个 path 旁边的 Include / Excluded 按钮。顶部 "After your changes: N RU per write" 的实时更新。

  3. 3

    保存 draft

    "Save draft" 按钮本地持久化。下方 JSON 预览已准备好可复制。

  4. 4

    在 Cosmos 中应用

    复制生成的 JSON,打开 Azure portal → Containers → Settings → Indexing policy → 粘贴 → save。(或通过 az-cli `az cosmosdb sql container update` 运行。)

  5. 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。

准备好在您的 Cosmos 账户上查看了吗?下载 NoSqlStudio下一个 → Throughput Optimizer + Bill Simulator