对于20M +记录的云数据库的建议?

时间:2017-06-09 14:27:50

标签: mysql google-app-engine google-cloud-datastore google-bigquery amazon-dynamodb

我将运行一个只有很少表的应用程序,但是一个表大约是30-50K,另一个表是20-25M行,我需要做一些使用的查询多列上的一些LIKE子句以及列上的其他条件。

数据会每月刷新一次,因此只会读取,不会写入或更新。

谷歌的bigQuery在加入“喜欢”搜索和“排序依据”时证明不足,所以我处于恐慌之中。像这样的搜索实际上会抛出资源错误或执行数百秒:

SELECT
s.site as site,
s.rank as rank,
s.visitors as visitors,
s.store_id as store_id,
s.currency as currency,
p.title as title,
p.product_type as product_type,
p.handle as handle,
p.price as price,
p.created_at as created_at,
p.image_url as image_url,
p.description as description
FROM eComData.stores s INNER JOIN eComData.products p
ON s.store_id = p.store_id
WHERE (
    title like '%foo%'
    OR
    product_type like '%foo%'
    OR
    description like '%foo%'
)
ORDER BY rank
LIMIT 1000 OFFSET 0

您建议哪种云解决方案可以处理大型数据集,更重要的是,可以加快查询速度?

我的选择是 1)优化Google bigQuery以更快地运行(看起来不太好) 2)Google DataStore 3)亚马逊极光 4)Amazon DynamoDB

我想了解您对上述任何解决方案的体验,并期待您的建议。谢谢!

2 个答案:

答案 0 :(得分:0)

您的数据有20M行。它根本不是真正的大数据规模。

尝试aws redshift。它是用于存储结构化数据的aws本机数据仓库。它内置自动缩放功能,您可以线性扩展。

  • sreeni

答案 1 :(得分:0)

这似乎是迁移到 Amazon Redshift 的理想情况。

  • 我曾为迁移(编写)分析数据的公司工作过 在Redshift仓库上每天更多的20M +记录。 具有面向列的Redshift是写入优化的,确保 您有足够的资源来查询大型数据集。
  • 它的写作非常缓慢。但既然你应该阅读更多 比你写的(根据你的要求 - 在...中提到) 问题),这对你来说不是问题。
  • Redshift Official Documentation详尽而广泛 支持可通过互联网获得。
  • 缩放很容易。您可以根据自己的意愿添加/删除节点 要求。
  • 但是,如果你有另一个仓库,还有一些功能 对于非postgres不同。大约90%的东西保持不变这一点 不会是一个重大的行政问题。有一个功能/功能列表 Redshift不支持,也可以在他们的版本中使用 文档。
  • 如果你有一个仪表板工具,Redshift也表现良好 需要连接到数据源并定期刷新。