使用 AWS Neptune 调试 gremlin 问题

Debugging gremlin problems with AWS Neptune

我发送了一个 gremlin 语句,但由于以下错误而失败:

{"code":"InternalFailureException","requestId":"d924c667-2c48-4a7e-a288-6f23bac6283a","detailedMessage":"null: .property(Cardinality, , String)"} (599) 

我已经在集群端启用了审核日志,但是尽管我看到了请求,但那里没有任何错误指示。
是否有任何技术可以使用 AWS Neptune 调试此类问题?

由于 gremlin 是动态构建的,并通过数千次操作构建复杂的图形,我正在寻找一些方法来更好地理解错误所在。
在一种情况下,有效载荷太大,在另一种情况下,gremlin 字节码失败,尽管它在本地 Tinkerpop 服务器上运行良好。
但是对于一般的内部故障异常,很难查明问题所在。

我正在使用 Node.js gremlin 包 (3.5.0)。

感谢您的澄清。作为旁注,Neptune 尚未达到 3.5.0 TinkerPop 级别,因此客户端和服务器之间始终存在不匹配的可能性。审核日志仅显示收到的查询。它不反映 运行ning 查询的结果。当我调试像这样的问题时,我经常创建查询的文本版本(节点客户端有一个可以为你做的翻译)并使用 Neptune REST API 首先检查 /explain 计划 - 您还可以使用 %%gremlin explain 从 Neptune 笔记本生成该计划。如果解释计划中没有明显显示,我通常会尝试 运行 查询的文本版本以查看是否显示任何内容 - 以排除客户端驱动程序。有时我也 运行 我对 TinkerGraph 的查询只是为了看看问题是否像 Neptune 一样简单,没有返回它可能的最佳错误消息。如果文本查询应该工作,将 Node.js Gremlin 客户端驱动程序更改为 3.4.11 值得尝试。

已更新以在 Gremlin 转换器的文档中添加 link。

https://tinkerpop.apache.org/docs/current/reference/#translators