Запуск пакета потока данных с помощью flexRSGoal

Я нашел эту статью о запуске пакета потока данных на вытесняющих машинах.

Я попытался использовать эту функцию с помощью этого скрипта:

gcloud beta dataflow jobs run $JOB_NAME \
    --gcs-location gs://.../Datastore_to_Datastore_Delete \
    --flexRSGoal=COST_OPTIMIZED \
    --region ...1 \
    --staging-location gs://.../temp \
    --network XXX \
    --subnetwork regions/...1/subnetworks/... \
    --max-workers 1 \
    --parameters \
datastoreReadGqlQuery="$QUERY",\
datastoreReadProjectId=$PROJECTID,\
datastoreDeleteProjectId=$PROJECTID

Но вот результат:

ОШИБКА: (gcloud.beta.dataflow.jobs.run) нераспознанные аргументы: --flexRSGoal=COST_OPTIMIZED

Для поиска текста справки по командам gcloud запустите: gcloud help - SEARCH_TERMS

Я запускаю команду gcloud beta dataflow jobs run help и вроде как этот вариант flexRSGoal нет там...

# gcloud version
Google Cloud SDK 319.0.0
alpha 2020.11.13
beta 2020.11.13
bq 2.0.62
core 2020.11.13
gsutil 4.55
kubectl 1.16.13

Что мне не хватает?

2 ответа

Вы следили за этим? Похоже, что правильная команда должна быть:

--flexrs_goal = COST_OPTIMIZED

Кажется --flexrs_goal flag [1] не предназначен для gcloud beta dataflow jobs runкомандный инструмент, но для командных инструментов java/python. Например, python3 -m ... как в [2] (рекомендуется полная лекция этого документа).

Поэтому вместо использования:

gcloud beta dataflow jobs run <job_name> 
    --flexRSGoal=COST_OPTIMIZE ...

Бежать:

python3 <my-pipeline-script.py> \
  --flexrs_goal=COST_OPTIMIZED ...

Если вы предпочитаете использовать java, просто переключите --flexRSGoal флаг --flexRSGoal и следуйте [3] вместо [2].

[1] https://cloud.google.com/dataflow/docs/guides/flexrs#python

[2] https://cloud.google.com/dataflow/docs/quickstarts/quickstart-python#run-wordcount-on-the-dataflow-service

[3] https://cloud.google.com/dataflow/docs/quickstarts/quickstart-java-maven

Другие вопросы по тегам