了解 Azure Cosmos DB

完成本实验室后,你将了解如何预配 Azure Cosmos DB 帐户、创建示例数据库和容器、添加和查看 JSON 项,以及运行类似 SQL 的查询以检索数据。 你将获得 Azure 门户的实践经验,并理解 Cosmos DB 如何支持灵活的非关系数据存储和查询。

完成本实验室大约需要 15 分钟。

开始之前

需要一个你在其中具有管理级权限的 Azure 订阅

创建 Cosmos DB 帐户

若要使用 Cosmos DB,必须在 Azure 订阅中预配 Cosmos DB 帐户。 在此练习中,你将预配一个 Cosmos DB 帐户,该帐户使用 Azure Cosmos DB for NoSQL。

  1. 在 Azure 门户中,选择左上角的“+ 创建资源”,然后搜索 Azure Cosmos DB。 在结果中,选择 Azure Cosmos DB,然后选择“创建” 。

    Azure 门户的屏幕截图,其中显示了市场中的 Cosmos DB

  2. 在“Azure Cosmos DB for NoSQL”磁贴中,选择“创建”。

    Azure 门户的屏幕截图,其中显示了 Cosmos DB 创建选项

    **** 提示:该帐户是你的 Cosmos DB 资源的最高级别。通过选择 Azure Cosmos DB for NoSQL,可以使用类似 SQL 的简单查询语言存储和查询 JSON 数据。

  3. 输入以下详细信息,然后选择“查看 + 创建”:

    • 工作负荷类型:学习
    • 订阅:如果正在使用沙盒,请选择“助手订阅”。 否则,请选择 Azure 订阅。
    • 资源组:如果使用沙盒,请选择现有资源组(其名称类似于 learn-xxxx…)。否则,请使用所选的名称创建一个新资源组。
    • 帐户名:输入唯一的名称
    • 可用性区域**:禁用
    • 位置:选择任何建议的位置
    • 容量模式预配吞吐量
    • 应用免费分级折扣:如果可用,请选择“应用”
    • 限制总帐户吞吐量:未选择

    为什么选择这些选项?****

    我们将工作负载类型设置为“学习”,因为它附带了适合初学者的默认设置,使设置更简单且成本较低**。帐户名在整个服务中需要是唯一的,因为它将成为服务 URL 的一部分。我们将选择一个离你较近的位置,使你的测试运行得更快;你看到的位置将取决于你的订阅以及是否启用了某些可用性区域。对于容量模式,我们将使用“预配的吞吐量”模式,以便性能在此简短的实验室中保持可预测性—但也可以使用“无服务器”模式(如果你只是偶尔需要它)。如果免费层可用,我们将使用它,这样你就可以在不增加费用的情况下进行试验。最后,我们将使“限制总帐户吞吐量”设置保持为禁用状态,这样在你工作时就不会出现意外的速度减慢情况。**

  4. 验证配置后,选择“创建”。

    **** 提示:Azure 门户将估计预配 CosmosDB 实例需要多长时间。基于所选位置计算估计的创建时间。

  5. 等待部署完成。 然后,转到部署的资源。

创建示例数据库

在整个过程中,关闭门户中显示的任何提示。

  1. 在新 Cosmos DB 帐户的页面上,在左侧窗格中选择“数据资源管理器”。

    Azure 门户 Comsos DB 数据资源管理器菜单的屏幕截图

  2. 在“数据资源管理器”页中,选择“启动快速入门”。

    **** 提示:快速入门会创建一个工作数据库、容器和示例数据,使你无需先设计架构即可练习添加和查询项。

  3. 在“新建容器”选项卡中,查看示例数据库的预填充设置,然后选择“确定”。

  4. 在屏幕底部的面板中观察状态,直到“SampleDB”数据库及其“SampleContainer”容器已创建完成(这可能需要一分钟左右的时间)。

查看和创建项

  1. 在“数据资源管理器”页中,展开“SampleDB”数据库和“SampleContainer”容器,然后选择“项”以查看容器中的项列表。 项表示产品数据,每个数据都具有唯一的 ID 和其他属性。

    Azure 门户 Comsos DB 数据资源管理器项的屏幕截图

  2. 选择列表中的任意项,查看以 JSON 形式表示的项数据。

  3. 在页面顶部,选择“新建项目”以创建新的空白项目。

  4. 按如下所示修改新项的 JSON 形式,然后选择“保存”。

    {
        "name": "Road Helmet,45",
        "id": "123456789",
        "categoryID": "123456789",
        "SKU": "AB-1234-56",
        "description": "The product called \"Road Helmet,45\" ",
        "price": 48.74
    }
    

    Azure 门户 Comsos DB 数据资源管理器新项的屏幕截图

  5. 保存新项后,请注意,将自动添加其他元数据属性。

    **** 提示:Cosmos DB 将项存储为 JSON(JavaScript 对象表示法),这样你就可以添加适合你的场景的字段,而无需刚性架构。id 在容器中必须是唯一的。在你保存后,Cosmos DB 会添加系统属性(如时间戳和内部标识符),以帮助管理和优化数据:

    • _rid — Cosmos DB 用于在内部标识项的内部资源 ID。**
    • _self — 项的完整资源链接。**
    • _etag — 用于乐观并发检查的实体标记。**
    • _ts — 上次修改项时的 Unix 时间戳(以秒为单位)。**
    • _attachments — 指向文档附件(如有)的链接。**

查询数据库

  1. 在“数据资源管理器”页中,选择“新建 SQL 查询”图标。

    Azure 门户 Comsos DB 数据资源管理器新 sql 查询的屏幕截图

  2. 在 SQL 查询编辑器中,查看默认查询 (SELECT * FROM c),并使用“执行查询”按钮运行该查询。

  3. 查看结果,其中包括所有项的完整 JSON 表示形式。

  4. 按照以下方式更改查询:

    SELECT *
    FROM c
    WHERE CONTAINS(c.name,"Helmet")
    

    **** 提示:NoSQL API 使用熟悉的类似 SQL 的查询来搜索 JSON 文档。SELECT * FROM c 列出所有项,CONTAINS 按属性内的文本筛选,这对于快速搜索非常有用,无需额外的设置。

  5. 使用“执行查询”按钮运行修订后的查询并查看结果,其中包括具有包含文本“Helmet”的“名称”字段的任何项的 JSON 实体 。

    Azure 门户 Comsos DB 数据资源管理器 sql 查询已执行的屏幕截图

  6. 关闭 SQL 查询编辑器,放弃更改。

    已了解如何使用 Azure 门户中的数据资源管理器界面在 Cosmos DB 数据库中创建和查询 JSON 实体。 在实际方案中,应用程序开发人员将使用多种特定于编程语言的软件开发工具包 (SDK) 之一来调用 NoSQL API,并处理数据库中的数据。

**** 提示:如果已完成对 Azure Cosmos DB 的探索,可删除在本练习中创建的资源组。