Como exportar dados do Cloud SQL

Nesta página, descrevemos como exportar dados do Cloud SQL para o Cloud Storage. É possível fazer o download dos dados do Cloud Storage para o ambiente local se quiser acessá-los localmente.

Para ver as práticas recomendadas para exportação de dados, consulte Práticas recomendadas para importação e exportação de dados.

Antes de começar

Decida qual tipo de arquivo você criará: um arquivo de despejo SQL ou um arquivo CSV. Geralmente, você usa um arquivo de despejo SQL para exportar para outro banco de dados SQL, e um CSV para exportar para outros bancos de dados ou ferramentas.

Exportar os dados para um arquivo de despejo SQL

A exportação do Cloud SQL usa o utilitário mysqldump com a opção --skip-triggers e exclui o banco de dados mysql. Isso significa que a exportação não inclui nenhum acionador, procedimento armazenado ou função. Se o banco de dados exigir algum desses elementos, será necessário recriá-los manualmente depois de importar os dados.

Se essa exportação não atender aos seus requisitos, será possível também executar o utilitário mysqldump diretamente no banco de dados do Cloud SQL usando as opções necessárias.

Console

  1. Acesse a página "Instâncias" do Cloud SQL no Console do Google Cloud Platform.

    Acessar a página "Instâncias do Cloud SQL"

  2. Clique na instância de que você quer exportar dados para abrir a respectiva página "Detalhes da instância".
  3. Clique em Exportar na barra de botões.
  4. Em Local de exportação do Cloud Storage, selecione um intervalo ou pasta do Cloud Storage para a exportação.
  5. No campo Nome, insira um nome para o arquivo de exportação e clique em Selecionar.
  6. Em Formato, selecione SQL.
  7. Clique em Mostrar opções avançadas e insira uma lista separada por vírgulas de todos os bancos de dados que você quer exportar. Não inclua bancos de dados do sistema.
  8. Clique em Exportar para iniciar a exportação.

gcloud (Segunda geração)

Para exportar um arquivo de despejo de uma instância para um intervalo do Cloud Storage:

  1. Crie um intervalo para a exportação:
    gsutil mb -p [PROJECT_NAME] -l [LOCATION_NAME] gs://[BUCKET_NAME]
    

    Essa etapa não é obrigatória, mas altamente recomendada para que você não abra acesso a outros dados.

  2. Descreva a instância da qual você está exportando:
    gcloud sql instances describe [INSTANCE_NAME]
    
  3. Copie o campo serviceAccountEmailAddress.
  4. Adicione a conta de serviço ao intervalo ACL como um gravador:
    gsutil acl ch -u [SERVICE_ACCOUNT_ADDRESS]:W gs://[BUCKET_NAME]
    
  5. Exporte o banco de dados:
    gcloud sql export sql [INSTANCE_NAME] gs://[BUCKET_NAME]/sqldumpfile.gz \
                                --database=[DATABASE_NAME]
    

    Para mais informações sobre como usar o comando export sql, consulte a página de referência do comando sql export sql.

  6. Caso não seja necessário manter as permissões fornecidas pela ACL que você definiu anteriormente, remova-a:
    gsutil acl ch -d [SERVICE_ACCOUNT_ADDRESS] gs://[BUCKET_NAME]
    

gcloud (Primeira geração)

gcloud sql export sql [INSTANCE_NAME] gs://[BUCKET_NAME]/sqldumpfile.gz \
                            --database [DATABASE_NAMES]

Se você receber um erro como ERROR_RDBMS, talvez não tenha as permissões necessárias para exportar para esse intervalo. Confira se você tem pelo menos as permissões WRITER. Para ver mais informações sobre como configurar o controle de acesso no Cloud Storage, consulte Criar e gerenciar listas de controle de acesso.

Para mais informações sobre como usar o comando export sql, consulte a página de referência do comando sql export sql.

cURL

  1. Crie um intervalo para a exportação:
    gsutil mb -p [PROJECT_NAME] -l [LOCATION_NAME] gs://[BUCKET_NAME]
    

    Essa etapa não é obrigatória, mas altamente recomendada para que você não abra acesso a outros dados.

  2. Forneça à instância permissões para gravar no intervalo.

    Para ajuda sobre a definição de ACLs, consulte Como definir ACLs.

  3. Exporte o banco de dados:
    ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"exportContext":
                    {"fileType": "SQL",
                     "uri": "gs://<BUCKET_NAME>/<PATH_TO_DUMP_FILE>",
                     "databases": ["<DATABASE_NAME1>", "<DATABASE_NAME2>"] }}' \
       -X POST \
       https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/export
    
  4. Se não for necessário manter as permissões fornecidas pela ACL que você definiu anteriormente, remova-a:
Para ver a lista completa dos parâmetros dessa solicitação, consulte a página instances:insert.

Como exportar dados para um arquivo CSV

É possível exportar os dados no formato CSV, que pode ser usado por outras ferramentas e ambientes.

Console

  1. Acesse a página "Instâncias" do Cloud SQL no Console do Google Cloud Platform.

    Acessar a página "Instâncias do Cloud SQL"

  2. Clique na instância para abrir a página Visão geral da instância.
  3. Clique em Exportar.
  4. Em Local de exportação do Cloud Storage, selecione um intervalo ou pasta do Cloud Storage para a exportação.
  5. No campo Nome, insira um nome para o arquivo de exportação e clique em Selecionar.

    É possível usar uma extensão de arquivo .gz para compactar o arquivo de exportação.

  6. Defina o Formato como CSV.
  7. Insira uma consulta SQL para especificar os dados a serem exportados.

    Por exemplo, para exportar todo o conteúdo da tabela entries no banco de dados guestbook, insira SELECT * FROM guestbook.entries;. A consulta precisa especificar uma tabela. Não é possível exportar um banco de dados inteiro no formato CSV.

  8. Clique em Exportar para iniciar a exportação.

gcloud (segunda geração)

  1. Crie um intervalo para a exportação:
    gsutil mb -p [PROJECT_NAME] -l [LOCATION_NAME] gs://[BUCKET_NAME]
    

    Essa etapa não é obrigatória, mas altamente recomendada para que você não abra acesso a outros dados.

  2. Descreva a instância da qual você está exportando:
    gcloud sql instances describe [INSTANCE_NAME]
    
  3. Copie o campo serviceAccountEmailAddress.
  4. Adicione a conta de serviço ao intervalo ACL como um gravador:
    gsutil acl ch -u [SERVICE_ACCOUNT_ADDRESS]:W gs://[BUCKET_NAME]
    
  5. Exporte o banco de dados:
    gcloud sql export csv [INSTANCE_NAME] gs://[BUCKET_NAME]/[FILE_NAME} \
                                --database=[DATABASE_NAME] --query=[SELECT_QUERY]
    

    Para mais informações sobre como usar o comando export csv, consulte a página de referência do comando sql export csv.

  6. Caso não seja necessário manter as permissões fornecidas pela ACL que você definiu anteriormente, remova-a:
    gsutil acl ch -d [SERVICE_ACCOUNT_ADDRESS] gs://[BUCKET_NAME]
    

gcloud (primeira geração)

gcloud sql export csv [INSTANCE_NAME] gs://[BUCKET_NAME]/[FILE_NAME] \
                            --database [DATABASE_NAME] --query=[SELECT_QUERY]

Se você receber um erro, talvez não tenha as permissões necessárias para exportar para esse intervalo. Confira se você tem pelo menos as permissões WRITER. Para ver mais informações sobre como configurar o controle de acesso no Cloud Storage, consulte Criar e gerenciar listas de controle de acesso.

Para mais informações sobre como usar o comando export csv, consulte a página de referência do comando sql export csv.

cURL

  1. Crie um intervalo para a exportação:
    gsutil mb -p [PROJECT_NAME] -l [LOCATION_NAME] gs://[BUCKET_NAME]
    

    Essa etapa não é obrigatória, mas altamente recomendada para que você não abra acesso a outros dados.

  2. Conceda à instância permissões para gravar no intervalo.

    Para receber ajuda na definição de ACLs, consulte Como definir ACLs.

  3. Exporte o banco de dados:

    ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"exportContext":
                    {"fileType": "CSV",
                     "uri": "gs://<BUCKET_NAME>/<PATH_TO_DUMP_FILE>",
                     "databases": ["<DATABASE_NAME>"] },
                     "csvExportOptions":
                         {"selectQuery":"<SELECT_QUERY>"}}' \
       -X POST \
       https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/export
    

    Se a consulta selecionada especificar um banco de dados, ele modificará a propriedade databases.

  4. Se não for necessário manter as permissões fornecidas pela ACL que você definiu anteriormente, remova-a.
Para ver a lista completa de parâmetros dessa solicitação, consulte a página instances:export.

Exportar no formato CSV é equivalente a executar a seguinte instrução SQL:

  SELECT <query> INTO OUTFILE ... CHARACTER SET 'utf8mb4'
        FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'
        ESCAPED BY '\\' LINES TERMINATED BY '\n'

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Cloud SQL para MySQL