gpt4 book ai didi

mysql - 用于中型数据的 BigQuery 替代方案

转载 作者:IT老高 更新时间:2023-10-28 23:47:45 25 4
gpt4 key购买 nike

这是问题 Why doesn't BigQuery perform as well on small data sets 的后续内容。 .

假设我有一个大约 1M 行的数据集。在我们使用(mysql)的当前数据库中,聚合查询会运行得很慢,可能需要大约 10 秒左右的复杂聚合。在 BigQuery 上,所需的初始化时间可能使这个查询需要大约 3 秒,比在 mysql 中要好,但是如果我们需要在 1 秒或更短的时间内返回查询,则该工作的工具是错误的。

然后我的问题是,在对中等大小的数据集(例如 1-10M 行)进行聚合查询时,除了使用 BigQuery 之外,还有什么好的替代方法?一个示例查询可能是:

SELECT studio, territory, count(*)
FROM mytable
GROUP BY studio, territory
ORDER BY count(*) DESC

我想到的可能解决方案是 ElasticSearch ( https://github.com/NLPchina/elasticsearch-sql ) 和 Redshift (postgres 太慢)。在这里可以通过 SQL 查询的好选择是什么?

注意:我不是在寻找 why如何 BQ 应该被使用,我正在寻找查询可以在 10M 行以下的数据集的替代方案在约 1 秒内返回。

最佳答案

2020 年更新:查看 BigQuery BI Engine,它是仪表板查询的内置加速器:


如果您需要在不到一秒钟内得到答案,则需要考虑索引。

典型故事:

  1. MySQL(或此处推荐的任何其他数据库)速度很快,直到...
  2. 有一天,您的一些聚合查询开始运行缓慢。分钟、小时、天等。
  3. 第 2 步的典型解决方案是索引和预聚合。如果您希望在不到一秒的时间内回答特定类型的问题,则需要投入时间和优化周期来回答此类问题。
  4. BigQuery 的优点在于您可以跳过第 3 步。以最少的投资将那些分钟/小时/天缩短为秒 - 随时查询任何查询。

BigQuery 很棒,因为它给了你 4。但你要求的是 3,MySQL 很好,Elasticsearch 也很好,任何索引数据库都会在不到一秒的时间内为你带来结果 - 只要你投入时间针对特定类型的问题优化您的系统。然后,要在不投入任何优化时间的情况下获得任意问题的答案,请使用 BigQuery。

BigQuery:将在几秒钟内回答任意问题,无需任何准备。

MySQL 和替代方案:将在不到一秒内回答某些类型的问题,但需要开发时间才能实现。

关于mysql - 用于中型数据的 BigQuery 替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42729526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com