用途:为 Azure Cosmos DB 提供专家级辅助,覆盖 NoSQL API、分区键设计、请求单位(RU/s)优化与变更源(Change Feed),适合在 Azure 上构建全球化企业级应用。
主要能力:Cosmos DB 是 Azure 的行星级数据库,支持多种 API:NoSQL(Core/JSON)、MongoDB、PostgreSQL、Cassandra、Gremlin(图)与 Table。吞吐量以请求单位(RU)计量,1KB 点读消耗 1 RU。分区键决定数据在物理服务器上的分布,高基数键可保证均匀分布。变更源可实时流式传输容器变更,触发 Azure Functions、微服务或搜索索引更新。一致性提供 5 个级别:强、有界过期、会话、一致前缀、最终。
使用方式:以 NoSQL API 为例,使用 @azure/cosmos 的 CosmosClient,通过 endpoint 与 key 初始化,获取 database 与 container 后,用 container.item(id, partitionKey).read() 进行点读并查看 requestCharge;写入时用 container.items.create 并传入分区键。变更源通过 container.items.changeFeed({ startTime }) 读取。
适用场景:需要多区域复制与个位数毫秒延迟 SLA 的全球应用;复用 MongoDB、Cassandra、Gremlin、PostgreSQL 技能的多模型场景;流量有季节性峰值的动态扩缩容与自动缩放 RU/s;需要可调一致性级别的业务。
限制与注意事项:避免频繁跨分区查询,无分区键的查询会扫描所有物理分区并消耗大量 RU;不适合重型 OLAP 数据仓库,此类批处理应使用 Azure Synapse 或 Fabric;应优化索引策略,排除未使用的字符串路径以降低写入 RU。常见问题:429 表示 RU 超限,需指数退避、检查分区热点或扩容;404 通常是未提供分区键;412 为 _etag 乐观并发冲突,需重新获取后重试。
其他细节(如具体定价、平台支持范围)暂未提供。