Google cloud storage 将数据流管道的输出写入分区目标

Google cloud storage 将数据流管道的输出写入分区目标,google-cloud-storage,google-cloud-dataflow,Google Cloud Storage,Google Cloud Dataflow,我们有一个每秒数千个事件的单一流媒体事件源,这些事件都用一个id标记,标识该事件属于我们数万个客户中的哪一个。我们希望使用此事件源来填充数据仓库(在流模式下),但是,我们的事件源不是持久性的,因此我们还希望将原始数据归档到GCS中,以便在进行需要的更改时,可以通过数据仓库管道重播它。由于数据保留要求,我们保存的任何原始数据都需要按客户进行分区,以便我们可以轻松地删除它 在数据流中解决这个问题最简单的方法是什么?目前,我们正在创建一个带有自定义接收器的数据流作业,该接收器将数据写入GCS/BigQ

我们有一个每秒数千个事件的单一流媒体事件源,这些事件都用一个id标记,标识该事件属于我们数万个客户中的哪一个。我们希望使用此事件源来填充数据仓库(在流模式下),但是,我们的事件源不是持久性的,因此我们还希望将原始数据归档到GCS中,以便在进行需要的更改时,可以通过数据仓库管道重播它。由于数据保留要求,我们保存的任何原始数据都需要按客户进行分区,以便我们可以轻松地删除它


在数据流中解决这个问题最简单的方法是什么?目前,我们正在创建一个带有自定义接收器的数据流作业,该接收器将数据写入GCS/BigQuery上每个客户的文件中,这是否合理?

要指定文件名和路径,请参阅。您将向输出编写器提供文件名/路径等


对于多个输出文件的用例,您可以使用该函数从单个源创建多个
PCollection

我想我没有看到任何关于如何在此处对输出进行分区的内容,我是否缺少一些内容?您可以使用可用的数据为文件名/路径构造字符串。这完全是一个正确构造管道的问题,因此当您想要构造输出目录/文件名时,数据是可用的。问题是TextIO.Write只接受一个PCollection,并且在一个PCollection内,我有对应于数百个分区的行。应该吗?在图形构建时,分区的数量需要是可确定的,所以这似乎不起作用