首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GCP BigQuery -限制但全表读取.如何将查询数据限制在最小

GCP BigQuery -限制但全表读取.如何将查询数据限制在最小
EN

Stack Overflow用户
提问于 2020-11-10 09:20:35
回答 3查看 1.3K关注 0票数 0

看起来,LIMIT对处理/查询的数据量没有任何影响(如果您信任UI)。

代码语言:javascript
复制
SELECT
  * --count(*)
FROM
  `bigquery-public-data.github_repos.commits`
-- LIMIT   20

如何将查询的数据量限制在最小(即使可能总是需要一个完整的分区)

  • 不使用“预览”或类似的
  • 不知道数据的分区/聚类

如何在执行查询之前检查实际的大致金额?

在执行细节中,只查询了163514行作为输入(不是244928379行)。

EN

回答 3

Stack Overflow用户

发布于 2020-11-10 16:08:44

您为加载到员工中的数据量支付费用。当然,您在请求中什么也不做,您要求获得20个第一个结果,查询提前停止,所有数据都没有处理,但至少加载了。你会为此付出代价的!

看看这个。我也有类似的要求

现在,让我们去看看原木

总字节计费为800 is。

所以,当您使用BigQuery时,您必须有不同的想法,它是分析数据库,而不是用来执行小请求的(启动太慢了,由于工作人员的热身,延迟至少有500 is )。

我的表包含行的3M+,并且只有10%已被处理。

您需要支付预订和负载成本(移动数据有成本,预留时隙也有成本)。

这就是为什么在Google BigQuery上有很多省钱的窍门。前BigQuery发展倡导者的几个例子

票数 0
EN

Stack Overflow用户

发布于 2020-11-10 16:37:23

如果您想限制BQ用于查询的数据量,您可以使用以下两个选项:

  • 表分区大查询可以使用您提供的Date/Datetime/Timemestamp列或插入日期(如果表上有定期更新的话)对数据进行分区。 为此,必须在DDL中指定分区策略: 按txdate创建表mydataset.mytable (foo: int64,txdate:date)分区
  • 通配符表(类似于将数据分割成多个表) 当您的数据包含有关不同域(地理位置、客户类型等)的信息时,这种方法就会奏效。或者消息来源。您可以使用类似的模式创建“子表”或“碎片”,而不是拥有一个大表(通常人们使用相同的表)。例如,欧洲数据的dateset.tablename.eur和来自日本的数据的dataset.tablename.jap。 您可以直接查询其中一个表select col1,col2... from dataset.tablename.custromer_eur;,也可以从所有表select col1,col2 from 'dataset.tablename.*'查询 通配符表也可以按日期进行分区。
票数 0
EN

Stack Overflow用户

发布于 2021-12-10 11:30:46

从2021年12月起,我注意到select * from限制,不会扫描整个表,您只需支付一小部分行的费用,显然,如果您添加order,它将扫描所有数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64766019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档