如何像调度程序一样将大数据从 MongoDB 导入 SQL Server
Posted
技术标签:
【中文标题】如何像调度程序一样将大数据从 MongoDB 导入 SQL Server【英文标题】:How can import Large data from MongoDB to SQL Server Like Schedulers 【发布时间】:2014-05-14 06:38:19 【问题描述】:我们有每天收集大量数据的应用程序。所以写操作更多,因此我的服务器变慢了。所以我们计划使用MongoDB来收集数据,通过使用调度器将数据导入SQL。
所以我的问题是如何将大量数据从 MongoDB 导入 SQL
请有任何建议。像任何工具等。
【问题讨论】:
【参考方案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
【讨论】:
【参考方案2】:我们为此创建了MongoSluice。
我们的应用程序询问一个 MongoDB 集合并创建一个完整、深入的模式。然后它将数据和元数据流式传输到任何 RDBMS 系统(Oracle、mysql、Postgres、HP Vertica...)。
您最终得到的是将您的 NoSQL 表示为 SQL。一个很大的用例是将非结构化数据输入分析数据库。 BI 平台,尤其是。
【讨论】:
欢迎来到 Stack Overflow!通常,链接到工具或库should be accompanied by usage notes or some sample code,或者如果可能的话两者都链接。【参考方案3】:您可以将服务器链接到 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';
【讨论】:
以上是关于如何像调度程序一样将大数据从 MongoDB 导入 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章
如何使用mongo-connector将数据从mongodb导入到apache solr