我正在寻找一种解决方案,它将托管几乎静态的200GB,结构化,干净的数据集,并在数据上提供JSON API,以便在Web应用程序中进行查询。
我的数据的每一行都是这样的,我有大约7亿行:
parent_org,org,spend,count,product_code,product_name,date
A31,A81001,1003223.2,14,QX0081,Rosiflora,2014-01-01
数据几乎完全是静态的 - 它每月更新一次。我想支持简单的聚合查询,例如:
我希望通过RESTful JSON API提供这些查询,以便我可以在Web应用程序中使用这些数据。
我不需要加入,我只有一张桌子。
我调查的解决方案:
我想知道上面是否有针对我的需求的通用解决方案。如果没有,我也非常感谢有关托管此数据和提供JSON API的最佳设置的任何建议。
更新:似乎BigQuery和Cloud SQL支持类似SQL的查询,但Cloud SQL可能不够大(请参阅注释)并且BigQuery很快就会变得昂贵,因为您需要付费查询,因此不适合公共Web应用程序。数据存储区具有良好的价值,但不进行聚合,因此我必须预先聚合并拥有多个表。
答案 0 :(得分:3)
Cloud SQL可能足以满足您的需求。它当然能够处理200GB,特别是如果你使用Cloud SQL Second Generation。
他们只是为什么像MySQL这样的传统数据库(云数据库使用的数据库)可能不够,如果您的查询非常复杂且没有索引。我建议您尝试使用Cloud SQL,如果性能不够,请尝试确保您有足够的索引(提示:使用EXPLAIN statement查看查询的执行方式)。
如果您的查询无法以有用的方式编制索引,或者您的查询非常密集,以至于无论索引编制如何,它们都很慢,您可能希望升级到BigQuery。 BigQuery是并行化的,因此它可以处理与您一样多的数据,但它没有针对实时使用进行优化,也不像Cloud SQL&#34那样召集会议。 ; MySQL在一个盒子里"。
答案 1 :(得分:1)
看看ElasticSearch。它是JSON,REST,云,分布式,快速聚合查询等等。它可能是也可能不是您正在寻找的东西。