使用Dataflow的BigQueryIO.Write
接收器时,有没有办法在BigQuery表上设置expiration时间?
例如,我喜欢这样的事情(见最后一行):
PCollection<TableRow> mainResults...
mainResults.apply(BigQueryIO.Write
.named("my-bq-table")
.to("PROJECT:dataset.table")
.withSchema(getBigQueryTableSchema())
.withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_TRUNCATE)
.withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED))
.withExpiration(1452030098l) //**this table should expire on 31st Jan
我无法在Dataflow API中看到任何有助于此的内容。当然,我可以使用BigQuery API,但是在指定接收器时能够通过数据流更好。
答案 0 :(得分:2)
Dataflow API目前不支持此功能。我们可以考虑尽快添加它,因为它应该是一个简单的补充。
答案 1 :(得分:0)
您可以在数据集上设置defaultTableExpirationMs
,然后在该数据集中创建的任何表的过期时间为&#34;现在+ dataset.defaultTableExpirationMs&#34;。
请参阅https://cloud.google.com/bigquery/docs/reference/v2/datasets#defaultTableExpirationMs