问题标签 [azure-cosmosdb-gremlinapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
95 浏览

azure - Azure Cosmos graph db 支持 Gremlin 和 Tinkerpop 版本

我在使用 npm gremlin 和 Tinkerpop 时找不到 Azure Cosmos DB 支持的内容。 https://www.npmjs.com/package/gremlin gremlin 包没有引用 client.submit 脚本,但是,Azure Node.js 示例代码使用了提交。
https://github.com/Azure-Samples/azure-cosmos-db-graph-nodejs-getting-started/blob/master/app.js

此外,当我在 client.submit 中使用 tinkerpop 功能(如过滤器、elementMap 等)时,它会抛出一个找不到它的错误。 g.V().elementMap('age') 这向我表明,只有某些 Tinkerpop 功能在 client.submit 中有效。我正在使用最新的http://tinkerpop.apache.org/docs/3.4.4/reference/

我没有收到 Azure 对此主题的任何回复。谁能阐明如何将最新的 gremlin 和 tinkerpop 与 Azure Cosmos DB 一起使用?如果不是最新版本,每个版本都支持哪些特定版本?

谢谢,唐尼

0 投票
2 回答
307 浏览

gremlin - Gremlin 查询不起作用 - 如果不存在,则为 2 x 顶点并添加边

我正在使用 gremlin 并有以下声明。我想要:

  • 如果不存在则创建一个顶点
  • 如果一个顶点不存在,则创建另一个顶点
  • 在顶点之间创建一条边

边缘不会被创建。我真的很感谢这里的逻辑/方法的帮助。

0 投票
1 回答
84 浏览

azure-cosmosdb - 处理长整数类型时 SQL SDK 和存储过程之间的不一致

我们的团队正在使用 Cosmos DB 作为我们的后端图形存储。基本上,由于 Gremlin API 的大小和步长限制,我们使用 JAVA Gremlin SDK 对顶点/边进行查询,并使用 SQL SDK 创建/更新顶点。

我在尝试更新包含 Long 类型属性的顶点时遇到了这个问题。在我们的代码中,我们使用CosmosDbElement另一个标志作为输入参数,调用sqlClient.executeStoredProcedure(“sp_name”, pk, new Object[] { document, flag }); 我使用的存储过程只是进行一些验证,然后调用collection.replaceDocument()以替换文档。

当我在这个属性上设置不同的值时,我得到了不同的行为:

  1. [-2^53 + 1, 2 ^53 - 1] 内的属性值(JavaScript 中的 MIN_SAFE_INTEGER 到 MAX_SAFE_INTEGER)

    • 替换为 SQL SDK 然后通过 ID 获取:效果很好
    • 替换为 SP 然后通过 ID 获取:效果很好
  2. 超出上述范围且在 Int64 范围内的属性值

    • 替换为 SQL SDK 然后通过 ID 获取:效果很好
    • 替换为 SP 然后按 ID 获取:最后 3 位四舍五入。例如

             922337203685477 5107 -> 922337203685477 5000

             922337203685477 5807 -> 922337203685477 6000

             我们可以使用 SQL SDK 获得相同的舍入值。

             对于大多数情况g.V([id]),得到相同的舍入值。但是如果四舍五入的值超出 的范围Int64,比如 922337203685477 5807 -> 922337203685477 6000,就会g.V([id])抛出异常:Cannot create ValueField on non-primitive type BigInteger

  1. Int64 范围之外的属性
    • 替换为 SQL SDK 然后通过 ID 获取:效果很好
    • 替换为 SP 然后通过 ID 获取:效果很好

我是否以正确的方式使用 SP?

设计是限制还是问题?

如何避免这种精度损失并能够查询顶点?

如果您需要更多信息,请告诉我,谢谢。

0 投票
1 回答
241 浏览

azure - Azure Cosmos DB Gremlin 是否支持存储过程或自定义函数

Azure Cosmos DB Gremlin 是否支持存储过程或自定义函数?不幸的是,我找不到任何关于它的文档。Apache Tinkerpop 支持用户定义的步骤。其他图形数据库(例如 Orient DB)也支持自定义函数

0 投票
1 回答
39 浏览

gremlin - 查询的 Cosmos gremlin 性能问题

我正在尝试在下面运行此查询,但遇到超时问题。这里的低效率在哪里?

0 投票
1 回答
1390 浏览

azure-cosmosdb - 如何在 gremlin (CosmosDb) 中设置列​​表属性的值并将其投影到查询结果中?

我有一个具有列表属性的顶点,我想替换所述属性中的值并以特定格式投影结果。对于上下文,让我们假设以下数据:

我希望能够设置Tags属性。到目前为止我已经尝试过:

我期望的是以下

但我反而得到了错误Project By: Next: The provided traverser of key "Tags" maps to nothing. 所以它看起来好像该Tags属性被完全删除了。如果我之后进行查询

我得到了预期的结果:

所以数据肯定是变了。如果我尝试不进行投影,则结果将包含新值。

导致:

但这让我无法预测结果。

我如何才能更新数据并对其进行投影?

我尝试过的其他事情:

  • barrier()在步骤之后添加drop()步骤,没有用
  • barrier()在步骤之后添加sideEffect()步骤,没有用
  • barrier()在步骤之前添加一个步骤project(),没有用
  • 与上述三个相同,但.fold().unfold()相反,没有用
  • project()将步骤替换为optional(g.V("1").project("Tags").by(values("Tags")))- 这一步通过重新获取顶点来工作,但成本很高。
0 投票
1 回答
105 浏览

gremlin - 使用 gremlin 遍历没有任何边的顶点

我的顶点有两个标签“用户”和“组”之一,边被标记为“包含”。“组”顶点可能指向“用户”顶点或其他“组”顶点。我使用以下查询来查找从组顶点开始的“用户”顶点。如果“组”顶点指向另一个“组”顶点,它会遍历该子“组”顶点以查找“用户”顶点。

现在我需要遍历不指向任何其他顶点的“组”顶点。在阅读了其他一些帖子后,我尝试了以下内容,但我得到了“Gremlin 查询编译错误:'P.not' 和 '__.not' 之间的歧义” 表达类似内容的正确方法是什么?

0 投票
1 回答
347 浏览

azure-cosmosdb - Azure 为存储在 CosmosDB 中的图形数据提供了可视化工具

是否有任何 Azure 提供的工具用于可视化存储在 Azure CosmosDB 中的图形数据?如果我对此进行搜索,我会得到需要购买的连接到 Azure CosmosDB 的第三方工具。Azure 本身或至少基于 Microsoft 的工具是否没有提供任何此类工具?

0 投票
1 回答
193 浏览

gremlin - 按边缘属性中的重合数对结果进行排序

我正在开发一个推荐其他用户的推荐系统。第一个结果应该是与“搜索者”用户最“相似”的用户。用户对问题的回答和以相同方式回答的问题的数量就是相似度。

问题是我不知道如何编写查询

因此,用技术术语来说,我需要按具有特定属性值的边数对用户进行排序,我尝试使用此查询,我认为它应该可以工作,但它不起作用:

抛出这个 gremlin 内部错误:

org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet 不能转换为 org.apache.tinkerpop.gremlin.structure.Vertex

我也为每个问题尝试了多个.by(),但结果不是按巧合程度排序的。

我该如何编写这个查询?

0 投票
1 回答
436 浏览

azure-cosmosdb - Azure Cosmos 是否有用于可视化和编辑的良好 GUI?

我正在寻找用于图形可视化和编辑我的 cosmos gremlin 图形的任何类型的 GUI。

提前致谢。