V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cleveryun
V2EX  ›  程序员

pubmed 这种很大的数据,要如何在程序中使用

  •  
  •   cleveryun ·
    Yakima-Teng · 244 天前 · 1264 次点击
    这是一个创建于 244 天前的主题,其中的信息可能已经有所发展或是发生改变。

    pubmed baseline 2023

    这是 pubmed 2023 年的 baseline 数据库(一堆 gz 格式的 XML 文件),我全部下载到本地后,光 gz 文件合起来就超过 40G 大小了,全部解压后估计要 500G 左右。我正式工作中一直是做前端的,这么大的数据量第一次碰到。

    请问如果我想做搜索和统计分析,应该如何处理呢?这种需要另外再转移到特定数据库里吗还是直接用文件系统到数据库(并发量不大,以读取为主,数据一年更新一次)。

    读取数据是读取完一部分之后清掉内存占用,接着读取下一部分的内容吗(内存肯定不够加载所有内容,假定只有 8G 内存)。

    有没有建议/思路可以参考。提前谢谢各位大佬。

    ——————

    追加更新:这种服务,购买服务器配置最低需要什么样才能正常使用,是不是要买那些 1T 硬盘的。

    13 条回复    2023-12-22 15:00:33 +08:00
    TheCure
        1
    TheCure  
       244 天前
    直接上 elasticsearch, 才 40G 有点大材小用. 直接 postgres 存问题也不大, 看你想怎么用了.
    不过我比较好奇拿 pubmed 数据来做什么, 可以交流下 很感兴趣
    TheCure
        2
    TheCure  
       244 天前
    ps: 500G postgres 只要配置够也问题不大
    cleveryun
        3
    cleveryun  
    OP
       244 天前
    @TheCure 自己以前是学药的,前段时间有个在日本做生物药这一块的销售的同学和我沟通说想做个基于 pubmed 的检索、统计分析站。加上老婆是搞生物医药研发的,做了自己也能用就答应有偿给做一个了。他主要是想基于这个服务,寻找一些目标用户。
    cleveryun
        4
    cleveryun  
    OP
       244 天前
    @TheCure 除了直接检索,就是比如相关通路、主流实验方法、相关基因、按引用关系来的重要作者/文献、相关文献的影响因子逐年变化趋势这类。
    dayeye2006199
        5
    dayeye2006199  
       244 天前
    40G 放 PG 里面,可能要做一下格式转换,XML 关系型数据库不认的,至少要 flatten 成表的格式。40G 的数据,加工和入库的方式,如你所说,流式处理,处理掉一批之后,再读入下一批。
    入库之后,取决于你想怎么检索,假设你要按照标题,摘要检索这类的,就对相应的字段简历全文检索 https://www.postgresql.org/docs/current/textsearch.html

    如果要按照时间之类的检索,记得也要对相应的字段加上索引。

    再复杂点,要做语义检索之类的,记得安装 pgvector 这种插件,对相应的字段调用 embedding 模型之后,存入 vector 类型。

    我也觉得 elastic 有点太复杂,pg 可能已经足够你使用了
    coffeesun
        6
    coffeesun  
       244 天前
    @cleveryun #4 这个数据是只有摘要的吧,用这个训练 AI ,也可以对研究有所帮助,之前的相互关联,新的领域方法等。如果有更多的全文数据会更好些。
    levelworm
        7
    levelworm  
       244 天前 via Android
    sqlite 就可以吧,500GB 不算很大啊。不过还是不清楚你的需求是什么,说的有些广泛了。
    cleveryun
        8
    cleveryun  
    OP
       244 天前
    @dayeye2006199 感谢细致回复。

    @coffeesun 对,是摘要。

    @levelworm 后端部分之前自己弄的都是些小东西,没遇到过这么大的,看了各位的回复,感觉这个好像也不算大。格局小了,哈哈。
    sdshiyan2005
        9
    sdshiyan2005  
       243 天前
    要是分析目标明确,建议逐个分析 xml 提取有效字段,然后只存储有用的分析部分。费劲把所有信息入库平常用不着也是浪费
    Jirajine
        10
    Jirajine  
       243 天前 via Android
    试试 meilisearch ,比 es 简单轻量。
    云服务器的话可以不用硬盘,单独购买托管的数据库服务就行。
    sickick
        11
    sickick  
       243 天前
    Tanbobby
        12
    Tanbobby  
       242 天前 via Android
    Pubmed 是有 API 的,直接调用即可分析。
    saveai
        13
    saveai  
       127 天前
    op ,请问你这个后来怎么做的呢?我们公司打算做个影响因子,排名相关的功能,不知道怎么入手。
    类似: https://www.storkapp.me/marketing/templates/Stork1/big.php
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2978 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:58 · PVG 20:58 · LAX 05:58 · JFK 08:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.