Esta página descreve como importar dados de um ficheiro SQL armazenado num contentor do Cloud Storage para um cluster do AlloyDB for PostgreSQL. Os ficheiros SQL são ficheiros de texto simples com uma sequência de comandos SQL.
Pode cancelar a importação de dados para clusters do AlloyDB. Para mais informações, consulte o artigo Cancele uma operação de importação.
Antes de começar
Antes de iniciar uma operação de importação:
- Certifique-se de que a sua base de dados tem espaço livre adequado.
- As operações de importação usam recursos da base de dados, mas não interferem com as operações normais da base de dados, a menos que o cluster tenha recursos insuficientes.
Funções e autorizações necessárias para a importação para o AlloyDB
Para importar dados do Cloud Storage para o AlloyDB, o utilizador que inicia a importação tem de ter uma das seguintes funções:
- A função AlloyDB Admin
- Uma função personalizada, incluindo as seguintes autorizações:
alloydb.clusters.get
alloydb.clusters.import
Além disso, a conta de serviço do cluster do AlloyDB tem de ter uma das seguintes funções:
- A função de IAM
storage.objectViewer
- Uma função personalizada, incluindo as seguintes autorizações:
storage.objects.get
Para obter ajuda com as funções de IAM, consulte o artigo Gestão de identidade e de acesso.
Importe um ficheiro SQL para clusters do AlloyDB
Para importar dados para um cluster do AlloyDB através de um ficheiro SQL, siga estes passos:
Consola
Aceda à página Clusters.
Clique no nome de um cluster para abrir a página Vista geral desse cluster.
Clique em Importar.
Em Selecionar ficheiro de origem, procure no Cloud Storage e selecione um ficheiro SQL de um contentor ou carregue um ficheiro SQL do seu computador local para usar na importação.
Selecione a base de dados para a qual quer importar os dados.
Isto faz com que o AlloyDB execute a declaração
USE DATABASE
antes da importação. Se o ficheiro de descarga de SQL incluir uma declaraçãoUSE DATABASE
, substitui a base de dados que definiu na Google Cloud consola.Opcional: especifique um utilizador para a operação de importação. Se o seu ficheiro de importação contiver declarações que têm de ser realizadas por um utilizador específico, use este campo para especificar esse utilizador.
Para iniciar a operação de importação, clique em Importar.
gcloud
- Crie um contentor do Cloud Storage.
Carregue o ficheiro SQL para o seu contentor. Para obter ajuda com o carregamento de ficheiros para contentores, consulte o artigo Carregar objetos.
Use o comando gcloud storage buckets add-iam-policy-binding para conceder a
storage.objectViewer
função do IAM à conta de serviço do cluster do AlloyDB para o contentor:service-PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.com
Faça as seguintes substituições:
- CLUSTER_NAME: o nome do cluster.
- REGION: a região na qual o cluster do AlloyDB está implementado.
- BUCKET_NAME: o nome do contentor do Cloud Storage.
- FILE_NAME: o nome do ficheiro CSV.
- DATABASE_NAME: o nome de uma base de dados no cluster.
- USER: o utilizador para a operação de importação.
- TABLE_NAME: a tabela na base de dados.
Para obter ajuda com a definição de autorizações de IAM, consulte o artigo Usar autorizações de IAM.
Importe o ficheiro:
gcloud alloydb clusters import CLUSTER_NAME --region=REGION --database=DATABASE_NAME --gcs-uri='gs://BUCKET_NAME/PATH_TO_SQL_FILE' --user=USERNAME --sql
Se o comando devolver um erro como
PERMISSION_DENIED
, reveja as autorizações.Para obter informações sobre a utilização do comando
import
, consulte a página de referência do comandoalloydb import
.Se não precisar de manter as autorizações de IAM que definiu anteriormente, remova-as através do comando
gcloud storage buckets remove-iam-policy-binding
.
REST v1
- Crie um contentor do Cloud Storage.
- Carregue o ficheiro SQL para o seu contentor. Para obter ajuda com o carregamento de ficheiros para contentores, consulte o artigo Carregar objetos.
Conceda autorizações da conta de serviço ao contentor do Cloud Storage para a operação de importação. Use o formato de conta de serviço para identificar a conta de serviço do projeto para o qual está a fazer a importação. O formato da conta de serviço é o seguinte:
service-PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.com
Use gcloud storage buckets add-iam-policy-binding para conceder a
storage.objectViewer
função do IAM à conta de serviço do cluster do AlloyDB para o contentor. Para obter ajuda com a definição de autorizações de IAM, consulte o artigo Usar autorizações de IAM.Importe o ficheiro SQL.
Use o seguinte método HTTP e URL:
POST https://alloydbadmin.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID:import
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto.
- LOCATION_ID: a região na qual o cluster do AlloyDB está implementado.
- CLUSTER_ID: o ID do cluster.
- BUCKET_NAME: o nome do contentor do Cloud Storage.
- PATH_TO_SQL_FILE: o caminho para o ficheiro SQL.
- USER: o utilizador a usar para a importação.
- DATABASE_NAME: o nome de uma base de dados no cluster do AlloyDB.
Corpo JSON do pedido:
{ "gcsUri": "gs://BUCKET_NAME/PATH_TO_SQL_FILE", "database": "DATABASE_NAME", "user": "USER", "sqlImportOptions": {} }
Para enviar o seu pedido, expanda uma destas opções:
curl (Linux, macOS ou Cloud Shell)
Guarde o corpo do pedido num ficheiro com o nome
request.json
e execute o seguinte comando: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)
Guarde o corpo do pedido num ficheiro com o nome
request.json
e execute o seguinte comando:$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 Content
Recebe uma resposta JSON semelhante à seguinte:
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 utilizador diferente para a importação, especifique a propriedade do utilizador.
Se não precisar de manter as autorizações de IAM que definiu anteriormente, remova-as agora.
Para ver a lista completa de parâmetros do pedido, consulte
clusters:import
.
Verifique o estado de uma operação de importação
Para verificar o estado de uma operação de importação, siga estes passos:
gcloud
Execute o seguinte comando usando gcloud alloydb operations describe
:
gcloud alloydb operations describe OPERATION_ID --region=REGION
Também pode listar os detalhes de uma operação específica ou cancelar uma operação específica. Para mais informações sobre este comando, consulte a
gcloud alloydb operations
página de referência de comandos.
REST v1
Use o método GET
e o seguinte URL:
GET https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
Para mais informações, consulte get
.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- REGION: a região na qual o cluster do AlloyDB está implementado.
- PROJECT_ID: o ID do projeto.
- OPERATION_ID: o ID da operação de importação. Para mais informações, consulte a secção Antes de começar.
Para enviar o seu pedido, 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
Recebe uma resposta JSON semelhante à seguinte:
Se for bem-sucedido, o corpo da resposta contém uma instância de Operation.
O que se segue?
- Saiba como importar um ficheiro CSV.
- Saiba como cancelar uma operação de importação.