Gremlin 中的字母数字排序

Alphanumeric sorting in Gremlin

我有一个数据库,正在尝试找到一种安全的方法将这些数据读入 XML 文件。阅读顶点不是问题。但是随着边缘的应用程序运行一段时间后进入 HeapSpace-Exception。

g.V().has(Timestamp)
.order()
.by(Timestamp, Order.asc)
.range(startIndex, endIndex)
.outE()
Data to be Taken eg. Label, Id, Properties
我使用顶点的时间戳作为排序的参考,以避免捕获重复。

但是因为有些verticies构成了所有outEdges中的最大值,所以程序会跑出heap。我的问题是我可以使用边的字母数字 ID(UUID) 对它们进行安全排序,还是有其他或更好的方法来达到目标​​。

像这样:

g.E().order().by(T.id, Order.asc).range(startIndex, endIndex)

T.id 对边进行排序会很好 属性 进行排序,但是问题与选择的 属性 无关,而是与绝对数量有关正在导出的边。与其他数据库一样,Neptune 必须检索所有边以便对它们进行排序。检索所有这些边缘是您 运行 堆外的原因。要解决此问题,您可以增加实例大小以为查询获取额外内存,或者以不同方式导出数据。如果您查看此实用程序 https://github.com/awslabs/amazon-neptune-tools/tree/master/neptune-export,您会看到当前推荐的最佳实践。此实用程序会将整个图形导出为 CSV 文件。在您的用例中,您可以使用此实用程序,然后将 CSV 转换为 XML 文档或修改代码以导出为 XML 文档。