You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过嵌入式代码以编程式方式调用Azure Cosmos DB Gremlin API

使用TinkerPop链式API操作Azure Cosmos DB Gremlin

依赖配置

首先确保项目中引入TinkerPop核心与驱动依赖(以Maven为例):

<dependencies>
    <dependency>
        <groupId>org.apache.tinkerpop</groupId>
        <artifactId>gremlin-core</artifactId>
        <version>3.6.2</version> <!-- 选择与Cosmos DB兼容的版本,建议匹配官方推荐版本 -->
    </dependency>
    <dependency>
        <groupId>org.apache.tinkerpop</groupId>
        <artifactId>gremlin-driver</artifactId>
        <version>3.6.2</version>
    </dependency>
</dependencies>

链式API实现示例

1. 建立Cosmos DB Gremlin连接

import org.apache.tinkerpop.gremlin.driver.Cluster;
import org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
import static org.apache.tinkerpop.gremlin.process.traversal.AnonymousTraversalSource.traversal;

// 初始化集群配置
Cluster cluster = Cluster.build()
        .addContactPoint("<你的Cosmos DB Gremlin端点>") // 格式如 xxx.gremlin.cosmos.azure.com
        .port(443)
        .credentials("<你的数据库账户名>", "<你的数据库账户密钥>")
        .enableSsl(true)
        .create();

// 获取支持链式调用的GraphTraversalSource实例
GraphTraversalSource g = traversal().withRemote(DriverRemoteConnection.using(cluster, "<你的数据库名>.<你的图容器名>"));

2. 链式执行Gremlin操作

替换原字符串查询方式,用链式API实现相同的顶点、边操作:

import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
import org.apache.tinkerpop.gremlin.structure.Vertex;

// 添加thomas顶点
GraphTraversal<Vertex, Vertex> addThomas = g.addV("person").property("id", "thomas");
addThomas.iterate(); // 执行写入操作

// 添加mary顶点
GraphTraversal<Vertex, Vertex> addMary = g.addV("person").property("id", "mary");
addMary.iterate();

// 添加friends关联边
GraphTraversal<Vertex, ?> addFriendEdge = g.V("thomas").addE("friends").to(g.V("mary"));
addFriendEdge.iterate();

// 查询示例:获取thomas的所有朋友ID
GraphTraversal<Vertex, String> queryFriends = g.V("thomas").out("friends").values("id");
queryFriends.forEachRemaining(friendId -> System.out.println("Thomas的朋友:" + friendId));

3. 资源清理

操作完成后关闭集群连接,释放资源:

cluster.close();

关键说明

  • 操作执行方式:写入操作(如addV/addE)用iterate()执行并忽略返回结果;查询操作通过forEachRemaining()或next()处理返回数据。
  • 实例复用:一个GraphTraversalSource实例可复用执行多个链式操作,无需重复创建。
  • 版本兼容:确保TinkerPop版本与Azure Cosmos DB支持的Gremlin版本匹配,避免兼容性问题。

内容的提问来源于stack exchange,提问作者omarghoche

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 17:17:41