在工作中,我們希望我們的下一代產品基於圖形數據庫。我在尋找什麼數據庫引擎可能適合我們的新項目的建議:我正在尋找以Java/Python爲中心的組織的圖形數據庫
Out產品旨在跟蹤大量的商品價格。這是一個簡單的例子 - 假設你想估計英國的汽油價格 - 你知道汽油是從原油中提煉出來的。如果您在英國新增原油價格,您可以簡單地通過增加煉油,運輸(等)成本來估算任何價格。實際上情況更復雜,因爲有許多原油和數百種成品油的來源。石油產品的價格可能受到其他能源(如核能,風能,天然氣)和需求的影響。這有點複雜!
這個想法是我們想要將各種相關貨物及其煉油,運輸(等)成本建模爲一個無環有向圖。這個想法是,當某個事件導致價格發生變化時,我們希望能夠迅速確定哪些事情受到影響,並儘快重新計算這些價格。
本質上,我們需要一個數據庫,它可以將單個商品表示爲圖中的節點。每個節點將存儲許多與產品有關的信息曲線和表面。
我們想要將各種成本&變換(如精煉,運輸)表示爲邊上的標籤。與節點一樣,我們要存儲的信息可能相當複雜 - 不僅僅是單個值,還有曲線和曲面。
我們所做的計算都與對象的大小有關,但由於圖形可能非常大,我們需要能夠非常快地遍歷圖形。
我們是以Java和Python爲中心的 - 理想情況下,我們是在JVM上運行的產品之後,但對Python和Java都有非常好的API。我們不太關心其他語言......但.Net會很高興(儘管可能需要幾年時間才能完成某些工作)。
我們肯定會喜歡高性能的東西 - 但更重要的是系統需要具有一定程度的硬件容錯性。例如,我們希望將數據庫分佈在多個物理服務器上。如果任何一臺服務器出現故障,我們希望能夠不中斷地繼續運行。
哦,我們真的很懶。我們不想花太多時間編寫基礎架構 - 所以如果數據庫附帶的工具允許我們儘可能多地做這種事情,而且工作很少,那麼我們就可以做到。如果有一個與圖形數據庫相關的網格技術,這也是一個真正的好處,這樣我們就可以將一系列重新計算的工作推到一個計算網格上,並且我們的大部分計算都以並行方式完成。
所以,這是我們要建立的東西的描述。我想知道的是,是否有任何成熟的技術可以幫助我們實現這一目標。正如我之前提到的,我們偏好Python & JVM,但是如果技術真的很好,並且對Python + Java有很好的綁定,我們幾乎可以考慮任何東西。
什麼[Neo4j的(http://neo4j.org/)? – Thomas