GCP BigQuery 显示 "This script will process 2TB when run" 用于 "limit 10" 的简单查询

GCP BigQuery shows "This script will process 2TB when run" for a simple query with "limit 10"

当我 select 在 GCP BigQuery 中查询大分区 table 时,

select * from <myBQtable> limit 10;

我还没有点击“运行”按钮,它告诉我“这个脚本将在 运行 时处理 2TB。”

我想知道为什么“限制 10”的查询仍然会有这么大的成本。

LIMIT 不用于控制 BigQuery 中的成本。它只会减少显示结果所需的总时间。

因此对于 SELECT * FROM [table] LIMIT 10,查询将读取整个 table 但仅显示 10 行。

使用 BigQuery,您需要为扫描的数据量付费,而不是为获得的数据量付费。您有不同的方法来优化您使用 partitioning and clustering.

查询的数据量

而且,通过避免获取所有列 (select *),但仅选择相关列(BigQuery 具有面向列的存储,如果您不提及列,则您不会load/scan 它)。你有 guidelines to save cost in BigQuery