我的表名格式:tableName_YYYYMMDD
。我正嘗試從流式數據流管道寫入此表。我想每天寫一張新表的原因是因爲我想在30天后過期表,並且只希望一次保持30張表的窗口。從DataFlow流管道中寫入表名中帶日期的BigQuery表
當前代碼:
tableRow.apply(BigQueryIO.Write
.named("WriteBQTable")
.to(String.format("%1$s:%2$s.%3$s",projectId, bqDataSet, bqTable))
.withSchema(schema)
.withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED)
.withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_APPEND));
我不知道上面的代碼不會翻轉到新的一天,開始寫在那裏。
由於this答案建議我可以分區表和過期分區,但寫入分區表似乎是不支持流管道。
任何想法如何解決這個問題?
我一直在使用從數據流寫入的分區表進行測試,看起來像大查詢正確分配值,我沒有從數據流中分配任何'_PARTITIONTIME'。以下返回正確的數據。 'SELECT * FROM Mytable WHERE _PARTITIONTIME = TIMESTAMP(「2017-08-04」)' – PUG