V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yangyaofei
V2EX  ›  问与答

上千万 xml 文件怎么储存比较好?

  •  
  •   yangyaofei · 2016-04-11 19:20:44 +08:00 via Android · 2387 次点击
    这是一个创建于 3177 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,我这儿有很多需要处理的 xml 文件,如果只是储存当然放在哪里就好了。但是我们以后要处理里面的数据,全是小文件会不会影响处理速度啊,放到数据库里面好不好呢?

    13 条回复    2016-04-12 21:21:34 +08:00
    ooonme
        1
    ooonme  
       2016-04-11 19:25:31 +08:00 via iPhone   ❤️ 1
    小文件容易 oom …可以参考 大数据中的 consalidate
    billlee
        2
    billlee  
       2016-04-11 19:48:03 +08:00
    转换成 JSON 存 mongodb
    嗯,这样就把我不熟悉的问题转化成一个已经解决的问题
    yangyaofei
        3
    yangyaofei  
    OP
       2016-04-11 21:09:48 +08:00
    @ooonme oom google 之后是 out of memory ..........虽说是小文件,一共也有上百个 G 的说...

    @billlee 构架上已经被用 mysql 了.......就算换构架也是几年之后的事情了.......
    yangqi
        4
    yangqi  
       2016-04-11 21:53:45 +08:00
    如果只是偶尔进行批量处理的话,就放文件系统就好了, Mysql 不适合直接存文件。
    billlee
        5
    billlee  
       2016-04-11 23:08:47 +08:00
    @yangyaofei 那就只能选适合一点的文件系统或目录结构了,像 ext4 的 dentry 是不能 scale 的,那就必须预估好数量,建多级子目录来手工构建查找树
    或者用 key-value 数据库?把整个 xml 当成 value 来存?
    ipconfiger
        6
    ipconfiger  
       2016-04-11 23:10:38 +08:00
    有专门的文件系统的吧,记得是 Mogilefs
    fractal314
        7
    fractal314  
       2016-04-11 23:36:31 +08:00 via Android
    我认为小文件还是存到数据库比较方便一些。

    1000 万个文件 100g 大小,平均每个文件 10kB 。
    可以建 3000 张表,每张表存 3000 条数据。
    这样每张表大概 30m 大小, mysql 读取的速度会很快,数据备份转移的速度也会很方便。
    ooonme
        8
    ooonme  
       2016-04-12 00:05:29 +08:00 via iPhone
    我的意思是参考 consalidate 的思路,小文件进行合并
    yangyaofei
        9
    yangyaofei  
    OP
       2016-04-12 11:20:57 +08:00 via Android
    @yangqi 不是,是准备处理里面的信息
    yangyaofei
        10
    yangyaofei  
    OP
       2016-04-12 11:27:25 +08:00 via Android
    @billlee 哦,我还是怕的是小文件的读取的问题。文件目录路径已经存在数据库里面了。
    @ipconfiger 好,我去看看

    @fractal314 这个可以考虑, 谢谢。关键还是要一次批量处理其中的一大部分。而且可能处理很多次
    yangyaofei
        11
    yangyaofei  
    OP
       2016-04-12 11:27:45 +08:00 via Android
    @ooonme 哦哦,去看看
    msg7086
        12
    msg7086  
       2016-04-12 13:21:36 +08:00 via Android
    reiser4 专业处理小文件
    yangqi
        13
    yangqi  
       2016-04-12 21:21:34 +08:00
    @yangyaofei 如果就是一次性处理或者提取的话用时间长一点没什么问题吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2802 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 14:34 · PVG 22:34 · LAX 06:34 · JFK 09:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.