gcloud sql operations wait выдает INTERNAL_ERROR после импорта csv

#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
  

Для получения дополнительной информации о флагах фильтров и форматов ознакомьтесь с этой документацией:

Фильтр

формат