Esta página descreve como importar dados de um arquivo SQL armazenado em um bucket do Cloud Storage para um cluster do AlloyDB para PostgreSQL. Os arquivos SQL são arquivos de texto simples com uma sequência de comandos SQL.
É possível cancelar a importação de dados para clusters do AlloyDB. Para mais informações, consulte Cancelar uma operação de importação.
Antes de começar
Antes de iniciar uma operação de importação:
- Verifique se o banco de dados tem espaço livre adequado.
- As operações de importação usam recursos do banco de dados, mas não interferem nas operações normais do banco de dados, a menos que o cluster tenha um provisionamento insuficiente.
Permissões e papéis necessários para importar para o AlloyDB
Para importar dados do Cloud Storage para o AlloyDB, o usuário que inicia a importação precisa ter um dos seguintes papéis:
- Função Administrador do AlloyDB
- Um papel personalizado, incluindo as
seguintes permissões:
alloydb.clusters.get
alloydb.clusters.import
Além disso, a conta de serviço do cluster do AlloyDB precisa ter um dos seguintes papéis:
- O papel
storage.objectViewer
do IAM - Um papel personalizado, incluindo as seguintes permissões:
storage.objects.get
Para receber ajuda com os papéis do IAM, consulte Gerenciamento de identidade e acesso.
Importar um arquivo SQL para clusters do AlloyDB
Para importar dados para um cluster do AlloyDB usando um arquivo SQL, siga estas etapas:
Acesse a página Clusters.
Clique no nome de um cluster para abrir a página Visão geral dele.
Clique em Importar.
Em Escolha o arquivo do qual você quer importar dados, insira o caminho para o bucket e o arquivo SQL que será usado para a importação ou navegue até um arquivo existente.
Selecione o banco de dados que receberá os dados importados.
Isso faz com que o AlloyDB execute a instrução
USE DATABASE
antes da importação. Se o arquivo de despejo SQL incluir uma instruçãoUSE DATABASE
, ela vai modificar o banco de dados definido no console do Google Cloud.Opcional: especifique um usuário para a operação de importação. Se o arquivo de importação contiver instruções que precisam ser realizadas por um usuário específico, use este campo para especificar esse usuário.
Para iniciar a operação de importação, clique em Importar.
- Crie um bucket do Cloud Storage.
Faça upload do arquivo SQL para o bucket. Para receber ajuda com o upload de arquivos para buckets, consulte Como fazer upload de objetos.
Use gcloud storage buckets add-iam-policy-binding para conceder o papel do IAM
storage.objectViewer
à conta de serviço do cluster AlloyDB para o bucket:service-
PROJECT_NUMBER @gcp-sa-alloydb.iam.gserviceaccount.comFaça as seguintes substituições:
- CLUSTER_NAME: o nome do cluster.
- REGION: a região em que o cluster do AlloyDB é implantado.
- BUCKET_NAME: o nome do bucket do Cloud Storage.
- FILE_NAME: o nome do arquivo CSV.
- DATABASE_NAME: o nome de um banco de dados dentro do cluster.
- USER: o usuário da operação de importação.
- TABLE_NAME: a tabela no banco de dados.
Para receber ajuda com a configuração de permissões do IAM, consulte Como usar as permissões do IAM.
Importe o arquivo:
gcloud alloydb clusters import
CLUSTER_NAME --region=REGION --database=DATABASE_NAME --gcs-uri='gs://BUCKET_NAME /PATH_TO_SQL_FILE ' --user=USERNAME --sqlSe o comando retornar um erro como
PERMISSION_DENIED
, revise as permissões.Para informações sobre como usar o comando
import
, consulte a página de referência do comandoalloydb import
.Se você não precisar manter as permissões do IAM definidas anteriormente, remova-as usando
gcloud storage buckets remove-iam-policy-binding
.
- Crie um bucket do Cloud Storage.
- Faça upload do arquivo SQL para o bucket. Para receber ajuda com o upload de arquivos para buckets, consulte Como fazer upload de objetos.
Conceda permissões da conta de serviço ao bucket do Cloud Storage para a operação de importação. Use o formato da conta de serviço para identificar a conta de serviço do projeto para o qual você está importando. O formato da conta de serviço é o seguinte:
service-
PROJECT_NUMBER @gcp-sa-alloydb.iam.gserviceaccount.comUse gcloud storage buckets add-iam-policy-binding para conceder o
storage.objectViewer
papel do IAM à conta de serviço do cluster AlloyDB para o bucket. Para ajuda com a configuração de permissões do IAM, consulte Como usar as permissões do IAM.Importe seu arquivo SQL.
Use o método HTTP e o URL a seguir:
POST https://alloydbadmin.googleapis.com/v1/projects/
PROJECT_ID /locations/LOCATION_ID /clusters/CLUSTER_ID :importAntes de usar os dados da solicitação, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto;
- LOCATION_ID: a região em que o cluster do AlloyDB é implantado.
- CLUSTER_ID: o ID do cluster.
- BUCKET_NAME: o nome do bucket do Cloud Storage.
- PATH_TO_SQL_FILE: o caminho para o arquivo SQL.
- USER: o usuário a ser usado para a importação.
- DATABASE_NAME: o nome de um banco de dados dentro do cluster do AlloyDB.
Solicitar corpo JSON:
{ "gcsUri": "gs://
BUCKET_NAME /PATH_TO_SQL_FILE ", "database": "DATABASE_NAME ", "user": "USER ", "sqlImportOptions": {} }Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Salve o corpo da solicitação em um arquivo chamado
request.json
e execute o comando a seguir:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://alloydb.googleapis.com/v1/projects/
PROJECT_ID /locations/LOCATION_ID /clusters/CLUSTER_ID :import"PowerShell (Windows)
Salve o corpo da solicitação em um arquivo chamado
request.json
e execute o comando a seguir:$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://alloydb.googleapis.com/v1/projects/
PROJECT_ID /locations/LOCATION_ID /clusters/CLUSTER_ID :import"| Select-Object -Expand ContentVocê recebe uma resposta JSON semelhante a esta:
Resposta
{ "name": "projects/project-id/locations/location-id/operations/operation-id", "metadata": { "@type": "type.googleapis.com/google.cloud.alloydb.v1.OperationMetadata", "createTime": "2025-01-04T13:12:32.363393723Z", "target": "projects/project-id/locations/location-id/clusters/cluster-id", "verb": "import", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Para usar um usuário diferente na importação, especifique a propriedade do usuário.
Se você não precisar manter as permissões do IAM definidas anteriormente, remova-as agora.
Para conferir a lista completa de parâmetros da solicitação, consulte
clusters:import
.
Verificar o status de uma operação de importação
Para verificar o status de uma operação de importação, siga estas etapas:
Execute o seguinte usando o comando
gcloud alloydb operations describe
:
gcloud alloydb operations describe OPERATION_ID --region=REGION
Você também pode listar detalhes de uma operação específica ou cancelá-la. Para mais informações sobre esse comando, consulte a
página de referência do comando
gcloud alloydb operations
.
Use o método GET
e o seguinte URL:
GET https://alloydb.googleapis.com/v1/projects/PROJECT_ID /locations/REGION /operations/OPERATION_ID
Para ver mais informações, consulte get
.
Antes de usar os dados da solicitação, faça as seguintes substituições:
- REGION: a região em que o cluster do AlloyDB é implantado.
- PROJECT_ID: o ID do projeto;
- OPERATION_ID: o ID da operação de importação. Para mais informações, consulte Antes de começar.
Para enviar a solicitação, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Execute o seguinte comando:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://alloydb.googleapis.com/v1/projects/PROJECT_ID /locations/REGION /operations/OPERATION_ID
PowerShell (Windows)
Execute o seguinte comando:
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://alloydb.googleapis.com/v1/projects/PROJECT_ID /locations/REGION /operations/OPERATION_ID | Select-Object -Expand Content
Você recebe uma resposta JSON semelhante a esta:
Se a solicitação for bem-sucedida, o corpo da resposta conterá uma instância de Operation.
A seguir
- Saiba como importar um arquivo CSV.
- Saiba como cancelar uma operação de importação.
- Verificar o status de uma operação de importação.