你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
用于 Python 的适用于 NoSQL 的 Azure Cosmos DB SDK 示例
适用范围: NoSQL
azure/azure-sdk-for-python GitHub 存储库的 main/sdk/cosmos
文件夹中包含对 Azure Cosmos DB 资源执行 CRUD 操作和其他常见操作的示例解决方案。 本文将提供:
- 每个 Python 示例项目文件中的任务链接。
- 指向相关的 API 参考内容的链接。
先决条件
- 一个 Azure Cosmos DB 帐户。 选项包括:
- 具有 Azure 有效订阅:
- 创建 Azure 免费帐户或使用现有订阅
- Visual Studio 每月额度
- Azure Cosmos DB 免费层
- 不具有 Azure 有效订阅:
- 免费试用 Azure Cosmos DB,为期 30 天的测试环境。
- Azure Cosmos DB 模拟器
- 具有 Azure 有效订阅:
- Python 3.7+,以及
PATH
中的python
可执行文件。 (有关详细信息,请参阅 Azure SDK Python 版本支持策略。) - Visual Studio Code。
- 适用于 Visual Studio Code 的 Python 扩展。
- Git。
- 用于 Python 的适用于 NoSQL 的 Azure Cosmos DB SDK
数据库示例
database_management.py Python 示例演示如何使用 CosmosClient 方法执行以下任务。 若要在运行以下示例之前了解 Azure Cosmos DB 数据库,请参阅使用数据库、容器和项概念性文章。
任务 | API 参考 |
---|---|
创建数据库 | CosmosClient.create_database |
按 ID 读取数据库 | CosmosClient.get_database_client |
查询数据库 | CosmosClient.query_databases |
列出帐户的数据库 | CosmosClient.list_databases |
删除数据库 | CosmosClient.delete_database |
容器示例
container_management.py Python 示例演示如何使用 DatabaseProxy 方法执行以下任务。 若要在运行以下示例之前了解 Azure Cosmos DB 集合,请参阅使用数据库、容器和项概念性文章。
任务 | API 参考 |
---|---|
查询容器 | database.query_containers |
创建容器 | database.create_container |
列出数据库中的所有容器 | database.list_containers |
按 ID 获取容器 | database.get_container_client |
管理容器的预配吞吐量 | container.replace_throughput |
删除容器 | database.delete_container |
项示例
document_management.py 和 change_feed_management.py Python 示例演示如何使用 ContainerProxy 方法执行以下任务。 若要在运行以下示例之前了解 Azure Cosmos DB 项,请参阅使用数据库、容器和项概念性文章。
任务 | API 参考 |
---|---|
在容器中创建项 | container.create_item |
按 ID 读取项 | container.read_item |
读取容器中的所有项 | container.read_all_items |
按 ID 查询项 | container.query_items |
替换项 | container.replace_item |
更新插入项 | container.upsert_item |
删除项 | container.delete_item |
获取容器中项的更改源 | container.query_items_change_feed |
索引示例
index_management.py Python 示例演示如何执行以下任务。 若要在运行以下示例之前了解 Azure Cosmos DB 中的索引,请参阅索引策略、索引类型和索引路径概念文章。
任务 | API 参考 |
---|---|
将特定项排除在索引范围外 | documents.IndexingDirective.Exclude |
对已编入索引的特定项使用手动索引 | documents.IndexingDirective.Include |
将路径排除在索引范围外 | 定义要在 IndexingPolicy 属性中排除的路径 |
对字符串使用范围索引 | 使用范围索引对字符串数据类型定义索引策略。 'kind': documents.IndexKind.Range ,'dataType': documents.DataType.String |
执行索引转换 | database.replace_container(使用更新的索引策略) |
当路径上仅存在哈希索引时使用扫描 | 查询项时设置 enable_scan_in_query=True 和 enable_cross_partition_query=True |
后续步骤
正在尝试为迁移到 Azure Cosmos DB 进行容量计划? 可以使用有关现有数据库群集的信息进行容量规划。
- 如果你只知道现有数据库群集中的 vCore 和服务器数量,请阅读根据 vCore 或 vCPU 数量估算请求单位数
- 若知道当前数据库工作负载的典型请求速率,请阅读使用 Azure Cosmos DB 容量计划工具估算请求单位