BigQueryIO.write()使用SQL函数



我有一个数据流流作业。我正在使用BigqueryIO。write库将行插入到BigQuery表中。BQ表中有一个列,用来存储行创建时间戳。我需要使用SQL函数& ' CURRENT_TIMESTAMP()& ';更新此列的值。

我不能使用任何java的库(如Instant.now())来获取当前的时间戳。因为这将在作业执行期间派生值。我正在使用一个BigQuery负载工作,其触发频率为10分钟。因此,如果我使用任何java库来派生时间戳,那么它将不会返回预期的输出。

我在BigqueryIO中找不到任何方法。write,它接受任何SQL函数作为输入。那么这个问题的解决方案是什么呢?

听起来像是希望BigQuery根据插入的时间为每一行分配时间戳。我能想到的唯一方法是向BigQuery提交一个QueryJob,该QueryJob包含一条INSERT语句,该语句包括CURRENT_TIMESTAMP()和其他列的值。但是这种方法在数据量上不是特别可扩展,而且BigQueryIO.write()也不支持。

BigQueryIO.write支持批处理加载,流插入API和存储写入API,据我所知,它们都没有提供像您建议的那样注入bigquery端的时间戳的方法。

最新更新