Azure Cosmos DB:使用 Java 和 Azure 门户生成 MongoDB API 控制台应用

Azure Cosmos DB 由 Microsoft 提供,是全球分布的多模型数据库服务。 可快速创建和查询文档、键/值数据库,所有这些都受益于 Azure Cosmos DB 核心的全球分布和水平缩放功能。

本快速入门教程演示如何使用 Azure 门户创建 Azure Cosmos DB 帐户、文档数据库和集合。 然后生成并部署基于 MongoDB Java 驱动程序构建的控制台应用。

先决条件

在运行此示例之前,必须具备以下先决条件:

  • JDK 1.7+(如果没有 JDK,请运行 apt-get install default-jdk
  • Maven(如果没有 Maven,请运行 apt-get install maven

Note

如果没有 Azure 订阅,可在开始前创建一个试用帐户

另外,对于本教程,也可以使用 Azure Cosmos DB 模拟器,该模拟器的连接字符串为:

mongodb://localhost:C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==@localhost:10255/admin?ssl=true

创建数据库帐户

  1. 在新窗口中,登录到 Azure 门户
  2. 在左菜单中,依次单击“新建”、“数据库”,然后在“Azure Cosmos DB”下单击“创建”。

    Azure 门户的屏幕截图,其中突出显示了“更多服务”和“Azure Cosmos DB”

  3. 在“新建帐户”边栏选项卡中,为 Azure Cosmos DB 帐户指定所需的配置。

    使用 Azure Cosmos DB,可以选择以下三个编程模型之一:MongoDB、SQL (DocumentDB) 和表(键/值)。

    在本快速入门教程中,我们会针对 MongoDB API 编程,因此,在填写表单时,请选择“MongoDB”。 但如果有来自目录应用的文档数据或键/值(表)数据,请意识到 Azure Cosmos DB 可以为所有任务关键型应用程序提供高度可用的全球分布式数据库服务平台。

    以表中的信息作为指南,填写“新建帐户”边栏选项卡。

    “新 Azure Cosmos DB”边栏选项卡的屏幕截图

    设置 建议的值 说明
    ID 唯一值 选择用于标识 Azure Cosmos DB 帐户的唯一名称。 documents.azure.cn 会追加到所提供的 ID 以创建 URI,因此,请使用唯一但可识别的 ID。 ID 只能包含小写字母、数字及“-”字符,且长度必须为 3 到 50 个字符。
    API MongoDB API 确定要创建的帐户的类型。 Azure Cosmos DB 提供了三种 API,用以满足应用程序的需求:SQL(文档数据库)、MongoDB(文档数据库)和Azure 表,每个目前都需要单独的帐户。

    之所以选择 MongoDB 是因为,在本快速入门中将创建可使用 MongoDB 查询的文档数据库。

    详细了解 MongoDB API
    订阅 订阅 要用于 Azure Cosmos DB 帐户的 Azure 订阅。
    资源组 与 ID 相同的值 帐户的新资源组名称。 为简单起见,可以使用与 ID 相同的名称。
    位置 离用户最近的区域 要在其中托管 Azure Cosmos DB 帐户的地理位置。 选择离用户最近的位置,使其能够以最快的速度访问数据。
  4. 单击“创建” 以创建帐户。

  5. 在工具栏上,单击“通知”可监视部署过程。

    “部署已启动”通知

  6. 部署完成后,请从“所有资源”磁贴打开新帐户。

    “所有资源”磁贴中的 Azure Cosmos DB 帐户

添加集合

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

现在可以在 Azure 门户中使用数据资源管理器工具来创建数据库和集合。

  1. 单击“数据资源管理器” > “新建集合”。

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

    Azure 门户“数据资源管理器”,“添加集合”边栏选项卡

  2. 在“添加集合”页上,输入新集合的设置。

    设置 建议的值 说明
    数据库 ID 任务 输入 Tasks 作为新数据库的名称。 数据库名称必须包含 1 到 255 个字符,不能包含 /、\、#、? 或尾随空格。
    集合 ID Items 输入 Items 作为新集合的名称。 集合 ID 与数据库名称的字符要求相同。
    存储容量 固定 (10 GB) 将值更改为“固定(10GB)”。 此值是数据库的存储容量。
    吞吐量 400 RU 将吞吐量更改为每秒 400 个请求单位 (RU/s)。 如果想要减少延迟,以后可以增加吞吐量。
    分区键 /category 一个分区键,用于将数据均匀分配到每个分区。 选择正确的分区键对于创建高性能集合而言很重要。 若要了解详细信息,请参阅设计分区

    单击 “确定”

    数据资源管理器将显示新的数据库和集合。

    显示新的数据库和集合的 Azure 门户数据资源管理器

克隆示例应用程序

现在让我们从 github 克隆 MongoDB API 应用、设置连接字符串,并运行。 你会看到以编程方式处理数据是多么容易。

  1. 打开 git 终端窗口(例如 git bash)并使用 cd 切换到工作目录。

  2. 运行下列命令,克隆示例存储库。

    git clone https://github.com/Azure-Samples/azure-cosmos-db-mongodb-java-getting-started.git
    
  3. 然后在 Visual Studio 中打开解决方案文件。

查看代码

快速查看应用中发生的情况。 打开 Program.cs 文件,会发现以下代码行创建 Azure Cosmos DB 资源。

  • 此时会对 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. 从帐户中选择“快速启动”,选择 Java,并将连接字符串复制到剪贴板

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

运行控制台应用

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

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

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

在 Azure 门户中查看 SLA

在 Azure 门户中监视帐户中资源的吞吐量、存储空间、可用性、延迟和一致性。 让我们快速了解一下这些指标。

  1. 在导航菜单中单击“指标”。

    Azure 门户中的指标

  2. 单击每个选项卡,以便了解 Azure Cosmos DB 提供的指标。

    Azure Cosmos DB 服务级别协议 (SLA) 关联的每个图表都提供了一行,显示是否违反了任何 SLA。 Azure Cosmos DB 通过此套指标使监视 SLA 的操作更透明。

    Azure Cosmos DB 指标套件

清理资源

如果不打算继续使用此应用,请删除本快速入门教程在 Azure 门户中创建的所有资源,步骤如下:

  1. 在 Azure 门户的左侧菜单中,单击“资源组”,然后单击已创建资源的名称。
  2. 在资源组页上单击“删除”,在文本框中键入要删除的资源的名称,并单击“删除”。

后续步骤

在本快速入门教程中,已了解如何创建 Azure Cosmos DB 帐户、使用数据资源管理器创建集合和运行控制台应用。 现在可以将其他数据导入 Cosmos DB 帐户。