我有一个 Dataflow 管道,它从 PubSub Lite 读取消息并将数据流式传输到 BigQuery 表中。该表按天分区。查询表时:
SELECT * FROM `my-project.my-dataset.my-table` WHERE DATE(timestamp) = "2021-10-14"
BigQuery UI 告诉我This query will process 1.9 GB when run
。但是当实际运行查询时,我没有得到任何结果。我的管道现在运行了一整周,过去两天我得到了相同的结果。然而,2021-10-11
在那之前的几天里,我看到了实际的结果。
我目前正在使用 Apache Beam 2.26 版,我的数据流编写器如下所示:
return BigQueryIO.<Event>write()
.withSchema(createTableSchema())
.withFormatFunction(event -> createTableRow(event))
.withCreateDisposition(CreateDisposition.CREATE_NEVER)
.withWriteDisposition(WriteDisposition.WRITE_APPEND)
.withTimePartitioning(new TimePartitioning().setType("DAY").setField("timestamp"))
.to(TABLE);
为什么 BigQuery 将值提交到分区需要这么长时间,但同时告诉我实际上有可用数据?
编辑1: