【问题标题】:Limit the number of records BigQuery is required to scan for any given query?限制 BigQuery 扫描任何给定查询所需的记录数?
【发布时间】:2019-11-11 00:07:38
【问题描述】:

我已将一些大型表上传到 BigQuery,并且可以对它们运行查询。通过只扫描特定的所需列而不是SELECT *

,我成功地降低了成本

还有什么方法可以限制垂直扫描的数据。我可以看到使用LIMIT will not help:

将 LIMIT 子句应用于 SELECT * 查询不会影响读取的数据量。您需要为读取整个表中的所有字节付费

还有其他方法可以减少 BigQuery 针对给定查询扫描的记录数量吗?也许通过上传(并正确命名)许多较小的表而不是一个大表,或者通过特定的 BigQuery SQL?

如果相关,我的文件是镶木地板格式。

【问题讨论】:

    标签: google-cloud-platform google-bigquery


    【解决方案1】:

    检查 BigQuery 中的分区和集群。

    https://cloud.google.com/bigquery/docs/partitioned-tables

    https://cloud.google.com/bigquery/docs/clustered-tables(与 LIMIT 一起也能很好地降低成本)

    【讨论】:

      【解决方案2】:

      我认为这会有所帮助。

      两个基本操作是减少扫描的行数和减少扫描的列数。

      要减少行数,明显的方法是使用 LIMIT。如果您不能使用 LIMIT 减少行数,另一种方法是查看数据集中的某个模式。例如,如果您有日期列,则使用 BETWEEN运算符仅选择所需的数据。

      另一种方法是将数据放在单独的表中。它会限制您处理的数据量。但是在跨表运行查询时会有点棘手

      【讨论】:

        猜你喜欢
        • 2018-12-18
        • 1970-01-01
        • 1970-01-01
        • 2011-02-24
        • 1970-01-01
        • 1970-01-01
        • 2020-05-26
        • 1970-01-01
        • 2022-11-14
        相关资源
        最近更新 更多