排空使用 FILE_LOAD 写入方法的数据流作业是否确保写入所有元素?
Does draining a dataflow job that uses FILE_LOAD write method ensure that all elements are written?
您正在通过以下方式将元素写入 bigquery:
pcoll.apply(BigQueryIO.writeTableRows()
.to(destination)
.withSchema(tableSchema)
.withMethod(BigQueryIO.Write.Method.FILE_LOADS)
.withTriggeringFrequency(org.joda.time.Duration.standardMinutes(10))
.withNumFileShards(10)
.withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_APPEND)
.withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED));
并通过 gcloud cli 工具或 google 云控制台耗尽该作业,似乎该作业几乎立即被视为 "drained",即使 withTriggeringFrequency
刚刚之前触发。 drain 函数的行为是否触发所有待处理的写入?
是 Dataflow 立即关闭任何进程中的 windows 并触发所有触发器。
一旦 Drain 被触发,管道将停止接受新的输入。输入水印将被推进到无穷大。管道中已有的元素将继续处理。耗尽的作业可以安全地 cancelled.When 您发出耗尽命令。
有关参考,请参阅此文档
Google 裁员的影响 Effects of draining a job
您正在通过以下方式将元素写入 bigquery:
pcoll.apply(BigQueryIO.writeTableRows()
.to(destination)
.withSchema(tableSchema)
.withMethod(BigQueryIO.Write.Method.FILE_LOADS)
.withTriggeringFrequency(org.joda.time.Duration.standardMinutes(10))
.withNumFileShards(10)
.withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_APPEND)
.withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED));
并通过 gcloud cli 工具或 google 云控制台耗尽该作业,似乎该作业几乎立即被视为 "drained",即使 withTriggeringFrequency
刚刚之前触发。 drain 函数的行为是否触发所有待处理的写入?
是 Dataflow 立即关闭任何进程中的 windows 并触发所有触发器。 一旦 Drain 被触发,管道将停止接受新的输入。输入水印将被推进到无穷大。管道中已有的元素将继续处理。耗尽的作业可以安全地 cancelled.When 您发出耗尽命令。
有关参考,请参阅此文档 Google 裁员的影响 Effects of draining a job