Como exportar bancos de dados do Cloud Spanner para o Avro

Nesta página descrevemos como exportar bancos de dados do Cloud Spanner usando o console do Google Cloud Platform.

O processo usa o Cloud Dataflow e exporta dados para uma pasta em um intervalo do Cloud Storage. A pasta resultante contém um conjunto de arquivos Avro e arquivos de manifesto JSON.

Para exportar um banco de dados do Cloud Spanner usando a API REST ou a ferramenta de linha de comando gcloud, conclua as etapas na seção Antes de começar nesta página e depois consulte as instruções detalhadas em Cloud Spanner para arquivo Avro do Cloud Storage.

Antes de começar

Para exportar um banco de dados do Cloud Spanner, é necessário primeiro ativar as APIs Cloud Spanner, Cloud Storage, Compute Engine e Cloud Dataflow:

Ativar APIs

É preciso também ter cota suficiente e as permissões necessárias do Cloud IAM.

Requisitos de cota

Estes são os requisitos de cota para jobs de exportação por serviço de GCP:

  • Cloud Spanner: não é necessário incluir qualquer outro nó para exportar um banco de dados. No entanto, talvez seja necessário adicionar nós para que o job seja concluído dentro de um prazo razoável. Consulte Como otimizar jobs para saber mais detalhes.
  • Cloud Storage: é necessário criar um intervalo para os arquivos exportados, caso ainda não tenha um. Isso pode ser feito no Console do GCP na página do Cloud Storage ou ao criar sua exportação na página do Cloud Spanner. Não é necessário definir um tamanho para o intervalo.
  • Cloud Dataflow: os jobs de exportação estão sujeitos às mesmas cotas do Compute Engine para endereço IP, uso da CPU e do disco aplicadas a outros jobs do Cloud Dataflow.
  • Compute Engine: antes de executar um job de exportação, é necessário configurar cotas iniciais para o Compute Engine, que serão usadas pelo Cloud Dataflow. Essas cotas representam o número máximo de recursos autorizados ao Cloud Dataflow para escalonar o job. Os valores iniciais recomendados são:

    • CPUs: 200
    • Endereços IP em uso: 200
    • Disco permanente padrão: 50 TB

    Geralmente não é necessário fazer nenhum outro ajuste. O Cloud Dataflow fornece escalonamento automático para que você pague apenas pelos recursos efetivamente utilizados durante a exportação. Se o job precisar de mais recursos, a IU do Cloud Dataflow exibirá um ícone de aviso. O job deve ser concluído, ainda que um ícone de aviso esteja sendo exibido.

Requisitos do Cloud IAM

Para exportar um banco de dados, é preciso também ter papéis no Cloud IAM com permissões suficientes para usar todos os serviços envolvidos em um job de exportação. Para informações sobre como conceder papéis e permissões, consulte Como aplicar papéis de IAM.

Para exportar um banco de dados, você precisa dos seguintes papéis:

  • No nível do projeto do GCP:
    • Visualizador do Cloud Spanner
    • Administrador do Cloud Dataflow
    • Administrador do Storage
  • No nível do banco de dados ou da instância do Cloud Spanner ou para envolvidos no projeto do GCP:
    • Leitor do Cloud Spanner

Como exportar um banco de dados

Depois de atender aos requisitos de cota e do Cloud IAM descritos acima, você pode exportar um banco de dados já existente do Cloud Spanner.

Para exportar seu banco de dados do Cloud Spanner para um intervalo do Cloud Storage, siga as seguintes etapas.

  1. Acesse a página "Instâncias do Cloud Spanner".

    Acessar a página "Instâncias"

  2. Clique no nome da instância que contém seu banco de dados.

  3. Clique em Exportar Captura de tela do elemento de exportação da IU.

  4. Em Escolha onde armazenar sua exportação, clique em Procurar.

  5. Caso ainda não tenha um intervalo do Cloud Storage para sua exportação, siga estas etapas:

    1. Clique em Novo intervalo Captura de tela do novo elemento do intervalo da IU.
    2. Digite um nome para o seu intervalo. Os nomes de intervalos precisam ser exclusivos no Cloud Storage.
    3. Selecione uma classe e um local de armazenamento padrão e clique em Criar.
    4. Clique no intervalo para selecioná-lo.

    Se você já tiver um intervalo, selecione-o na lista inicial ou clique em Pesquisar Captura de tela do elemento de pesquisa da IU para filtrar a lista. Depois clique no seu intervalo para selecioná-lo.

  6. Clique em Selecionar.

  7. Selecione o banco de dados que você quer exportar no menu suspenso Escolher um banco de dados para exportar.

  8. Selecione uma região no menu suspenso Escolha uma região para o job de exportação.

  9. Marque a caixa de seleção em Confirmar cobranças para confirmar que há cobranças além das referentes aos nós atuais no Cloud Spanner.

  10. Clique em Exportar.

    O console do GCP exibe a página Detalhes do banco de dados, que agora exibe uma caixa que descreve o job de exportação, incluindo o tempo decorrido para sua realização:

    Captura de tela do job em andamento

Quando o job termina ou é encerrado, o console do GCP exibe uma mensagem na página Detalhes do banco de dados. Se o job for bem-sucedido, será exibida uma mensagem de sucesso:

Mensagem de sucesso do job de exportação

Se o job não for bem sucedido, será exibida uma mensagem de falha:

Mensagem de falha do job de exportação

Se o job falhar, verifique os registros do Cloud Dataflow do job para ter acesso aos detalhes do erro.

Para evitar cobranças do Cloud Storage por arquivos criados por um job que falhou, exclua a pasta e seus arquivos. Consulte Como visualizar sua exportação para informações sobre como encontrar a pasta.

Como visualizar sua exportação no Cloud Storage

Para visualizar a pasta que contém seu banco de dados exportado no console do GCP, acesse o navegador do Cloud Storage e clique no intervalo que você selecionou anteriormente:
Acessar o navegador do Cloud Storage

O intervalo agora contém uma pasta com o banco de dados exportado. O nome da pasta começa com o código da instância, o nome do banco de dados e o carimbo de data e hora do seu job de exportação. A pasta contém:

  • um arquivo spanner-export.json;
  • um arquivo TableName-manifest.json para cada tabela no banco de dados exportado;
  • um ou mais arquivos TableName.avro-#####-of-#####. O primeiro número na extensão .avro-#####-of-##### representa o índice do arquivo Avro, a partir de zero. O segundo representa o número de arquivos Avro gerados para cada tabela.

    Por exemplo, Songs.avro-00001-of-00002 é o segundo de dois arquivos que contêm os dados da tabela Songs.

Como escolher uma região para seu job de exportação

Convém escolher uma região diferente, dependendo de sua instância do Cloud Spanner usar uma configuração regional ou multirregional. Para evitar cobranças de saída de rede, escolha uma região que se sobreponha ao local da sua instância do Cloud Spanner.

Configurações de instâncias regionais

Se a configuração da sua instância do Cloud Spanner for regional, escolha a mesma região para o job de exportação para aproveitar a saída gratuita dentro de uma mesma região.

Se a mesma região não estiver disponível, serão efetuadas cobranças. Consulte os preços de saída de rede do Cloud Spanner para escolher uma região que gerará tarifas de saída de rede mais baixas.

Configurações de instâncias multirregionais

Se a configuração da instância do Cloud Spanner for multirregional, escolha uma das regiões que compõem a configuração multirregional para aproveitar a saída gratuita em uma mesma região.

Se não houver uma região sobreposta disponível, serão cobradas taxas de saída. Consulte os preços de saída de rede do Cloud Spanner para escolher uma região que gerará tarifas de saída de rede mais baixas.

Como visualizar ou solucionar problemas de jobs na IU do Cloud Dataflow

Depois de iniciar um job de exportação, é possível visualizar detalhes dele, inclusive os registros, na seção Cloud Dataflow do console do GCP.

Como visualizar detalhes do job do Cloud Dataflow

Para ver detalhes de um job que está sendo executado, siga estas etapas:

  1. Acesse a página Detalhes do banco de dados para encontrar o banco de dados exportado.
  2. Clique em Visualizar detalhes do job no Cloud Dataflow na mensagem de status do job:

    Mensagem de status do job em andamento

    O Console do GCP exibe detalhes do job do Cloud Dataflow.

Para visualizar um job executado recentemente, siga estas etapas:

  1. Acesse a página Detalhes do banco de dados para encontrar o banco de dados exportado.
  2. Clique na guia Importar/Exportar.
  3. Clique no nome do seu job na lista.

    O Console do GCP exibe detalhes do job do Cloud Dataflow.

Para visualizar um job executado há mais de uma semana, siga estas etapas:

  1. Acesse a página de jobs do Cloud Dataflow no Console do GCP.
    Ir para a página de jobs
  2. Encontre seu job na lista e clique no nome dele.

    O Console do GCP exibe detalhes do job do Cloud Dataflow.

Como visualizar registros de um job do Cloud Dataflow

Para visualizar os registros de um job do Cloud Dataflow, acesse a página de detalhes do job, conforme descrito acima, e clique em Registros, à direita do nome do job.

Se um job falhar, procure erros nos registros. Se houver erros, a contagem de erros será exibida ao lado de Registros:

Exemplo de contagem de erros ao lado do botão Registros

Para ver os erros do job, siga estas etapas:

  1. Clique na contagem de erros, ao lado de Registros.

    O Console do GCP exibe os registros do job. Pode ser necessário rolar para visualizar os erros.

  2. Localize entradas com o ícone de erro Ícone de erro.

  3. Clique em uma entrada de registro individual para expandir seu conteúdo.

Para mais informações sobre como solucionar problemas de jobs do Cloud Dataflow, consulte Como solucionar problemas do seu pipeline.

Como otimizar jobs de exportação de execução lenta

Se as sugestões das configurações iniciais foram seguidas, geralmente não será necessário fazer nenhum outro ajuste. Se o job estiver sendo executado lentamente, é possível tentar outras otimizações:

  • Otimize o local do job e dos dados: execute o job do Cloud Dataflow na mesma região em que estão localizados o intervalo do Cloud Storage e a instância do Cloud Spanner.

  • Garanta recursos suficientes do Cloud Dataflow: se as cotas relevantes do Compute Engine estiverem limitando os recursos do job do Cloud Dataflow, a página do Cloud Dataflow referente a esse job no Console do Google Cloud Platform exibirá um ícone de aviso Ícone de aviso e as mensagens de registro:

    Captura de tela do aviso de limite de cota

    Nessa situação, aumentar as cotas para CPUs, endereços IP em uso e disco permanente padrão tende a reduzir o ambiente de execução do job, mas pode resultar em mais cobranças do Compute Engine.

  • Verifique a utilização da CPU do Cloud Spanner: é possível aumentar o número de nós de uma instância caso a utilização da CPU para ela seja superior a 65%. Os nós extras adicionam mais recursos do Cloud Spanner e isso pode acelerar o job, mas resultará em cobranças adicionais do Cloud Spanner.

Fatores que afetam o desempenho do job de exportação

Vários fatores influenciam o tempo necessário para concluir um job de exportação.

  • Tamanho do banco de dados do Cloud Spanner: o processamento de mais dados leva mais tempo e exige mais recursos.

  • Esquema do banco de dados do Cloud Spanner (incluindo índices): o número de tabelas, o tamanho das linhas e o número de índices secundários influenciam o tempo necessário para executar um job de exportação.

  • Localização dos dados: os dados são transferidos entre o Cloud Spanner e o Cloud Storage usando o Cloud Dataflow. O ideal é que os três componentes estejam localizados na mesma região. Se não estiverem, a movimentação dos dados pelas regiões prejudica a velocidade de execução do job.

  • Número de workers do Cloud Dataflow: usando o escalonamento automático, o Cloud Dataflow escolhe o número de workers para o job, dependendo da quantidade de trabalho que precisa ser feita. O número de workers, no entanto, será limitado pelas cotas para CPUs, endereços IP em uso e disco permanente padrão. A IU do Cloud Dataflow exibe um ícone de aviso caso encontre limites de cota. Nessa situação, o progresso será mais lento, mas ainda assim o job deve ser concluído.

  • Carga existente no Cloud Spanner: um job de exportação normalmente adiciona uma carga leve a uma instância do Cloud Spanner. Se a instância já tiver uma carga substancial, o job de exportação será executado mais lentamente.

  • Número de nós do Cloud Spanner: se a utilização da CPU para a instância for superior a 65%, o job será executado mais lentamente.

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

Enviar comentários sobre…

Documentação do Cloud Spanner