V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Feiox
V2EX  ›  数据库

大家一般用什么数据库作为数据仓库( 200+TB 级别)

  •  3
     
  •   Feiox · 2015-12-02 12:24:46 +08:00 · 2536 次点击
    这是一个创建于 3271 天前的主题,其中的信息可能已经有所发展或是发生改变。

    功能很简单,存储大量纯文本数据( zip 压缩率能到 30%),并可以通过 ID 去查找的目标数据, 3 秒之内读出即可。自建集群,需要进行不太严格的备灾。
    但是,数百 TB 还在每天好多 G 的往上涨。。。
    那么,该选用什么什么数据库比较好呢?
    MongoDB 3 中的 WiredTiger ? Hbase ?还是什么?

    21 条回复    2015-12-03 11:09:08 +08:00
    northisland
        1
    northisland  
       2015-12-02 12:32:34 +08:00
    关注=_=
    yinheli
        2
    yinheli  
       2015-12-02 12:34:19 +08:00
    我也有类似你这样的需求. 不过数据量大概是你的 80% 的样子... 也在考虑 mongodb

    同关注
    lhbc
        3
    lhbc  
       2015-12-02 12:41:03 +08:00   ❤️ 2
    直接存文件,然后数据库记录存储路径
    存储层可以采用分层存储,冷数据丢 7200rpm 的硬盘上,热数据在 SSD 上,更热的在内存里
    文件的存储和灾备,比几百 TB 的数据库要易维护得多
    dong3580
        4
    dong3580  
       2015-12-02 13:11:32 +08:00
    @yinheli
    这么多,还要 3s 之内的,上 mongodb 可不是一般的豪吧。

    @lhbc
    可行,
    c4pt0r
        5
    c4pt0r  
       2015-12-02 13:25:14 +08:00
    HBase + TiDB
    Feiox
        6
    Feiox  
    OP
       2015-12-02 13:29:49 +08:00
    @lhbc @dong3580 可是这么多数据,如何处理自动压缩、备份的这些杂事呢 ~
    abelyao
        7
    abelyao  
       2015-12-02 13:32:14 +08:00 via iPhone
    好奇什么数据 200TB 之前却没有一个在用的方案…?
    Feiox
        8
    Feiox  
    OP
       2015-12-02 13:34:25 +08:00
    @c4pt0r 项目很赞。。。。。不过,公司用的不敢上 alpha 版啊 ~
    jackysc
        9
    jackysc  
       2015-12-02 13:39:11 +08:00
    要不楼主关注一下 greenplum? 最近开源了 可以压缩+列存储
    knktc
        10
    knktc  
       2015-12-02 13:40:16 +08:00
    那就直接用 HBase 试试吧,建表时开启压缩
    Orzzzz
        11
    Orzzzz  
       2015-12-02 13:43:06 +08:00
    如果数据是社工库的话那就好玩了~
    wy315700
        12
    wy315700  
       2015-12-02 13:44:52 +08:00
    drill
    msg7086
        13
    msg7086  
       2015-12-02 13:59:42 +08:00
    GlusterFS 直接丢文件系统呢?文件直接拿 xz 或者 gz 或者 lzma 搞一搞?
    likuku
        14
    likuku  
       2015-12-02 14:04:04 +08:00
    @Feiox 压缩保存? ZFS 开启 lz4 压缩开关就很好了,对于内容重复性高,文本文件,压缩率很高,使用上完全透明,性能下降?几乎觉察不到。甚至在读大型单个文件时,比不开压缩的还要快(读取压缩数据+解压 耗时少于 直接读取巨大原始文件)
    lhbc
        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

    这样处理起来多方便,备份也简单

    现成的开源也有相应的方案,不过结构就复杂多了
    Andy1999
        16
    Andy1999  
       2015-12-02 14:20:07 +08:00 via iPhone
    redis 试试看
    zeinipiyan
        17
    zeinipiyan  
       2015-12-02 14:52:30 +08:00
    小说站?
    Muninn
        18
    Muninn  
       2015-12-02 16:13:17 +08:00
    需要用 sql 语句带 where 之类的去查 就用 greenplum

    要是只是通过 id 查 上边说的用文件就可以了
    RangerWolf
        19
    RangerWolf  
       2015-12-03 08:07:38 +08:00
    Cassandra + Spark 还可以~
    Cassandra 建表的时候直接使用 id 作为主键~ 返回时间估计连 1s 都不用

    MongoDb 之前我们也考虑过,不过听旁边的组说有丢数据的现象,不过也没确认是 MongoDB 的错
    Feiox
        20
    Feiox  
    OP
       2015-12-03 09:37:26 +08:00
    @RangerWolf 那压缩率呢?不用文件系统主要是觉得很多都需要自己手动配置。。。
    MongoDB 。。。呃,为什么这么多年过去了,他还在背负着这个名声。。。
    RangerWolf
        21
    RangerWolf  
       2015-12-03 11:09:08 +08:00
    @RangerWolf 我们存储的时候 并没有压缩数据, 以前做其他项目是在 app 层面对数据进行压缩。 比如就用 java 的 Gzip 来进行压缩与解压。

    不过 Cassandra 有自己的压缩文件、减少存储空间的策略~

    我们的 Cassandra 也是自己建的集群,感觉在管理上面还算比较方便。 IO 上面也很不错~
    我们用的是比较强力的台式机, I7 + 32G mem
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3425 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 10:38 · PVG 18:38 · LAX 02:38 · JFK 05:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.