在本快速入门中,你将通过 Azure 门户创建和管理 Azure Cosmos DB for Gremlin(图形)API 帐户,并使用从 GitHub 克隆的 Python 应用来添加数据。 Azure Cosmos DB 是一种多模型数据库服务,你可以借助其全球分布和水平缩放功能快速创建和查询文档、表、键/值和图数据库。

  • 具有活动订阅的 Azure 帐户。 免费创建一个 。 或者 免费试用 Azure Cosmos DB 而无需 Azure 订阅。

  • Python 3.7+ ,包括 pip 程序包安装程序。

  • 适用于 Gremlin 的 Python 驱动程序

    还可以使用 pip 命令行安装适用于 Gremlin 的 Python 驱动程序:

    pip install gremlinpython==3.4.13
    
  • Git

    本快速入门需要 2017 年 12 月 20 日之后创建的图形数据库帐户。 迁移至正式发布版后,现有帐户将支持 Python。

    我们目前建议将 gremlinpython==3.4.13 与 Gremlin(图形)API 一起使用,因为我们尚未充分测试要与此服务配合使用的版本 3.5.* 的所有特定于语言的库。

    创建数据库帐户

    在创建图形数据库之前,需通过 Azure Cosmos DB 创建 Gremlin (Graph) 数据库帐户。

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

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

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

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

    输入唯一的名称 输入标识此 Azure Cosmos DB 帐户的唯一名称。 帐户 URI 将是追加到唯一帐户名称的“gremlin.azure.com”

    帐户名称只能使用小写字母、数字及连字符 (-),必须为 3 到 44 个字符长。 Gremlin(图形) API 确定要创建的帐户的类型。 Azure Cosmos DB 提供五种 API:适用于文档数据库的 NoSQL、适用于图形数据库的 Gremlin、适用于文档数据库的 MongoDB、Azure 表和 Cassandra。 必须为每种 API 创建单独的帐户。

    选择“Gremlin (图)”,因为本快速入门将创建使用 API for Gremlin 的表。

    详细了解 API for Gremlin。 离用户最近的区域 选择用于托管 Azure Cosmos DB 帐户的地理位置。 使用离用户最近的位置,使他们能够以最快的速度访问数据。 预配吞吐量或无服务器 选择“预配吞吐量”以在预配吞吐量模式下创建帐户。 选择“无服务器”以在无服务器模式下创建帐户。 应用 Azure Cosmos DB 免费层折扣 “应用”或“不应用” 使用 Azure Cosmos DB 免费层,你将在帐户中获得每秒前 1000 RU 的免费吞吐量和 25 GB 的免费存储。 了解免费层的详细信息。
  • 备份策略- 配置定期连续备份策略。
  • 加密 - 使用服务管理的密钥或客户管理的密钥
  • 标记 - 标记是名称/值对,通过将相同的标记应用到多个资源和资源组,可以对资源进行分类并查看合并的账单。
  • 选择“查看 + 创建”。

  • 创建帐户需要几分钟时间。 等待门户中显示“祝贺你! 已创建 Azure Cosmos DB 帐户”页。

    数据库 ID sample-database 输入“sample-database”作为新数据库的名称。 数据库名称的长度必须为 1 到 255 个字符,不能包含 / \ # ? 或尾随空格。 400 RU 将吞吐量更改为每秒 400 个请求单位 (RU/s)。 如果想要减少延迟,以后可以增加吞吐量。 如果选择无服务器容量模式,则不需要吞吐量。 图形 ID sample-graph 输入“sample-graph”作为新集合的名称。 图形名称与数据库 ID 的字符数要求相同。 所有 Azure Cosmos DB 帐户都需要一个分区键才能进行水平缩放。 在图形数据分区一文中了解如何选择适当的分区键。

    现在,让我们转到如何使用代码上来。 从 GitHub 克隆 Gremlin API 应用,设置连接字符串,并运行应用。 你会发现以编程方式处理数据是多么容易。

  • 运行以下命令,将示例存储库克隆到本地计算机。 此命令在计算机上创建示例应用程序的副本。 从通常存储 GitHub 存储库的文件夹的根目录开始。

    git clone https://github.com/Azure-Samples/azure-cosmos-db-graph-python-getting-started.git
    
  • 切换到示例应用所在的目录。

    cd azure-cosmos-db-graph-python-getting-started
    

    此步骤是可选的。 如果有意了解如何使用代码创建数据库资源,可以查看以下代码片段。 这些代码片段全部摘自存储库 git-samples\azure-cosmos-db-graph-python-getting-started 中的 connect.py 文件。 否则,可以直接跳转到更新连接字符串

  • Gremlin clientconnect.py 中使用 client.Client() 初始化。 请确保将 <YOUR_DATABASE><YOUR_CONTAINER_OR_GRAPH> 替换为帐户的数据库名称和图名称的值:

    client = client.Client('wss://<YOUR_ENDPOINT>.gremlin.cosmosdb.azure.com:443/','g', username="/dbs/<YOUR_DATABASE>/colls/<YOUR_CONTAINER_OR_GRAPH>", password="<YOUR_PASSWORD>")
  • connect.py 文件的开头声明了一系列 Gremlin 步骤(查询)。 然后它们使用 client.submitAsync() 方法执行。 例如,若要运行清理图步骤,请使用以下代码:

    client.submitAsync(_gremlin_cleanup_graph)
    

    更新连接信息

    现在,返回到 Azure 门户,获取连接信息,并将信息复制到应用程序中。 借助这些设置,应用程序可以与托管的数据库进行通信。

  • Azure 门户中,在你的 Azure Cosmos DB 帐户中,选择“密钥”。

    复制 URI 值的第一部分。

  • 打开 connect.py 文件,找到 client.Client() 定义,将 URI 值粘贴至此处的 <YOUR_ENDPOINT> 位置:

    client = client.Client('wss://<YOUR_ENDPOINT>.gremlin.cosmosdb.azure.com:443/','g', 
        username="/dbs/<YOUR_DATABASE>/colls/<YOUR_COLLECTION_OR_GRAPH>", 
        password="<YOUR_PASSWORD>")
    

    客户端对象的 URI 部分应类似于以下代码:

    client = client.Client('wss://test.gremlin.cosmosdb.azure.com:443/','g', 
        username="/dbs/<YOUR_DATABASE>/colls/<YOUR_COLLECTION_OR_GRAPH>", 
        password="<YOUR_PASSWORD>")
    
  • 更改 client 对象的第二个参数以替换 <YOUR_DATABASE><YOUR_COLLECTION_OR_GRAPH> 字符串。 如果使用建议的值,该参数应类似于以下代码:

    username="/dbs/sample-database/colls/sample-graph"

    整个 client 对象现在应类似于以下代码:

    client = client.Client('wss://test.gremlin.cosmosdb.azure.com:443/','g', 
        username="/dbs/sample-database/colls/sample-graph", 
        password="<YOUR_PASSWORD>")
    
  • 在“密钥”页上,使用“复制”按钮复制主密钥,并将它粘贴到 password=<YOUR_PASSWORD> 参数中的 <YOUR_PASSWORD> 位置。

    client 对象定义现在应类似于以下项:

    client = client.Client('wss://test.gremlin.cosmosdb.azure.com:443/','g', 
        username="/dbs/sample-database/colls/sample-graph", 
        password="asdb13Fadsf14FASc22Ggkr662ifxz2Mg==")
    
  • 保存 connect.py 文件。

    运行控制台应用

  • 在克隆示例应用的文件夹根目录中的终端窗口中启动。 如果你在使用 Visual Studio Code,可以通过选择“终端”>“新建终端”打开终端窗口。 通常,你将创建一个虚拟环境来运行代码。 有关详细信息,请参阅 Python 虚拟环境

    cd azure-cosmos-db-graph-python-getting-started
    
  • 安装所需的 Python 包。

    pip install -r requirements.txt
    
  • 启动 Python 应用程序。

    python connect.py
    

    终端窗口会显示添加到图形的顶点和边缘。

    如果遇到超时错误,请在更新你的连接信息中检查是否正确更新了连接信息,并尝试再次运行上一个命令。

    一旦程序停止运行,按 Enter,然后在 Internet 浏览器中立即切换回 Azure 门户。

    查看并添加示例数据

    插入顶点和边后,现在可以返回数据资源管理器,查看添加到图中的顶点,并添加更多数据点。

  • 在 Azure 门户中你的 Azure Cosmos DB 帐户中,选择“数据资源管理器”,展开“sample-database”,展开“sample-graph”,然后依次选择“图形”和“执行 Gremlin 查询”。

  • 在“结果”列表中,请注意,图中添加了三个新用户。 可以通过拖放操作来移动顶点,也可以通过滚动鼠标滚轮进行缩放,并能用双箭头放大图形。

  • 接下来,添加几个新用户。 选择“新建顶点”按钮,向图形中添加数据。

  • 输入标签“人员”。

  • 选择“添加属性”,以添加下列每个属性。 注意,可以在图形中为每个人创建唯一属性。 仅 ID 键是必需的。

  • 选择“执行 Gremlin 查询”按钮,默认的 g.V() 筛选器会显示图形中的所有值。 所有用户此时会显示在“结果”列表中。

    添加更多数据时,可以使用筛选器来限制结果。 默认情况下,数据资源管理器使用 g.V() 检索图形中的所有顶点。 可以更改为其他图形查询(如 g.V().count()),以 JSON 格式返回图形中所有 顶点的计数。 如果更改了筛选器,请将筛选器更改回 g.V(),并选择“执行 Gremlin 查询”以再次显示所有结果。

  • 现在可以连接 rakeshashley。 确保在“结果”列表中选中“ashley”,然后选择右下侧“目标”旁边的编辑按钮。 可能需要扩大窗口才能看到“属性”区域。

  • 在“目标”框中键入“rakesh”,在“Edge 标签”框中键入“认识”,再选中复选框。

  • 现在,从结果列表中选择“rakesh”即可看到 ashley 和 rakesh 已连接。

    这就完成了本教程的资源创建部分。 可以继续向图形添加顶点、修改现有顶点,也可以更改查询。 现在,回顾一下 Azure Cosmos DB 提供的指标,然后清理资源。

    在 Azure 门户中查看 SLA

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

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

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

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

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

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

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

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

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

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

    在本快速入门中,你已了解了如何创建 Azure Cosmos DB 帐户,使用数据资源管理器创建图形,以及运行 Python 应用来向图形添加数据。 现可使用 Gremlin 构建更复杂的查询,实现功能强大的图形遍历逻辑。

    使用 Gremlin 查询

  •