Загрузка данных из CSV-файлов из корзины GCS в таблицу Cloud SQL: - PullRequest
2 голосов
/ 20 января 2020

Я пытаюсь перенести всю таблицу из BigQuery в облако SQL. После исследования я загрузил таблицу в файлы формата csv в корзину GCS. Затем я создал экземпляр Cloud SQL MySQL, базу данных и таблицу с той же схемой, что и таблица BigQuery.

Теперь я следую приведенным здесь инструкциям: https://cloud.google.com/sql/docs/mysql/import-export/importing чтобы импортировать эти CSV-файлы в базу данных Cloud SQL.

Работает для одного файла, но если я пытаюсь использовать * вроде gs: // bucket / fileprefix_ *, я получаю ошибку: ОШИБКА: (gcloud. sql .import.csv) HTTPError 403: У учетной записи службы нет необходимых разрешений для корзины.

Моя таблица имеет размер около 52 ГБ и разбивается на 69 файлов CSV при экспорте в bucket.

Я пробовал gsutil acl ch -u [SERVICE_ACCOUNT_ADDRESS]: W gs: // [BUCKET_NAME] /

gsutil acl ch -u [SERVICE_ACCOUNT_ADDRESS]: R gs: // [BUCKET_NAME] / [IMPORT_FILE_NAME]

gsutil acl ch -u [SERVICE_ACCOUNT_ADDRESS]: O gs: // [BUCKET_NAME] / [IMPORT_FILE_NAME]

И я также отправился в IAM и отредактировал разрешения учетной записи службы, но это не помогло.

1 Ответ

1 голос
/ 21 января 2020

Как Грэм упомянул в комментарии, какие разрешения вы предоставили, скорее всего, виновник.

Он упомянул storage.objects.list, который вам наверняка понадобится, но я ДУМАЮ, что вы также можете нужно storage.buckets.get.

Я считаю, что для доступа к одному объекту вам вообще ничего не нужно знать о корзине ... но чтобы получить полный список объектов, нужно должен быть найден метатегом bucket, что означает необходимость получения разрешения для самого bucket. Я не уверен, но сделайте это, если у вас еще не установлены эти два разрешения для учетной записи службы.

...