Запуск пакета потока данных с помощью 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
[3] https://cloud.google.com/dataflow/docs/quickstarts/quickstart-java-maven