功能很简单,存储大量纯文本数据( zip 压缩率能到 30%),并可以通过 ID 去查找的目标数据, 3 秒之内读出即可。自建集群,需要进行不太严格的备灾。
但是,数百 TB 还在每天好多 G 的往上涨。。。
那么,该选用什么什么数据库比较好呢?
MongoDB 3 中的 WiredTiger ? Hbase ?还是什么?
1
northisland 2015-12-02 12:32:34 +08:00
关注=_=
|
2
yinheli 2015-12-02 12:34:19 +08:00
我也有类似你这样的需求. 不过数据量大概是你的 80% 的样子... 也在考虑 mongodb
同关注 |
3
lhbc 2015-12-02 12:41:03 +08:00 2
直接存文件,然后数据库记录存储路径
存储层可以采用分层存储,冷数据丢 7200rpm 的硬盘上,热数据在 SSD 上,更热的在内存里 文件的存储和灾备,比几百 TB 的数据库要易维护得多 |
5
c4pt0r 2015-12-02 13:25:14 +08:00
HBase + TiDB
|
7
abelyao 2015-12-02 13:32:14 +08:00 via iPhone
好奇什么数据 200TB 之前却没有一个在用的方案…?
|
9
jackysc 2015-12-02 13:39:11 +08:00
要不楼主关注一下 greenplum? 最近开源了 可以压缩+列存储
|
10
knktc 2015-12-02 13:40:16 +08:00
那就直接用 HBase 试试吧,建表时开启压缩
|
11
Orzzzz 2015-12-02 13:43:06 +08:00
如果数据是社工库的话那就好玩了~
|
12
wy315700 2015-12-02 13:44:52 +08:00
drill
|
13
msg7086 2015-12-02 13:59:42 +08:00
GlusterFS 直接丢文件系统呢?文件直接拿 xz 或者 gz 或者 lzma 搞一搞?
|
14
likuku 2015-12-02 14:04:04 +08:00
@Feiox 压缩保存? ZFS 开启 lz4 压缩开关就很好了,对于内容重复性高,文本文件,压缩率很高,使用上完全透明,性能下降?几乎觉察不到。甚至在读大型单个文件时,比不开压缩的还要快(读取压缩数据+解压 耗时少于 直接读取巨大原始文件)
|
15
lhbc 2015-12-02 14:12:06 +08:00
@Feiox 压缩你可以在存储的时候直接压好再写入磁盘, gz 的计算量不大
比如 a.txt ,直接压缩保存为 a.txt.gz 使用文件就容易了,直接按目录来 比如 /data/2015/12/01/<sha1>.txt.gz sha1 直接计算文件的值 然后数据库记录 id, filename, datastamp, sha1, location 这样处理起来多方便,备份也简单 现成的开源也有相应的方案,不过结构就复杂多了 |
16
Andy1999 2015-12-02 14:20:07 +08:00 via iPhone
redis 试试看
|
17
zeinipiyan 2015-12-02 14:52:30 +08:00
小说站?
|
18
Muninn 2015-12-02 16:13:17 +08:00
需要用 sql 语句带 where 之类的去查 就用 greenplum
要是只是通过 id 查 上边说的用文件就可以了 |
19
RangerWolf 2015-12-03 08:07:38 +08:00
Cassandra + Spark 还可以~
Cassandra 建表的时候直接使用 id 作为主键~ 返回时间估计连 1s 都不用 MongoDb 之前我们也考虑过,不过听旁边的组说有丢数据的现象,不过也没确认是 MongoDB 的错 |
20
Feiox OP @RangerWolf 那压缩率呢?不用文件系统主要是觉得很多都需要自己手动配置。。。
MongoDB 。。。呃,为什么这么多年过去了,他还在背负着这个名声。。。 |
21
RangerWolf 2015-12-03 11:09:08 +08:00
@RangerWolf 我们存储的时候 并没有压缩数据, 以前做其他项目是在 app 层面对数据进行压缩。 比如就用 java 的 Gzip 来进行压缩与解压。
不过 Cassandra 有自己的压缩文件、减少存储空间的策略~ 我们的 Cassandra 也是自己建的集群,感觉在管理上面还算比较方便。 IO 上面也很不错~ 我们用的是比较强力的台式机, I7 + 32G mem |