在工作中,我们希望我们的下一代产品基于图形数据库。我正在寻找适合我们新项目的数据库引擎的建议:
Out产品旨在跟踪大量商品的价格。这里有一个简单的例子-假设你想要估计英国的汽油价格-你知道汽油是从原油中提炼出来的。如果你在英国新的原油价格,你可以简单地通过增加炼油,运输(等)成本来估计任何东西的价格。实际上,事情要复杂得多,因为原油和成百上千种成品油的来源很多。石油产品的价格可能会受到其他能源(如核能、风能、天然气)的可用性和需求的影响。这有点复杂!
我们的想法是,我们想要将各种相互关联的商品及其炼油、运输(等)成本建模为一个无环有向图。我们的想法是,当一个事件导致价格变化时,我们希望能够快速确定哪些类型的东西受到影响,并尽快重新计算这些价格。
从本质上讲,我们需要一个数据库,它可以将单个商品表示为图中的节点。每个节点将存储与产品相关的许多曲线和曲面信息。
我们希望将各种成本和转换(例如,炼油、运输)表示为边缘上的标签。与节点一样,我们要存储的信息可能非常复杂-不仅仅是单个值,还有曲线和曲面。
我们所做的计算都是关于对象大小的线性计算,但是由于图形可能非常大,我们需要能够非常快速地遍历图形。
我们是以Java和Python为中心的-理想情况下,我们追求的是一个在JVM上运行的产品,但同时拥有用于Python和Java的非常好的API。我们不太关心其他语言...但拥有.Net将是件好事(尽管我们可能还需要几年时间才能用它做点什么)。
我们肯定喜欢高性能的东西--但更重要的是,系统需要有一定程度的硬件容错。例如,我们希望将数据库分布在多个物理服务器上。在任何服务器宕机的情况下,我们希望能够在不中断的情况下继续。
哦,我们真的很懒。我们不想花太多的时间编写基础设施--所以如果数据库附带的工具允许我们尽可能多地做这类事情,而只需要很少的工作,这对我们来说是很好的。如果有与图形数据库相关的网格技术,这也将是一个真正的奖励,这样我们就可以将一系列重新计算的作业推送到计算网格上,并在并行中完成大部分计算。
所以,这就是我们想要构建的东西的描述。我想知道的是,有没有成熟的技术可以帮助我们做到这一点。正如我前面提到的,我们更喜欢Python和JVM,然而,如果技术真的很好,并且Python + Java的绑定很好,我们几乎可以考虑任何事情。
发布于 2011-10-06 21:40:37
Neo4J是我所知道的最成熟的graphDB --而且是java,它也具有python或REST的绑定。
https://stackoverflow.com/questions/7674895
复制相似问题