每日需要更新的900,000行数据库的最佳云托管数据库解决方案是什么?

3
我们处理的一个公司每天会向我们发送 ~90万 行产品清单的 CSV 文件。
我希望将其存储在云中,并由其他人来处理补丁、管理等。底层引擎无关紧要(如mysql,sql server,mongo couchdb等)。
但主要要求是有某种自动刷新和从CSV加载到数据库的方法,而不是每天进行 900,000 个INSERT语句或相当数量的操作。就像使用SQL Server时,我们可以使用bcp,或者使用MySQL时,我们可以使用 mysqlimport。清单每天更改非常频繁,因此比较今天和昨天的清单没有意义。
它每天只会被查询400-500次,而且不会同时进行。每天只需一次400-500次的查询。但所有数据都必须存在并每天更新。
有什么建议吗?我们正在研究mongohq、Windows Azure、xeround等平台。

2
根据您的描述,您想要托管式主机,而不一定是云主机。云数据库托管适用于某些情况,我不确定您的情况是否适合。 - Neil N
我意识到云的主要优势在于可伸缩性,但我们也想省钱。SQL Azure只需要每月10美元就可以获得1GB的数据库,而且微软会处理补丁等方面的事务。Amazon SimpleDB完全没有管理,但您需要根据实际使用计算小时数进行收费。如果网络延迟不是一个大问题,那么为什么不选择云解决方案呢? - Phil
3个回答

2
如果一天只有4-500个查询,你能控制它们发生的时间吗?在今天的标准下,90万行并不算很多。
如果是我,我会将表加载到现有数据库中,并将其命名为table_new,然后在加载完成后,将原始表重命名为table_old,最后将table_new重命名为table。
您的切换需要最少的时间,而且无需等待表格加载。在加载时,原始表仍在使用。最后,在所有操作完成后,删除table_old。
如果您与重命名表存在关系,则最简单的解决方案是在生产环境中将它们删除。保持它们在开发和测试中,并努力确保关系始终保持一致,以便数据库不必处理。没什么大不了的。
现代SQL数据库支持此功能,其他数据库还未知。

0
你也可以尝试使用mongolab。

0

我会选择MongoDB。有很多MongoDB托管选项,包括云服务。
Mongo有一个批量导入工具mongoimport,可以直接从CSV文件中加载数据。

根据记录的大小,将900,000行导入MongoDB大约需要一分钟,然后再花费一分钟左右创建必要的索引以供查询。

为了最小化停机时间,将数据导入到新的集合products.import中,然后在导入完成后删除旧的products集合并将products.import重命名为products


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接