memgraphdb:支持图形数据库中的时间旅行查询

时间:2018-11-17 17:01:17

标签: graph-databases memgraphdb

比方说,我想与销售人员建立图表关系。他们属于组织,有经理等。他们被分配到特定的地区和/或客户帐户。您的公司可能与必须管理的外部合作伙伴合作,依此类推。一个不错的,不平凡的图表。

该图中的元素一直在不断变化:销售人员来来往往,或在组织内移动,从而改变职责;客户签订合同或取消合同,...

在我的特定用例中,时间点非常重要。上个月底的图形看起来如何?上一个会计年度结束?上周一,当我们运行作业ABC时。例如。上个月的经理层级是什么?销售人员上个月底管理哪些客户?等等。

在我们的用例中,DELETE不会删除任何内容,但是会更新某种end_date。 UPDATE不会更新任何内容,但是会创建记录的新版本。

我确定可以将CREATED和START- / END_DATE属性添加到节点以及关系中,并且还可以创建查询。但是这些查询很难编写,而且几乎不可读,并且到处都有大量重复的where子句。

我希望图形数据库(及其图形查询生成器)能够让我更轻松地进行时间旅行,例如通过将会话变量设置为某个时间点,将为具有开始/结束日期属性的所有节点和引用自动添加所有where子句。对于不具有这些属性的对象,该算法应该不会失败,但要考虑满足的条件。

您对此用例有何看法,内存图对这些用例有何帮助?

非常感谢 于尔根

1 个答案:

答案 0 :(得分:1)

据我所知,没有任何图形数据库支持您直接询问的功能类型,尽管正如@buda指出的那样,您可以对时间序列数据进行建模和查询。我同意@buda的观点,即您希望这种方法的工作方式似乎未定义且非常特定于应用程序,因此我不希望这是任何数据库的功能。

我能想到的最接近这种支持的方法是使用启用了Tinkerpop的数据库以及PartitionStrategy或SubgraphStrategy创建仅需要时间的子图,然后对其进行查询。另一个选择是创建特定于域的语言,以最大程度地减少在查询中重复代码所需的时间。

PartitionStrategy

SubgraphStrategy

Domain Specific Languages