在Beam/Dataflow中,批处理大小(batch size)通常称为bundle size。它表示一组要处理的数据元素的大小。Beam/Dataflow使用bundle size来平衡吞吐量和延迟。bundle size的大小对于整个数据处理流程的性能和效率具有重要作用。具体来说,bundle size太小会导致管道的开销变大,bundle size太大又会导致延迟增加。
在Beam中,bundle size的大小由PipelineOptions中的参数控制。例如,设置batch size为1000:
import apache_beam as beam
# Define pipeline options.
options = beam.options.pipeline_options.PipelineOptions(batch_size=1000)
# Create pipeline with specified options.
p = beam.Pipeline(options=options)
在Dataflow中,bundle size受到Worker Machine Type和num_workers参数的影响。可以通过以下代码设置bundle size:
import apache_beam as beam
# Define pipeline options.
options = {
'worker_machine_type': 'n1-standard-1',
'num_workers': 10,
'batch_size': 1000
}
# Create pipeline with specified options.
p = beam.Pipeline('DataflowRunner', options=options)