如题,我这儿有很多需要处理的 xml 文件,如果只是储存当然放在哪里就好了。但是我们以后要处理里面的数据,全是小文件会不会影响处理速度啊,放到数据库里面好不好呢?
1
ooonme 2016-04-11 19:25:31 +08:00 via iPhone 1
小文件容易 oom …可以参考 大数据中的 consalidate
|
2
billlee 2016-04-11 19:48:03 +08:00
转换成 JSON 存 mongodb
嗯,这样就把我不熟悉的问题转化成一个已经解决的问题 |
3
yangyaofei OP |
4
yangqi 2016-04-11 21:53:45 +08:00
如果只是偶尔进行批量处理的话,就放文件系统就好了, Mysql 不适合直接存文件。
|
5
billlee 2016-04-11 23:08:47 +08:00
@yangyaofei 那就只能选适合一点的文件系统或目录结构了,像 ext4 的 dentry 是不能 scale 的,那就必须预估好数量,建多级子目录来手工构建查找树
或者用 key-value 数据库?把整个 xml 当成 value 来存? |
6
ipconfiger 2016-04-11 23:10:38 +08:00
有专门的文件系统的吧,记得是 Mogilefs
|
7
fractal314 2016-04-11 23:36:31 +08:00 via Android
我认为小文件还是存到数据库比较方便一些。
1000 万个文件 100g 大小,平均每个文件 10kB 。 可以建 3000 张表,每张表存 3000 条数据。 这样每张表大概 30m 大小, mysql 读取的速度会很快,数据备份转移的速度也会很方便。 |
8
ooonme 2016-04-12 00:05:29 +08:00 via iPhone
我的意思是参考 consalidate 的思路,小文件进行合并
|
9
yangyaofei OP @yangqi 不是,是准备处理里面的信息
|
10
yangyaofei OP @billlee 哦,我还是怕的是小文件的读取的问题。文件目录路径已经存在数据库里面了。
@ipconfiger 好,我去看看 @fractal314 这个可以考虑, 谢谢。关键还是要一次批量处理其中的一大部分。而且可能处理很多次 |
11
yangyaofei OP @ooonme 哦哦,去看看
|
12
msg7086 2016-04-12 13:21:36 +08:00 via Android
reiser4 专业处理小文件
|
13
yangqi 2016-04-12 21:21:34 +08:00
@yangyaofei 如果就是一次性处理或者提取的话用时间长一点没什么问题吧
|