调试AWS Neptune的gremlin问题



我发送了一个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)。

谢谢你的说明。顺便说一句,海王星还没有达到3.5.0的TinkerPop水平,所以客户端和服务器之间总是有不匹配的可能性。审计日志只显示收到的查询。它不反映运行查询的结果。当我调试像这样的问题时,我经常创建一个文本版本的查询(节点客户端有一个翻译器可以为你做这件事),并使用海王星REST API首先检查/explain计划-你也可以使用%%gremlin explain从海王星笔记本中生成。如果在解释计划中没有明显的显示,我通常会尝试运行查询的文本版本,看看是否有任何显示—以排除客户端驱动程序。我有时也会在TinkerGraph上运行我的查询,看看问题是否像海王星没有返回最好的错误信息那样简单。如果文本查询应该工作,将Node.js Gremlin客户端驱动程序更改为3.4.11值得一试。

更新了一个链接到Gremlin翻译器的文档。

https://tinkerpop.apache.org/docs/current/reference/翻译

最新更新