快速入门:在 Azure Cosmos DB 中使用 Java 和 API for MongoDB 创建控制台应用

适用对象: MongoDB

在本快速入门中,我们通过 Azure 门户创建和管理 Azure Cosmos DB for API for MongoDB 帐户,并使用从 GitHub 克隆的 Java SDK 应用来添加数据。 Azure Cosmos DB 是一种多模型数据库服务,可让你通过多区域分布和水平缩放功能快速创建和查询文档、表、键/值和图形数据库。

先决条件

创建数据库帐户

  1. 在新浏览器窗口中,登录到 Azure 门户

  2. 在左侧菜单中,选择“创建资源”。

    Screenshot of creating a resource in the Azure portal.

  3. 在“新建”页上,选择“数据库”“Azure Cosmos DB”。

    Screenshot of the Azure portal Databases pane.

  4. 在“Azure Cosmos DB”页上,选择“创建”。

  5. 在“创建 Azure Cosmos DB 帐户”页中,输入新 Azure Cosmos DB 帐户的设置。

    设置 说明
    订阅 订阅名称 选择要用于此 Azure Cosmos DB 帐户的 Azure 订阅。
    资源组 资源组名称 选择一个资源组,或者选择“新建”,然后输入新资源组的唯一名称。
    帐户名 输入唯一的名称 输入标识此 Azure Cosmos DB 帐户的唯一名称。 帐户 URI 将是追加到唯一帐户名称的“mongo.cosmos.azure.cn” 。

    帐户名称只能使用小写字母、数字及连字符 (-),必须为 3 到 44 个字符长。
    位置 离用户最近的区域 选择用于托管 Azure Cosmos DB 帐户的地理位置。 使用离用户最近的位置,使他们能够以最快的速度访问数据。
    容量模式 预配吞吐量或无服务器 选择“预配吞吐量”以在预配吞吐量模式下创建帐户。 选择“无服务器”以在无服务器模式下创建帐户。

    注意:无服务器帐户仅支持 API for MongoDB 版本 4.2、4.0 和 3.6。 选择版本 3.2 将强制帐户处于配置的吞吐量模式。
    应用 Azure Cosmos DB 免费层折扣 “应用”或“不应用” 使用 Azure Cosmos DB 免费层,你将在帐户中获得每秒前 1000 RU 的免费吞吐量和 25 GB 的免费存储。 了解免费层的详细信息。
    版本 选择所需的服务器版本 Azure Cosmos DB for MongoDB 与服务器版本 4.2、4.0、3.6 和 3.2 兼容。 创建帐户后,可以对其进行升级或降级

    注意

    每个 Azure 订阅最多可以有一个免费层 Azure Cosmos DB 帐户,并且你必须在创建帐户时选择加入使用。 如果看不到用于应用免费层折扣的选项,这意味着订阅中的另一个帐户已启用免费层。

    Screenshot of the new account page for Azure Cosmos DB.

  6. 在“全局分发”选项卡中,配置以下详细信息。 对于本快速入门,可以保留默认值:

    设置 说明
    异地冗余 禁用 通过将你的区域与某个配对区域进行配对来启用或禁用帐户的多区域分发。 稍后可以将更多区域添加到帐户。
    多区域写入 禁用 借助多区域写入功能,可以利用全中国的数据库和容器的预配吞吐量。

    注意

    如果选择“无服务器”作为“容量模式”,则以下选项不可用 :

    • 应用免费层折扣
    • 异地冗余
    • 多区域写入
  7. (可选)可以在以下选项卡中配置其他详细信息:

    • 网络 - 配置来自虚拟网络的访问
    • 备份策略- 配置定期连续备份策略。
    • 加密 - 使用服务管理的密钥或客户管理的密钥
    • 标记 - 标记是名称/值对,通过将相同的标记应用到多个资源和资源组,可以对资源进行分类并查看合并的账单。
  8. 选择“查看 + 创建”。

  9. 创建帐户需要几分钟时间。 等待门户中显示“祝贺你! Azure Cosmos DB for MongoDB 帐户已准备就绪”页面。

    Screenshot of the Azure portal Notifications pane.

添加集合

将新数据库命名为 db,将新集合命名为 coll

现在可以在 Azure 门户中使用数据资源管理器工具来创建用于 MongoDB 数据库和容器的 Azure Cosmos DB API。

  1. 选择“数据资源管理器”>“新建容器”。

    “添加容器”区域显示在最右侧,可能需要向右滚动才能看到它。

    The Azure portal Data Explorer, Add Container pane

  2. 在“添加容器”页中,输入新容器的设置。

    设置 建议值 说明
    数据库 ID db 输入“db”作为新数据库的名称。 数据库名称必须包含 1 到 255 个字符,不能包含 /, \\, #, ? 或尾随空格。 选中“预配数据库吞吐量”选项,这样就可以在数据库中的所有容器之间共享预配给该数据库的吞吐量。 此选项还有助于节省成本。
    吞吐量 400 将吞吐量保留为每秒 400 个请求单位 (RU/s)。 如果想要减少延迟,以后可以增加吞吐量。 还可以选择 Autoscale 模式,该模式提供一定范围的 RU/s,可根据需要动态增加和减少。
    集合 ID coll 输入 coll 作为新容器的名称。 容器 ID 与数据库名称的字符要求相同。
    存储容量 固定(10GB) 为此应用程序输入“固定(10GB)”。 如果选择“无限制”,则需要创建一个 Shard Key,这是插入所有项时所需的。
    分片键 /_id 本文中所述的示例不使用分片键,因此如果将其设置为 /_id,就会使用自动生成的 ID 字段作为分片键。 请参阅 Azure Cosmos DB 中的分片,了解关于分片(也被称为分区)的详细信息

    选择“确定”。 数据资源管理器将显示新的数据库和容器。

克隆示例应用程序

现在让我们从 GitHub 克隆应用,设置连接字符串,然后运行该应用。 会看到以编程方式处理数据是多么容易。

  1. 打开命令提示符,新建一个名为“git-samples”的文件夹,然后关闭命令提示符。

    md "C:\git-samples"
    
  2. 打开诸如 git bash 之类的 git 终端窗口,并使用 cd 命令更改为要安装示例应用的新文件夹。

    cd "C:\git-samples"
    
  3. 运行下列命令,克隆示例存储库。 此命令在计算机上创建示例应用程序的副本。

    git clone https://github.com/Azure-Samples/azure-cosmos-db-mongodb-java-getting-started.git
    
  4. 然后在偏好的编辑器中打开代码。

查看代码

此步骤是可选的。 如果有意了解如何使用代码创建数据库资源,可以查看以下代码片段。 否则,可以直接跳转到更新连接字符串

以下代码片段全部摘自 Program.java 文件。

此控制台应用使用 MongoDB Java 驱动程序

  • 此时会对 DocumentClient 进行初始化。

    MongoClientURI uri = new MongoClientURI("FILLME");`
    
    MongoClient mongoClient = new MongoClient(uri);            
    
  • 会创建新数据库和集合。

    MongoDatabase database = mongoClient.getDatabase("db");
    
    MongoCollection<Document> collection = database.getCollection("coll");
    
  • 使用 MongoCollection.insertOne 插入一些文档

    Document document = new Document("fruit", "apple")
    collection.insertOne(document);
    
  • 使用 MongoCollection.find 执行一些查询

    Document queryResult = collection.find(Filters.eq("fruit", "apple")).first();
    System.out.println(queryResult.toJson());    	
    

更新连接字符串

现在返回到 Azure 门户,获取连接字符串信息,并将其复制到应用。

  1. 从你的 Azure Cosmos DB 帐户中,选择“快速启动”,选择“Java”,然后将连接字符串复制到剪贴板。

  2. 打开 Program.java 文件,将 MongoClientURI 构造函数的参数替换为该连接字符串。 现已使用与 Azure Cosmos DB 进行通信所需的所有信息更新应用。

运行控制台应用

  1. 在终端中运行 mvn package,安装所需的包

  2. 在终端中运行 mvn exec:java -D exec.mainClass=GetStarted.Program,启动 Java 应用程序。

现在可以使用 Robomongo / Studio 3T 来查询、修改和处理此新数据。

在 Azure 门户中查看 SLA

Azure 门户可监视 Azure Cosmos DB 帐户吞吐量、存储、可用性、延迟和一致性。 与 Azure Cosmos DB 服务级别协议 (SLA) 关联的指标的图表显示与实际性能相比的 SLA 值。 此套指标使得监视 SLA 十分透明。

若要查看指标和 SLA,请执行以下操作:

  1. 请在 Azure Cosmos DB 帐户的导航菜单中选择“指标”。

  2. 选择一个选项卡,如“延迟”,然后选择右侧的时间范围。 比较图表上的“实际”和“SLA”线。

    Azure Cosmos DB metrics suite

  3. 查看其他选项卡上的指标。

清理资源

执行完应用和 Azure Cosmos DB 帐户的操作以后,可以删除所创建的 Azure 资源,以免产生更多费用。 若要删除资源,请执行以下操作:

  1. 在 Azure 门户的“搜索”栏中,搜索并选择“资源组” 。

  2. 从列表中选择为本快速入门创建的资源组。

    Select the resource group to delete

  3. 在资源组“概览”页上,选择“删除资源组” 。

    Delete the resource group

  4. 在下一窗口中输入要删除的资源组的名称,然后选择“删除” 。

后续步骤

在本快速入门中,你了解了如何创建 Azure Cosmos DB for MongoDB 帐户、如何使用数据资源管理器来添加数据库和容器,以及如何使用 Java 控制台应用来添加数据。 现在可将其他数据导入 Azure Cosmos DB 数据库。

尝试为迁移到 Azure Cosmos DB 进行容量计划? 可以使用有关现有数据库群集的信息进行容量规划。