我正在使用python dataflow.products((.templates((.lonch((函数启动数据流模板,以启动从jdbc到bigquery模板的数据流作业。
我怎样才能通过"--autoscaling_algorithm=NONE";这个python函数中的标志?
要在python函数本身中禁用自动缩放,请使用PipelineOptions中的autoscaling_algorithm=None
。例如:
p = beam.Pipeline(argv=beam_args,options=PipelineOptions(
region='us-central1',autoscaling_algorithm=None,num_workers=2))
或者更详细地说,遵循官方文档:
import apache_beam as beam
from apache_beam.options.pipeline_options import PipelineOptions
options = PipelineOptions(
flags=argv,
runner='DataflowRunner',
project='my-project-id',
job_name='unique-job-name',
temp_location='gs://my-bucket/temp',
region='us-central1',
autoscaling_algorithm=None,
num_workers=2)
with beam.Pipeline(options=options) as pipeline:
# build your pipeline here.
如果您使用python3创建流作业,则可能需要包含实验标志disable_streaming_engine
,因为默认情况下它已启用自动缩放,并且会覆盖手动设置的标志。我已经用这些选项创建了一个工作,在10分钟没有互动后,它仍然保留在两个工人身上,所以它似乎工作正常。
"additionalExperiments": ["min_num_workers=N"]
"maxWorkers": N
"numWorkers": N
我认为目标是禁用自动缩放?您可以通过设置maxWorkers=1
来实现相同的功能。
https://cloud.google.com/dataflow/docs/reference/rest/v1b3/RuntimeEnvironment