我们处理的公司每天向我们发送约900,000行CSV产品清单。
我希望将其存储在云中,其他人处理修补,管理等。底层引擎无关紧要(mysql,sql server,mongo couchdb等)。
但主要要求是有一些方法可以自动从CSV刷新和加载数据库,而无需每天执行900,000个INSERT语句或等效语句。与SQL Server一样,我们可以使用bcp,或者使用mySQL,我们可以使用mysqlimport。每天的列表变化如此之大,今天与昨天的差异是没有意义的。
每天只会查询400-500次而不是同时查询。只需一次性查询,每天约400-500次。但数据必须全部存在并每日更新。
有什么建议吗?我们正在研究mongohq,windows azure,xeround等等。
答案 0 :(得分:2)
如果每天只有4-500个查询,您是否可以控制它们何时发生?根据今天的标准,900,000行并不是很多。
如果是我,我只需将表加载到名为table_new的现有数据库中,然后一旦加载,我将原始表重命名为table_old,最后将table_new重命名为表。
您的切换时间最短,并且您没有等待表加载的停机时间。在加载时,原始表仍在播放中。最后,当它完成后,删除table_old。
如果您与重命名表有关系,那么最简单的解决方案就是将其删除以进行生产。让它们继续进行开发和测试,但只是努力确保关系始终保持一致,因此数据库不需要。没什么大不了的。
现代SQL数据库支持这一点,真的不能说其他人。
答案 1 :(得分:0)
您也可以尝试使用mongolab
答案 2 :(得分:0)
我会选择MongoDB。有很多MongoDB hosting options包括云服务 Mongo有一个批量导入工具mongoimport,可以直接从CSV文件加载数据。
根据记录的大小,将大约一分钟的时间导入到MongoDB中,然后再过一分钟左右,为查询创建必要的index。
要最大程度地减少停机时间,请导入新的集合products.import
,然后导入完成后,删除旧的products
集合并将products.import
重命名为products
。