#mysql #csv #import #gcloud
#mysql #csv #импорт #gcloud
Вопрос:
Я пытаюсь импортировать CSV-файл в экземпляр Google CloudSQL (Mysql), используя gcloud
.
После выполнения OPERATION_ID=$(gcloud sql import csv..)
команды для импорта, а затем ожидания идентификатора операции с помощью
gcloud sql operations wait --project "$GCP_PROJECT_ID" "${OPERATION_ID}" --timeout unlimited --verbosity debug
,
Я получаю следующую ошибку
..failed.
DEBUG: (gcloud.sql.operations.wait) [INTERNAL_ERROR]
Traceback (most recent call last):
File "/Users/user/Software/google-cloud-sdk/lib/googlecloudsdk/calliope/cli.py", line 983, in Execute
resources = calliope_command.Run(cli=self, args=args)
File "/Users/user/Software/google-cloud-sdk/lib/googlecloudsdk/calliope/backend.py", line 809, in Run
resources = display.Displayer(command_instance, args, resources,
File "/Users/user/Software/google-cloud-sdk/lib/googlecloudsdk/calliope/display.py", line 483, in Display
self._printer.Print(self._resources)
File "/Users/user/Software/google-cloud-sdk/lib/googlecloudsdk/core/resource/resource_printer_base.py", line 275, in Print
for resource in resources:
File "/Users/user/Software/google-cloud-sdk/lib/surface/sql/operations/wait.py", line 66, in Run
operations.OperationsV1Beta4.WaitForOperation(
File "/Users/user/Software/google-cloud-sdk/lib/googlecloudsdk/api_lib/sql/operations.py", line 96, in WaitForOperation
retryer.RetryOnResult(
File "/Users/user/Software/google-cloud-sdk/lib/googlecloudsdk/core/util/retry.py", line 229, in RetryOnResult
if not should_retry(result, state):
File "/Users/user/Software/google-cloud-sdk/lib/googlecloudsdk/api_lib/sql/operations.py", line 80, in ShouldRetryFunc
raise result
googlecloudsdk.api_lib.sql.exceptions.OperationError: [INTERNAL_ERROR]
ERROR: (gcloud.sql.operations.wait) [INTERNAL_ERROR]
Однако данные успешно загружаются в таблицу, но только операция ожидания завершается с ошибкой, описанной выше. Кто-нибудь может оказать какую-либо помощь здесь?
Уже пробовали переустановку gcloud
, обновление gcloud
и версии python, но результат тот же. Перезапуск облачного экземпляра не дал никакого другого результата.
➜ gcloud version
Google Cloud SDK 315.0.0
bq 2.0.62
core 2020.10.16
gsutil 4.53
➜ echo $CLOUDSDK_PYTHON
/Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8
Ответ №1:
То, что вы делаете, не будет работать, потому gcloud sql import csv..
что не возвращает идентификатор операции. Что вам нужно сделать, так это:
1- запустите операцию импорта
2- перечислите операции и получите текущий импорт с помощью:
OPERATION_ID=$(gcloud sql operations list --instance INSTANCE_NAME --filter="TYPE=IMPORT AND STATUS=RUNNING" --format="value(NAME)")
3- используйте команду ожидания:
gcloud sql operations wait --project "$GCP_PROJECT_ID" "${OPERATION_ID}" --timeout unlimited
Для получения дополнительной информации о флагах фильтров и форматов ознакомьтесь с этой документацией: