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

2016-04-11 19:20:44 +08:00
 yangyaofei

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

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

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

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

@fractal314 这个可以考虑, 谢谢。关键还是要一次批量处理其中的一大部分。而且可能处理很多次
yangyaofei
2016-04-12 11:27:45 +08:00
@ooonme 哦哦,去看看
msg7086
2016-04-12 13:21:36 +08:00
reiser4 专业处理小文件
yangqi
2016-04-12 21:21:34 +08:00
@yangyaofei 如果就是一次性处理或者提取的话用时间长一点没什么问题吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/270267

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX