1

我想尝试使用 MongoDB 访问数百万行 RAW 数据(多个不同的文件)

如果我使用 MySQL,我必须将这些 RAW 数据导入/转换为 MySQL 表,这非常耗时。

我的问题是,如果我使用 MongoDB,我是否必须将这些 RAW 数据导入/转换为 MongoDB 数据库集合?如果我必须这样做,使用 MongoDB 有什么好处?节省时间?

是否可以使用 MongoDB 直接访问 RAW 数据?

我有一个朋友使用 MongoDB 访问 apache 日志文件 (access_log)。但是不知道他是把access_log文件中的数据转成MongoDB还是直接访问accesss_log文件。

我仍然对 MongoDB 的概念感到困惑

谢谢你

4

1 回答 1

2

MongoDB 是数据库,所以它的设计目的是存储数据,而不是“原始文件”......

要“直接”访问您的文件,是的,我想您需要将文件导入MongoDB(但这很容易。)

网格文件系统

MongoDB 有一个称为GridFS的文件系统, “一种在 MongoDB 中存储大文件的规范”。

默认情况下,MongoDB 对文档(如何在 MongoDB 中存储数据)有 4mb 的限制,因此 GridFS 旨在存储更大的文件。

例如,使用命令行工具只需一行即可导入文件:

$ ./mongofiles put myfile.txt

或者,您可以使用支持 GridFS的众多可用驱动程序之一。

或者不要存储文件...

如果您不想导入文件,您当然可以将文件位置(文件名和路径)存储在任何数据库中。

但是,听起来您的朋友没有将 apache 日志文件存储在 MongoDB 中,而是将日志(数据)本身存储在 MongoDB 中......

更多信息

您可以在此处了解有关如何使用 GridFS 的更多信息:http: //learnmongo.com/posts/getting-started-with-mongodb-gridfs/

于 2010-12-18T08:43:41.200 回答