使用Dataflow BigQuery接收器设置表到期时间

时间:2016-01-05 21:46:10

标签: google-bigquery google-cloud-dataflow

使用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,但是在指定接收器时能够通过数据流更好。

2 个答案:

答案 0 :(得分:2)

Dataflow API目前不支持此功能。我们可以考虑尽快添加它,因为它应该是一个简单的补充。

答案 1 :(得分:0)

您可以在数据集上设置defaultTableExpirationMs,然后在该数据集中创建的任何表的过期时间为&#34;现在+ dataset.defaultTableExpirationMs&#34;。

请参阅https://cloud.google.com/bigquery/docs/reference/v2/datasets#defaultTableExpirationMs