SuperAPI AI 工具集

azure-cosmosdb

数据与分析

查看项目

更新于 10-16 04:59

技能介绍

一、用途 本技能围绕 Azure Cosmos DB 的 NoSQL(Core)API 展开,讲解如何选择分区键、设计数据访问模式并理解一致性权衡。Cosmos DB 还支持 MongoDB、PostgreSQL、Cassandra、Gremlin、Table 等 API,但本技能聚焦最常用的 NoSQL Core API。

二、核心概念 容器(Container)相当于表,存储 JSON 记录(Item);分区键决定数据分布,同一分区键的记录构成逻辑分区,物理分区最大 50GB、10000 RU/s;RU(请求单位)是吞吐量计费单位。

三、分区键设计 应选高基数、分布均匀且常用于查询的字段,如电商用 /userId、多租户用 /tenantId、IoT 用 /deviceId,日志可用日期加分类的合成键;还支持层级分区键(如 /tenantId、/userId)。应避免低基数字段(status、type、布尔值)、单调递增字段(timestamp、自增 ID)、频繁更新字段以及不用于查询的字段,以防热分区。

四、SDK 用法(TypeScript) 安装:npm install @azure/cosmos。用 endpoint、key 或连接字符串初始化 CosmosClient,导出 database 与 getContainer。示例覆盖创建、点读(需 id 与分区键)、分区内查询、跨分区查询、分页查询、整体替换、patch 局部更新、删除,以及用 ETag 实现乐观并发(IfMatch,冲突返回 412)。

五、一致性级别 分为强一致、有限过期、会话(默认)、一致前缀、最终一致,延迟与保证依次递减;可按请求通过 consistencyLevel 覆盖默认级别。

六、批量与更改源 同一分区内可用事务批处理 batch;大批量导入可用 bulk 并分块执行。更改源可用 changeFeed 迭代器从 Beginning 开始读取,生产环境建议配合租用容器的更改源处理器。

七、Python SDK 安装:pip install azure-cosmos。用 CosmosClient、get_database_client、get_container_client 完成创建、读取、查询、更新、删除与分页,跨分区查询需 enable_cross_partition_query=True。

八、索引与吞吐量 可自定义索引策略,包含 includedPaths、excludedPaths 与复合索引;容器可配置预配吞吐量(如 1000 RU/s)并可调整,也支持自动缩放(maxThroughput)与无服务器模式。

九、CLI 与成本 Azure CLI 可创建账户、数据库、容器、查询及列出密钥与连接字符串。成本优化策略包括合理分区键、按查询建索引、多用点读、开发测试用无服务器、生产用自动缩放、设置 TTL 自动过期数据。

十、限制 资料未提供具体价格、性能基准与配额上限等未列明信息。