繁体   English   中英

带流缓冲区的列分区表上的BigQuery DML

[英]BigQuery DML on column partitioned tables with streaming buffer

据我了解,如果查询未触及流缓冲区中的任何记录,则UPDATE和DELETE 在具有流缓冲区的分区表上工作 否则,将报告以下错误:

UPDATE or DELETE statement over table project.dataset.table would affect rows in the streaming buffer, which is not supported

问题类似于讨论此问题 ,但问题与列分区表有关,而不与摄取时间分区表有关。

问题是,虽然摄取时间分区可以通过_PARTITIONTIME的条件忽略流缓冲区中的数据 ,但不适用于按列分区的表。 还有其他方法可以忽略DML语句中的流缓冲区数据吗?

目前,您只能使用旧版SQL来获取有关流缓冲区的信息。

像这样从流缓冲区中获取所有数据:

#legacySQL
select MIN(partitioned_tstamp) AS min_tstamp
       , MAX(partitioned_tstamp) AS max_tstamp
       , COUNT(1) AS lines
FROM [my_dataset_id.mystreaming_data_table$__UNPARTITIONED__] 

并获得表中所有分区的摘要,如下所示:

#legacySQL
SELECT * 
FROM [my_dataset_id.mystreaming_data_table$__PARTITIONS_SUMMARY__] 

我不知道为什么标准SQL尚不支持此功能,或者何时支持。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM