Feiox
V2EX  ›  数据库

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

  •  3
     
  •   Feiox · Dec 2, 2015 · 3215 views
    This topic created in 3841 days ago, the information mentioned may be changed or developed.

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

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

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

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

    使用文件就容易了,直接按目录来
    比如 /data/2015/12/01/<sha1>.txt.gz
    sha1 直接计算文件的值

    然后数据库记录
    id, filename, datastamp, sha1, location

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

    现成的开源也有相应的方案,不过结构就复杂多了
    Andy1999
        16
    Andy1999  
       Dec 2, 2015 via iPhone
    redis 试试看
    zeinipiyan
        17
    zeinipiyan  
       Dec 2, 2015
    小说站?
    Muninn
        18
    Muninn  
       Dec 2, 2015
    需要用 sql 语句带 where 之类的去查 就用 greenplum

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

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

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

    我们的 Cassandra 也是自己建的集群,感觉在管理上面还算比较方便。 IO 上面也很不错~
    我们用的是比较强力的台式机, I7 + 32G mem
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1121 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 86ms · UTC 18:07 · PVG 02:07 · LAX 11:07 · JFK 14:07
    ♥ Do have faith in what you're doing.