我想使用 Apache Cassandra 根据属性图模型存储大量图数据。该模型包含以下实体:
顶点和边都有一个唯一的主键,可以是字符串或整数值。
例子:
#A vertex
{node_type:'module',pk: 1,...}
#Another vertex
{node_type:'function',pk: 2,...}
#An edge
{incoming_vertex: 1,outgoing_vertex: 2,label: 'body',data : {}}
Run Code Online (Sandbox Code Playgroud)
我想在图表上执行以下类型的查询:
node_type = 'module'
和...获取所有顶点”)检索顶点列表。此外,我还有以下要求和边界条件:
我对数据模型的最初想法如下:
这是一个合理的数据模型吗?关于如何实现这一点的任何其他建议?
对于 Cassandra 上的图形数据库,请查看TitanDB:
您所需要的已经在 TitanDB 中实现了。实现自己的图形数据库并不简单,而且非常耗时。在大多数情况下,经过验证的解决方案是最好的。(顺便说一句,我没有参与 TitanDB 开发或业务。)我不知道你的用例,但我不认为有理由实施新的东西,除了作为一种爱好。
更新我在数据库中找到了一份关于 Titan GraphDB 数据模型的白皮书:https://github.com/thinkaurelius/titan/wiki/Titan-Data-Model。它给出了一些如何设计图形数据存储的提示。
Aurelius 现在也是 Datastax 的一部分,他们致力于开发在 Cassandra 中存储大图的组合解决方案。
归档时间: |
|
查看次数: |
6375 次 |
最近记录: |