微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

BigQuery“查询待处理”步骤超时

如何解决BigQuery“查询待处理”步骤超时

伙计们。在我们的项目中,我们有一个包含 hive 分区数据 (https://cloud.google.com/bigquery/docs/hive-partitioned-queries-gcs) 的存储桶。我们使用文档中描述的分区键:dt=yyyy-MM-dd。例如。我们的文件看起来像:gs://ourbucket/ourprefix/dt=yyyy-MM-dd。基于此,我构建了使用此配置单元分区的外部 BigQuery 表,我的 Hive Partitioning Source URI Prefixgs:///gs://ourbucket/ourprefix/{dt:DATE}。我注意到了奇怪的行为。如果我的外部表的源 URI(s) 覆盖了存储桶 (Source URI:gs://ourbucket/ourprefix/*) 中存在的所有文件,我会在 SELECT 1 FROM ourdataset.ourexternal_table where dt='2020-12-20' 的执行过程中获得超时。在 Query pending 步骤期间出现超时。但是如果源 URI(s) 覆盖例如一周或两周执行相同的 sql 查询而不会超时。源 URI 覆盖的文件越少,执行 Query pending 步骤的时间就越短。

我很好奇,如果我直接设置分区键 (Query pending),为什么 dt='2020-12-20' 步骤与存储桶中的 hive 分区文件数量有关?我想它不应该查找存储桶中的所有文件,这正是 hive 分区的重点。另一个有趣的事情是所有情况下的计费字节数都是相同的。

有人可以解释一下发生了什么以及如何避免超时吗?谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。