我迷上了使用Python和NetworkX来分析图形,因为我学到更多,我想使用越来越多的数据(猜测我正在变成一个数据迷:-).最终我认为我的NetworkX图形(存储为dict的dict)将超出我系统的内存.我知道我可能只是添加更多内存,但我想知道是否有办法将NetworkX与Hbase或类似解决方案集成?
我环顾四周,找不到任何东西,但我也找不到与允许简单的MySQL后端相关的任何东西.
这可能吗?是否存在允许连接到某种持久存储的任何东西?
谢谢!
更新:我记得在"社交网络分析初创公司"中看过这个主题,作者谈到了其他存储方法(包括hbase,s3等),但没有说明如何做到这一点或是否可行.
我有一个应用程序,它将关系信息存储在MySQL表中(contact_id,other_contact_id,strength,recorded_at).如果我需要做的就是显示联系人的关系,甚至生成两个联系人的共同联系人列表,这很好.
但现在我需要生成以下统计数据:'2011年1月强度为3或更高的双向连接总数是多少'或(假设每个联系人都是组的一部分)'哪个组的连接数最多?到其他团体等
我很快发现用于生成这些统计数据的SQL变得非常难以实现.
所以我写了一个脚本,对于任何给定的日期,它将在内存中生成一个图形.然后,我可以根据该图表运行我想要的任何统计数据.更容易理解,总的来说,性能更高 - 除了生成图形部分.
我的下一个想法是缓存这些图,这样我就可以在需要运行新的统计数据时调用它们(或生成后面的图形:例如,对于今天的图表,我采用昨天的图表并应用自昨天以来发生的任何更改).我尝试了memcached,它工作得很好,直到图形增长> 1 MB.
所以现在我正在考虑使用像Neo4J这样的图形数据库.
唯一的问题是,我没有一个图表.或者我这样做,但它随着时间的推移而变化,我需要能够以不同的参考时间查询它.
那么,我可以:
要么
我是图形数据库的新手,所以任何帮助/指针/提示都将受到赞赏.
我是图表的新手,非常有趣.这个问题可能是noob one,但请提供一些好材料.
我正在尝试创建一个小型社交网络,其中每个用户都是一个节点,并且与他的朋友有无向连接.
它工作正常但现在我想将它存储在数据库中.
如何存储数据?如何存储节点的所有连接节点(指针).
它是更好地删除用户后的存储注销,当他在登录或登录应该在和退出shouldnot有节点上的任何影响,从数据库中读取吗?
我知道它的理论.任何参考都会非常有用.