我想尝试使用MongoDB访问数百万行RAW数据(多个不同的文件)
如果我使用MySQL,我必须将这些RAW数据导入/转换为MySQL表,这非常耗时。
我的问题是,如果我使用MongoDB,是否必须将这些RAW数据导入/转换为MongoDB数据库集合? 如果我必须这样做,使用MongoDB有什么好处?节省时间的?
是否可以使用MongoDB直接访问RAW数据?
我有一个朋友使用MongoDB来访问apache日志文件(access_log)。但我不知道他是否将access_log文件中的数据转换为MongoDB或直接访问accesss_log文件。
我仍然对MongoDB的概念感到困惑
谢谢
答案 0 :(得分:2)
MongoDB是数据库,所以它真的是存储数据,而不是“原始文件”......
要“直接”访问您的文件,我想您需要将文件导入MongoDB(但这很简单。)
<强> GridFS的强>
MongoDB有一个名为GridFS的文件系统“用于在MongoDB中存储大文件的规范。”
默认情况下,MongoDB对文档有4mb的限制(如何在MongoDB中存储数据),因此GridFS旨在存储更大的文件。
例如,使用command line tools只需要一行来导入文件:
$ ./mongofiles put myfile.txt
或者您可以使用支持GridFS的many available drivers之一。
或者不要存储文件......
当然,如果您不想导入文件,只需将文件位置(文件名和路径)存储在任何数据库中。
然而,听起来好像你的朋友没有在MongoDB中存储apache日志文件,而是在MongoDB中存储日志(数据)...
更多信息
您可以在此处详细了解如何使用GridFS:http://learnmongo.com/posts/getting-started-with-mongodb-gridfs/