我最近启动了一个数据流作业,从GCS加载数据,通过DLP的标识模板运行它,并将屏蔽的数据写入BigQuery。我找不到谷歌提供的用于批处理的模板,因此使用了流模板(参考:link)。我看到只有50%的行被写入目标BigQuery表。管道上有一天没有任何活动,即使它处于运行状态。
发布于 2020-08-28 02:11:42
是的,DLP数据流模板是一个流管道,但通过一些简单的更改,您也可以将其用作批处理。这是模板source code。正如您所看到的,它使用File IO transform并每隔30秒轮询/监视任何新文件。如果您去掉了窗口转换和连续轮询语法,您应该能够以批处理的方式执行。
关于管道没有处理所有数据,您能确认您是否正在使用默认设置运行一个大文件吗?例如: workerMachineType、numWorkers、maxNumWorkers?当前的流水线代码使用基于行的偏移量,如果输入文件很大,则需要具有大量工作线程的highmem机器类型。例如,对于10 GB、80M的线路,您可能需要5个highmem工作者。
有一件事你可以试着看看它是否有帮助,那就是用更多的资源触发管道,例如:--workerMachineType=n1-highmem-8,numWorkers=10,maxNumWorkers=10,看看它是否更好。
或者,有一个使用state and timer API的基于字节的偏移量的V2 solution,用于优化批处理和资源利用率,您可以试用它。
https://stackoverflow.com/questions/63530706
复制相似问题