gpt4 book ai didi

google-bigquery - 如何检查bigquery日分区是否为空

转载 作者:行者123 更新时间:2023-12-01 15:27:55 30 4
gpt4 key购买 nike

要检查表是否存在,我们可以使用此查询,它很便宜:

#legacySql
SELECT last_modified_time FROM {dataset}.__TABLES__ WHERE table_id='{table}'
LIMIT 1

是否有任何类似的廉价查询来检查分区是否为空?

据我了解,我可以在where子句中使用带有_PARTITIONTIME的select,但是无论limit子句如何,它都会最终处理分区中的所有数据(如果存在)。我必须检查是否存在许多分区,并且必须采用查询形式而不是API请求形式。

我的cronjobs可能运行多次,但是我只想在分区为空的情况下才将数据写入分区。

最佳答案

下面的查询价格便宜至$ 0,因此您可以安全地使用此方法识别任何分区中的行数

#standardSQL
SELECT _PARTITIONTIME AS pt, COUNT(1) cnt
FROM `yourproject.yourdataset.yourpartitionedtable`
GROUP BY pt
HAVING pt = TIMESTAMP('2016-12-11')

下面是另一个选项-如果分区为空,则实际上返回0,否则返回分区中的行数

#standardSQL
SELECT IFNULL((
SELECT COUNT(1) FROM `yourproject.yourdataset.yourpartitionedtable`
GROUP BY _PARTITIONTIME HAVING _PARTITIONTIME = TIMESTAMP('2016-11-11')
), 0) cnt

关于google-bigquery - 如何检查bigquery日分区是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47949296/

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