数亿条key-value对,每个value大概是20k~50k的json字符串,求分布式存储方案!

2013-05-22 22:08:02 +08:00
 webflier
不考虑mongodb,mongodb的disk footprint太大,太占硬盘空间。
hbase是不是一个好方案?没用过,稍微浏览了下文档,感觉配置起来有点复杂。
redis做集群,合适吗?
或者整一个分布式文件系统,直接存成文件?
大神们,求破!
2155 次点击
所在节点    数据库
22 条回复
Livid
2013-05-22 22:12:11 +08:00
Riak
Cadina
2013-05-22 22:12:46 +08:00
这要看你查询的需求了啊
Livid
2013-05-22 22:13:12 +08:00
HBase 的问题是,这些数据你打算用什么编程语言来存取?

HBase 的 first-class 编程语言是 Java。
plprapper
2013-05-22 22:14:40 +08:00
把value做序列化处理 然后再看看大小呢?
webflier
2013-05-22 22:22:30 +08:00
@Livid 工作语言c#, mono平台,Riak感觉水很深啊,刚出来的东西,你对Riak有很好的体验不?

@Cadina 查询的话,基本就是根据key值random access
Livid
2013-05-22 22:23:45 +08:00
@webflier Riak 出来的时间不短了,是一个靠谱的分布式 KV 数据库。你可能需要花一些时间研究它的部署,但是一旦熟悉了,这个东西还是很可靠的。
webflier
2013-05-22 22:24:43 +08:00
@plprapper 如果size变小的话,5~10k,有什么好建议?
swulling
2013-05-22 22:27:58 +08:00
你这个才T级别的数据,不必太在乎硬盘空间吧。
austin
2013-05-22 22:55:52 +08:00
应该视你数据的读取频率、改写频率、数据一致性要等需求不同,而最终方案不同。
如果读取频率很小,自己搞一个hash算法,存文件或直接存mysql都可以。
如果读取的很频繁,而且是乱序的,放redis里面是一个好方案。也是自己hash分到多个redis实例即可。
davepkxxx
2013-05-22 22:58:01 +08:00
memcache或着membase
llbgurs
2013-05-22 23:03:44 +08:00
couchbase
oldgun
2013-05-22 23:11:11 +08:00
你这个其实Berkeley DB就可了,可能插入性能需要看看。
Los
2013-05-23 00:37:51 +08:00
插个内容,Hbase 支持 REST 方式进行操作
http://wiki.apache.org/hadoop/Hbase/Stargate
当然,有更好的另一种操作方式是通过 Thrift 连接 Hbase,能够支持常见的开发语言,包括c#,java,python,php,ruby 等等
http://wiki.apache.org/hadoop/Hbase/ThriftApi
Frannk
2013-05-23 00:56:43 +08:00
Mysql 分库分表 存blob
Ricepig
2013-05-23 01:28:24 +08:00
column based database就好了,列数据压缩,效率比较高
aisk
2013-05-23 01:34:35 +08:00
LevelDB也可以。或者楼主可以按文件名做hash到不同机器,然后机器里再按hash分布到多层的目录里。
webflier
2013-05-23 09:51:39 +08:00
@aisk
@Ricepig
@Frannk
@Los
@oldgun
@llbgurs
@davepkxxx
@austin
@swulling
@Livid
@plprapper
@Cadina
谢谢大家,打算用Riak + leveldb backend试试!
wuxqing
2013-05-23 14:51:27 +08:00
Twemproxy + redis 应该也可以的
Twemproxy:https://github.com/twitter/twemproxy
clowwindy
2013-05-23 14:56:04 +08:00
@Livid HBase 有 HTTP 和 thrift 接口,我们之前用过 tornado + REST HBase
不过 HBase 的运维成本非常高。
Frannk
2013-05-23 15:27:35 +08:00
@webflier 记得回来谈谈效果。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/69839

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX