我们有每天收集大量数据的应用程序。所以写操作更多,因此我的服务器速度慢了。所以我们计划使用MongoDB来收集数据,通过使用调度程序将数据导入SQL。
所以我的问题是如何从MongoDB中将大量数据导入SQL
任何建议请。像任何工具一样。
答案 0 :(得分:1)
我不知道任何工具,但我确定如果你谷歌它们就存在。
如果是我,在没有先验知识的情况下,我可以将数据导出到平面文件(.csv)并创建存储过程或SSIS包以将数据导入SQL。
Python可以选择在一夜之间自动化块中的导出,SQL可以处理导入和清理。
mongoexport --host yourhost --db yourdb --collection yourcollection --csv --out yourfile.csv --fields field1,field2,field3
这样做可以让你在遇到SSIS包之前定义结构。
另一种方式
这是完成所有馆藏的一个很好的例子。这是来自另一个answer。
out = `mongo #{DB_HOST}/#{DB_NAME} --eval "printjson(db.getCollectionNames())"`
collections = out.scan(/\".+\"/).map { |s| s.gsub('"', '') }
collections.each do |collection|
system "mongoexport --db #{DB_NAME} --collection #{collection} --host '#{DB_HOST}' --out #{collection}_dump"
end
答案 1 :(得分:0)
由于这个特殊原因,我们创建了MongoSluice。
我们的应用程序询问MongoDB集合并创建完整的深层架构。然后它将数据和元数据流式传输到任何RDBMS系统(Oracle,MySQL,Postgres,HP Vertica ......)。
您最终得到的是NoSQL作为SQL的表示。一个很大的用例是将非结构化数据导入分析数据库。 BI平台,尤其如此。
答案 2 :(得分:0)
您可以将用户链接的服务器连接到mongodb,以便查询您想要的任何内容。 当然在此之前你必须安装到MongoDB所需的驱动程序
EXEC sp_addlinkedserver @server='MongoDB',
@srvproduct='CData.Mongo DB.ODBC.Driver',
@provider='SQLNCLI10',
@datasrc='<Machine IP address>,1434',
@provstr='Network Library=DBMSSOCN;',
@catalog='CDataMongoDB';