【发布时间】:2021-11-02 15:28:08
【问题描述】:
假设我有一个我无法控制的任意 Gremlin 查询作为输入,以及我运行它的图形数据库,我如何捕获图中所有访问节点的路径,例如,我如何查看任意查询需要图表的某些部分?
澄清: 如果我任意运行,如何在查询运行时捕获所有访问的数据,不仅是结果,还包括查询期间访问的所有数据。
【问题讨论】:
标签: gremlin
假设我有一个我无法控制的任意 Gremlin 查询作为输入,以及我运行它的图形数据库,我如何捕获图中所有访问节点的路径,例如,我如何查看任意查询需要图表的某些部分?
澄清: 如果我任意运行,如何在查询运行时捕获所有访问的数据,不仅是结果,还包括查询期间访问的所有数据。
【问题讨论】:
标签: gremlin
不同的数据库可能已经解释了计划选项,这些选项可以让您深入了解查询将如何运行,但真正了解 Gremlin 查询需要在图中访问什么的唯一方法是运行它。如果您知道图表的架构,您可能会编写一些代码来分析查询,以查看用于估计查询将触及什么的各种步骤和标签,但我不知道有任何现有的工具可以做到这一点。
【讨论】:
path 步骤将返回所有被触及的内容,但实际上它完全取决于查询。例如,如果查询是g.V().out().out(),它将只返回最终顶点,但g.V().out().out().path() 将返回访问过的每个顶点。但是对于像g.V().out().out().count() 这样的查询,这个技巧是行不通的。