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

这种简单结构的超大量数据如何选择、优化数据库?

  •  
  •   sphawkcn · 2018-03-27 10:06:41 +08:00 · 1960 次点击
    这是一个创建于 2428 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想做这么一个东西,用户在网页上批量提交 [文题] 或者 [ DOI ] 码,后台将用户提交的 [文题] 或者 [ DOI ] 码通过爬虫提交给相关网站检索,获取完整文献信息,再返回给用户,同时把数据保存到数据库,当数据库增大到一定程度的时候,就可以优先进行数据库检索,如果检索不到再用爬虫去抓取。感觉这个东西,有点像搜索引擎,只不过搜索结果是极规则的,而且是精确匹配的。

    这个数据库会随着使用时间越来越大(百亿级别也是有可能的),我总结了一下数据的特点如下:

    数据特点
    1、数据字段固定,分别为作者、文题、出版年份、卷数、期数、起止页码、DOI 码,7 个字段。
    2、被检索字段固定,用户只提交 [文题] 或者 [ DOI 码] ,如果匹配到则返回整条数据。
    3、每条数据存入数据库后基本不需要更新,但是会不断有新的数据加入。
    4、数据读取要求尽可能快,要尽快给用户呈现检索结果。但是新数据写入允许几个小时甚至几十个小时的延迟,同时写入也不要求完全可靠,允许丢失数据。因为丢失了下次仍然可以用爬虫爬取到。
    5、数据条数会随着使用时间累积逐步扩大,百亿级别也是有可能的。

    针对以上数据特点,我想请教各位大神的问题如下:
    1、如何选择、优化数据库才能保持最佳检索性能呢?
    2、对于类似问题,不知业界有无现成的成熟方案?
    3、对于这种简单数据,如果达到百亿级别,不知容量大概在什么级别? 10G ? 100G ? 1T ? 10T ?

    谢谢各位的鼎力相助!

    附一条包含 7 个字段的文献范例供参考:
    Basta G. Receptor for advanced glycation endproducts and atherosclerosis: from basic mechanisms to clinical implications[J]. Atherosclerosis,2008,196(1):9-21.DOI:*************
    第 1 条附言  ·  2018-03-27 15:19:52 +08:00
    谢谢各位大神的指点,看来大家一致推荐用 ES。
    8 条回复    2018-03-27 11:19:33 +08:00
    Immortal
        1
    Immortal  
       2018-03-27 10:11:45 +08:00
    上集群 es
    feverzsj
        2
    feverzsj  
       2018-03-27 10:24:06 +08:00
    分表
    polymerdg
        3
    polymerdg  
       2018-03-27 10:33:26 +08:00
    学术搜索?
    FiveDDD
        4
    FiveDDD  
       2018-03-27 10:41:28 +08:00
    这种用 es 似乎会更方便使用吧
    polymerdg
        5
    polymerdg  
       2018-03-27 10:48:02 +08:00
    100 亿 1bit 都是 快 10G 了
    Tyris
        6
    Tyris  
       2018-03-27 11:11:18 +08:00 via Android
    scihub ?
    ZSeptember
        7
    ZSeptember  
       2018-03-27 11:11:23 +08:00
    这个不就是一个简单的爬虫,加数据展示吗。
    现在主流的开源搜索方案就是 ES,这个量级肯定是没问题的。
    爬虫可以用 kafka 做异步写入
    owenliang
        8
    owenliang  
       2018-03-27 11:19:33 +08:00
    ES 检索,这种 文献类 - 全量 - 全文检索需要吃大量的内存和 CPU,做好心理准备。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1012 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:39 · PVG 05:39 · LAX 13:39 · JFK 16:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.