Como migrar dados do Amazon Redshift com uma rede VPC

Neste documento, explicamos como migrar dados do Amazon Redshift para o BigQuery usando uma VPC.

Se você tiver uma instância particular do Amazon Redshift na AWS, poderá migrar esses dados para o BigQuery criando um rede de nuvem privada virtual (VPC) e conectá-la à rede VPC do Amazon Redshift. O processo de migração de dados funciona da seguinte maneira:

  1. Crie uma rede VPC no projeto que você quer usar para a transferência. A rede VPC não pode ser uma VPC compartilhada.
  2. Você configurou uma rede privada virtual (VPN) e conectar a rede VPC do seu projeto e a rede VPC do Amazon Redshift.
  3. Você especifica a rede VPC do projeto e um intervalo de IP reservado ao configurar a transferência.
  4. O serviço de transferência de dados do BigQuery cria um projeto de locatário e o anexa ao que você está usando para a transferência.
  5. O serviço de transferência de dados do BigQuery cria uma rede VPC com um sub-rede no projeto de locatário, usando o intervalo de IP reservado especificado.
  6. O serviço de transferência de dados do BigQuery cria o peering de VPC entre a rede VPC do projeto e a rede VPC do projeto de locatário.
  7. A migração do serviço de transferência de dados do BigQuery é executada no projeto de locatário. Ela aciona uma operação de descarregamento do Amazon Redshift para uma área de preparo no um bucket do Amazon S3. A velocidade de descarregamento é determinada pelo cluster do Terraform.
  8. O serviço de transferência de dados do BigQuery envia seus dados do bucket do Amazon S3 para o BigQuery.
.

Se você quiser transferir dados da sua instância do Redshift por meio de IPs públicos, é possível migrar os dados do Amazon Redshift para o BigQuery com essas instruções.

Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  4. Enable the BigQuery and BigQuery Data Transfer Service APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  7. Enable the BigQuery and BigQuery Data Transfer Service APIs.

    Enable the APIs

Definir as permissões necessárias

Antes de criar uma transferência do Amazon Redshift, siga estas etapas:

  1. Verifique se a pessoa criando a transferência tem as seguintes permissões necessárias do Identity and Access Management (IAM) no BigQuery:

    • Permissões bigquery.transfers.update para criar a transferência
    • Permissões bigquery.datasets.update no conjunto de dados de destino

    O papel predefinido role/bigquery.admin do IAM inclui permissões bigquery.transfers.update e bigquery.datasets.update. Para mais informações sobre papéis do IAM no serviço de transferência de dados do BigQuery, consulte Controle de acesso.

  2. Consulte a documentação do Amazon S3 para garantir que você tenha configurado as permissões necessárias para ativar a transferência. No mínimo, os dados de origem do Amazon S3 precisam ter a política AmazonS3ReadOnlyAccess (em inglês) gerenciada pela AWS aplicada a eles.

  3. Conceda as permissões do IAM adequadas para criar e excluir o peering da rede VPC à pessoa que configurará a transferência. O serviço usa as credenciais de usuário do Google Cloud dessa pessoa para criar a conexão de peering de VPC.

    • Permissões para criar peering de VPC: compute.networks.addPeering
    • Permissões para excluir peering de VPC: compute.networks.removePeering

    Os papéis predefinidos roles/project.owner, roles/project.editor e roles/compute.networkAdmin do IAM incluem as permissões compute.networks.addPeering e compute.networks.removePeering por padrão.

Criar um conjunto de dados

Crie um conjunto de dados do BigQuery para armazenar os dados. Não é necessário criar tabelas.

Conceder acesso ao cluster do Amazon Redshift

Siga as instruções disponíveis em Configurar regras de entrada para clientes SQL para colocar os intervalos de IP do cluster particular do Amazon Redshift na lista de permissões. Em uma etapa posterior, você definirá o intervalo de IPs privados nessa rede VPC, ao configurar a transferência.

Conceder acesso ao bucket do Amazon S3

É necessário ter um bucket do Amazon S3 para usar como área de teste para transferir os dados do Amazon Redshift para o BigQuery. Para instruções detalhadas, consulte a documentação da Amazon.

  1. Recomendamos que você crie um usuário do IAM dedicado à Amazon e conceda a ele acesso somente leitura ao Amazon Redshift e acesso para leitura e gravação ao Amazon S3. Para concluir essa etapa, aplique as políticas a seguir:

    Permissões de migração do Amazon Redshift

  2. Crie um par de chaves de acesso do usuário do IAM para o Amazon.

Configurar controle de carga de trabalho com uma fila de migração separada

Opcionalmente, é possível definir uma fila do Amazon Redshift para a migração de forma a limitar e separar os recursos usados no processo. É possível configurar essa fila de migração com uma contagem máxima de consultas de simultaneidade. Em seguida, é possível associar um determinado grupo de usuários de migração à fila e usar essas credenciais ao configurar o processo de transferência de dados para o BigQuery. O serviço de transferência tem acesso apenas à fila de migração.

Coletar informações de transferência

Reúna as informações necessárias para configurar a migração com o serviço de transferência de dados do BigQuery:

  • Encontre a VPC e o intervalo de IPs reservados no Amazon Redshift.
  • Siga estas instruções para encontrar o URL de JDBC.
  • Encontre o nome e a senha de um usuário com as permissões adequadas para seu banco de dados do Amazon Redshift.
  • Siga as instruções em Conceder acesso ao bucket do Amazon S3 para receber um par de chaves de acesso da AWS.
  • Encontre o URI do bucket do Amazon S3 que você quer usar para a transferência. Recomendamos que você configure uma política de Ciclo de vida para esse bucket, evitando cobranças desnecessárias. O prazo de validade recomendado é de 24 horas, para que haja tempo suficiente para transferir todos os dados para o BigQuery.

Avaliar os dados

Como parte da transferência de dados, o serviço de transferência de dados do BigQuery grava dados do Amazon Redshift no Cloud Storage como arquivos CSV. Se esses arquivos contiverem o caractere ASCII 0, não poderão ser carregados no BigQuery. Sugerimos que você avalie seus dados para determinar se isso pode ser um problema para você. Se for o caso, é possível contornar isso exportando os dados para o Amazon S3 como arquivos Parquet e, em seguida, importando esses arquivos usando o serviço de transferência de dados do BigQuery. Para mais informações, consulte Visão geral das transferências do Amazon S3.

Configurar a rede VPC e a VPN

  1. Verifique se você tem permissões para ativar o peering de VPC. Para mais informações, consulte Definir as permissões necessárias.

  2. Siga as instruções neste guia para configurar uma rede VPC do Google Cloud, configurar uma VPN entre a rede VPC do seu projeto do Google Cloud e a rede VPC do Amazon Redshift e ativar Peering de VPC.

  3. Configure o Amazon Redshift para permitir a conexão com sua VPN. Para mais informações, consulte Grupos de segurança de clusters do Amazon Redshift.

  4. No Console do Google Cloud, acesse a página Redes VPC para verificar se essa rede existe no projeto do Google Cloud e se ela está conectada ao Amazon Redshift por meio da VPN.

    Acessar redes VPC

    A página do console lista todas as redes VPC.

Configurar uma transferência do Amazon Redshift

Use as instruções a seguir para configurar uma transferência do Amazon Redshift:

  1. No Console do Google Cloud, acesse a página BigQuery.

    Ir para o BigQuery

  2. Clique em Transferências de dados.

  3. Clique em Criar transferência.

  4. Na seção Tipo de origem, selecione Migração: Amazon Redshift na lista Origem.

  5. Na seção Nome da configuração de transferência, insira um nome para a transferência, como My migration, no campo Nome de exibição. Esse nome pode ter qualquer valor que identifique facilmente a transferência, caso seja necessário modificá-la no futuro.

  6. Na seção Configurações de destino, escolha o conjunto de dados criado, na lista Conjunto de dados.

  7. Na seção Detalhes da fonte de dados, faça o seguinte:

    1. Em URL de conexão de JDBC para Amazon Redshift, forneça o URL de JDBC para acessar o cluster do Amazon Redshift.
    2. Em Nome de usuário do seu banco de dados, digite o nome de usuário do banco de dados do Amazon Redshift que você quer migrar.
    3. Em Senha do seu banco de dados, insira a respectiva senha.

    4. Em ID da chave de acesso e Chave de acesso do secret, insira o par de chaves de acesso obtido em Conceder acesso ao bucket do S3.

    5. Em URI do Amazon S3, insira o URI do bucket do S3 que será utilizada como área de preparo.

    6. Em Esquema do Amazon Redshift, insira o esquema que você está migrando.

    7. Em Padrões de nome da tabela, especifique um nome ou padrão que corresponda aos nomes das tabelas no esquema. Use expressões regulares para especificar o padrão no formato: <table1Regex>;<table2Regex>. Esse padrão precisa seguir a sintaxe de expressão típica de Java. Exemplo:

      • lineitem;ordertb corresponde às tabelas chamadas lineitem e ordertb.
      • .* corresponde a todas as tabelas.

      Deixe esse campo vazio para migrar todas as tabelas do esquema especificado.

    8. Em VPC e intervalo de IP reservado, especifique o nome da rede VPC e o intervalo de endereços IP privados a serem usados na rede VPC do projeto de locatário. Especifique o intervalo de endereços IP como um bloco CIDR.

      Campo CIDR de migração do Amazon Redshift

      • O formato é VPC_network_name:CIDR, por exemplo: my_vpc:10.251.1.0/24.
      • Use intervalos de endereços de rede VPC privados padrão na notação CIDR, começando com 10.x.x.x.
      • O intervalo de IP precisa ter mais de 10 endereços IP.
      • O intervalo de IP não pode se sobrepor a nenhuma sub-rede no projeto a rede VPC ou a rede VPC do Amazon Redshift.
      • Se você tiver várias transferências configuradas para a mesma instância do Amazon Redshift, use o mesmo valor VPC_network_name:CIDR em cada uma delas para que várias transferências possam reutilizar a mesma infraestrutura de migração.
  8. Opcional: na seção Opções de notificação, faça o seguinte:

    1. Clique no botão para ativar as notificações por e-mail. Quando você ativa essa opção, o administrador de transferência recebe uma notificação por e-mail se uma execução de transferência falhar.
    2. Em Selecionar um tópico do Pub/Sub, escolha o nome do tópico ou clique em Criar um tópico. Essa opção configura notificações de execução do Pub/Sub da sua transferência.
  9. Clique em Salvar.

  10. O Console do Google Cloud exibe todos os detalhes de configuração da transferência, incluindo um Nome de recurso para ela.

Cotas e limites

Migrar uma instância particular do Amazon Redshift com uma rede VPC executa a migração. em uma infraestrutura de locatário individual. Devido aos limites de recursos de computação, no máximo cinco execuções de transferência simultâneas são permitidas.

O BigQuery tem uma cota de carregamento de 15 TB para cada job de carregamento de cada tabela. Internamente, o Amazon Redshift compacta os dados da tabela. Portanto, o tamanho da tabela exportada será maior do que o informado pelo Amazon Redshift. Se estiver planejando migrar uma tabela com mais de 15 TB, entre em contato com o Cloud Customer Care primeiro.

Usar esse serviço pode gerar custos não previstos pelo Google. Consulte as páginas de preços do Amazon Redshift e do Amazon S3 para mais detalhes.

Devido ao modelo de consistência do Amazon S3, é possível que alguns arquivos não sejam incluídos na transferência para o BigQuery.

A seguir