Migre o esquema e os dados do Amazon Redshift
Este documento descreve o processo de migração de dados do Amazon Redshift para o BigQuery através de endereços IP públicos.
Pode usar o Serviço de transferência de dados do BigQuery para copiar os seus dados de um armazém de dados do Amazon Redshift para o BigQuery. O serviço envolve agentes de migração no GKE e aciona uma operação de descarregamento do Amazon Redshift para uma área de preparação num contentor do Amazon S3. Em seguida, o Serviço de transferência de dados do BigQuery transfere os seus dados do contentor do Amazon S3 para o BigQuery.
Este diagrama mostra o fluxo geral de dados entre um data warehouse do Amazon Redshift e o BigQuery durante uma migração.
Se quiser transferir dados da sua instância do Amazon Redshift através de uma nuvem virtual privada (VPC) com endereços IP privados, consulte o artigo Migrar dados do Amazon Redshift com a VPC.
Antes de começar
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and BigQuery Data Transfer Service APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and BigQuery Data Transfer Service APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. Certifique-se de que o principal que está a criar a transferência tem as seguintes autorizações no projeto que contém a tarefa de transferência:
bigquery.transfers.update
para criar a transferência- Autorizações de
bigquery.datasets.get
ebigquery.datasets.update
no conjunto de dados de destino
A função de gestão de identidade e de acesso (IAM)
roles/bigquery.admin
predefinida inclui as autorizaçõesbigquery.transfers.update
,bigquery.datasets.update
ebigquery.datasets.get
. Para mais informações sobre as funções do IAM no Serviço de transferência de dados do BigQuery, consulte o artigo Controlo de acesso.Consulte a documentação do Amazon S3 para garantir que configurou todas as autorizações necessárias para ativar a transferência. No mínimo, os dados de origem do Amazon S3 têm de ter a política gerida pela AWS
AmazonS3ReadOnlyAccess
aplicada.Recomendamos que crie um utilizador do Amazon IAM dedicado e conceda a esse utilizador apenas acesso de leitura ao Amazon Redshift e acesso de leitura e gravação ao Amazon S3. Para alcançar este passo, pode aplicar as seguintes políticas:
Crie um par de chaves de acesso de utilizador do IAM da Amazon.
- Siga estas instruções para obter o URL JDBC.
- Obtenha o nome de utilizador e a palavra-passe de um utilizador com as autorizações adequadas para a sua base de dados do Amazon Redshift.
- Siga as instruções em Conceda acesso ao seu contentor do Amazon S3 para obter um par de chaves de acesso da AWS.
- Obtenha o URI do contentor do Amazon S3 que quer usar para a transferência. Recomendamos que configure uma política de ciclo de vida para este contentor, de modo a evitar custos desnecessários. O tempo de expiração recomendado é de 24 horas para permitir tempo suficiente para transferir todos os dados para o BigQuery.
Na Google Cloud consola, aceda à página BigQuery.
Clique em Transferências de dados.
Clique em Criar transferência.
Na secção Tipo de origem, selecione Migração: Amazon Redshift na lista Origem.
Na secção Nome da configuração da transferência, introduza um nome para a transferência, como
My migration
, no campo Nome a apresentar. O nome a apresentar pode ser qualquer valor que lhe permita identificar facilmente a transferência se precisar de a modificar mais tarde.Na secção Definições de destino, escolha o conjunto de dados que criou na lista Conjunto de dados.
Na secção Detalhes da origem de dados, faça o seguinte:
- Para o URL de ligação JDBC para o Amazon Redshift, indique o URL JDBC para aceder ao seu cluster do Amazon Redshift.
- Para Nome de utilizador da sua base de dados, introduza o nome de utilizador da base de dados do Amazon Redshift que quer migrar.
Para Palavra-passe da sua base de dados, introduza a palavra-passe da base de dados.
Para o ID da chave de acesso e a chave de acesso secreta, introduza o par de chaves de acesso que obteve em Conceda acesso ao seu contentor do S3.
Para o URI do Amazon S3, introduza o URI do contentor do S3 que vai usar como área de preparação.
Para Esquema do Amazon Redshift, introduza o esquema do Amazon Redshift que está a migrar.
Para Padrões de nomes de tabelas, especifique um nome ou um padrão para fazer corresponder os nomes das tabelas no esquema. Pode usar expressões regulares para especificar o padrão no formato:
<table1Regex>;<table2Regex>
. O padrão deve seguir a sintaxe de expressão regular Java. Por exemplo:lineitem;ordertb
corresponde a tabelas com os nomeslineitem
eordertb
..*
corresponde a todas as tabelas.
Deixe este campo vazio para migrar todas as tabelas do esquema especificado.
Para a VPC e o intervalo de IPs reservados, deixe o campo em branco.
No menu Conta de serviço, selecione uma conta de serviço das contas de serviço associadas ao seu Google Cloud projeto. Pode associar uma conta de serviço à sua transferência em vez de usar as suas credenciais de utilizador. Para mais informações sobre a utilização de contas de serviço com transferências de dados, consulte o artigo Utilize contas de serviço.
- Se iniciou sessão com uma identidade federada, é necessária uma conta de serviço para criar uma transferência. Se tiver iniciado sessão com uma Conta Google, uma conta de serviço para a transferência é opcional.
- A conta de serviço tem de ter as autorizações necessárias.
Opcional: na secção Opções de notificação, faça o seguinte:
- Clique no botão para ativar as notificações por email. Quando ativa esta opção, o administrador da transferência recebe uma notificação por email quando uma execução de transferência falha.
- Em Selecionar um tópico do Pub/Sub, escolha o nome do tópico ou clique em Criar um tópico. Esta opção configura notificações executadas pelo Pub/Sub para a transferência.
Clique em Guardar.
A Google Cloud consola apresenta todos os detalhes da configuração da transferência, incluindo um nome do recurso para esta transferência.
--project_id
--data_source
--target_dataset
--display_name
--params
- project_id é o ID do seu Google Cloud projeto. Se
--project_id
não for especificado, é usado o projeto predefinido. - data_source é a origem de dados:
redshift
. - dataset é o conjunto de dados de destino do BigQuery para a configuração de transferência.
- name é o nome a apresentar da configuração de transferência. O nome da transferência pode ser qualquer valor que lhe permita identificar a transferência se precisar de a modificar mais tarde.
- service_account: é o nome da conta de serviço usado para autenticar a sua transferência. A conta de serviço deve ser propriedade do mesmo
project_id
usado para criar a transferência e deve ter todas as autorizações necessárias. - parameters contém os parâmetros da configuração de transferência criada no formato JSON. Por exemplo:
--params='{"param":"param_value"}'
. jdbc_url
: o URL de ligação JDBC é usado para localizar o cluster do Amazon Redshift.database_username
: o nome de utilizador para aceder à sua base de dados para descarregar tabelas específicas.database_password
: a palavra-passe usada com o nome de utilizador para aceder à sua base de dados para descarregar tabelas especificadas.access_key_id
: o ID da chave de acesso para assinar pedidos feitos à AWS.secret_access_key
: a chave de acesso secreta usada com o ID da chave de acesso para assinar pedidos feitos à AWS.s3_bucket
: o URI do Amazon S3 que começa por "s3://" e especifica um prefixo para os ficheiros temporários a usar.redshift_schema
: O esquema do Amazon Redshift que contém todas as tabelas a migrar.table_name_patterns
: padrões de nomes de tabelas separados por um ponto e vírgula (;). O padrão de tabela é uma expressão regular para as tabelas a migrar. Se não forem fornecidas, todas as tabelas no esquema da base de dados são migradas.- Saiba como migrar instâncias privadas do Amazon Redshift com a VPC.
- Saiba mais acerca do Serviço de transferência de dados do BigQuery.
- Migre código SQL com a tradução de SQL em lote.
Defina as autorizações necessárias
Antes de criar uma transferência do Amazon Redshift:
Crie um conjunto de dados
Crie um conjunto de dados do BigQuery para armazenar os seus dados. Não tem de criar tabelas.
Conceda acesso ao seu cluster do Amazon Redshift
Adicione os seguintes intervalos de IP do seu cluster privado do Amazon Redshift a uma lista de autorizações configurando as regras do grupo de segurança. Pode colocar na lista de autorizações os endereços IP que correspondem à localização do seu conjunto de dados ou pode colocar na lista de autorizações todos os endereços IP na tabela abaixo. Estes endereços IP pertencentes à Google estão reservados para migrações de dados do Amazon Redshift.
Localizações regionais
Descrição da região | Nome da região | Endereços IP | |
---|---|---|---|
Americas | |||
Columbus, Ohio | us-east5 |
34.162.72.184 34.162.173.185 34.162.205.205 34.162.81.45 34.162.182.149 34.162.59.92 34.162.157.190 34.162.191.145 |
|
Dallas | us-south1 |
34.174.172.89 34.174.40.67 34.174.5.11 34.174.96.109 34.174.148.99 34.174.176.19 34.174.253.135 34.174.129.163 |
|
Iowa | us-central1 |
34.121.70.114 34.71.81.17 34.122.223.84 34.121.145.212 35.232.1.105 35.202.145.227 35.226.82.216 35.225.241.102 |
|
Las Vegas | us-west4 |
34.125.53.201 34.125.69.174 34.125.159.85 34.125.152.1 34.125.195.166 34.125.50.249 34.125.68.55 34.125.91.116 |
|
Los Angeles | us-west2 |
35.236.59.167 34.94.132.139 34.94.207.21 34.94.81.187 34.94.88.122 35.235.101.187 34.94.238.66 34.94.195.77 |
|
México | northamerica-south1 |
34.51.6.35 34.51.7.113 34.51.12.83 34.51.10.94 34.51.11.219 34.51.11.52 34.51.2.114 34.51.15.251 |
|
Montréal | northamerica-northeast1 |
34.95.20.253 35.203.31.219 34.95.22.233 34.95.27.99 35.203.12.23 35.203.39.46 35.203.116.49 35.203.104.223 |
|
Virgínia do Norte | us-east4 |
35.245.95.250 35.245.126.228 35.236.225.172 35.245.86.140 35.199.31.35 35.199.19.115 35.230.167.48 35.245.128.132 35.245.111.126 35.236.209.21 |
|
Oregon | us-west1 |
35.197.117.207 35.199.178.12 35.197.86.233 34.82.155.140 35.247.28.48 35.247.31.246 35.247.106.13 34.105.85.54 |
|
Salt Lake City | us-west3 |
34.106.37.58 34.106.85.113 34.106.28.153 34.106.64.121 34.106.246.131 34.106.56.150 34.106.41.31 34.106.182.92 |
|
São Paulo | southamerica-east1 |
35.199.88.228 34.95.169.140 35.198.53.30 34.95.144.215 35.247.250.120 35.247.255.158 34.95.231.121 35.198.8.157 |
|
Santiago | southamerica-west1 |
34.176.188.48 34.176.38.192 34.176.205.134 34.176.102.161 34.176.197.198 34.176.223.236 34.176.47.188 34.176.14.80 |
|
Carolina do Sul | us-east1 |
35.196.207.183 35.237.231.98 104.196.102.222 35.231.13.201 34.75.129.215 34.75.127.9 35.229.36.137 35.237.91.139 |
|
Toronto | northamerica-northeast2 |
34.124.116.108 34.124.116.107 34.124.116.102 34.124.116.80 34.124.116.72 34.124.116.85 34.124.116.20 34.124.116.68 |
|
Europa | |||
Bélgica | europe-west1 |
35.240.36.149 35.205.171.56 34.76.234.4 35.205.38.234 34.77.237.73 35.195.107.238 35.195.52.87 34.76.102.189 |
|
Berlim | europe-west10 |
34.32.28.80 34.32.31.206 34.32.19.49 34.32.33.71 34.32.15.174 34.32.23.7 34.32.1.208 34.32.8.3 |
|
Finlândia | europe-north1 |
35.228.35.94 35.228.183.156 35.228.211.18 35.228.146.84 35.228.103.114 35.228.53.184 35.228.203.85 35.228.183.138 |
|
Frankfurt | europe-west3 |
35.246.153.144 35.198.80.78 35.246.181.106 35.246.211.135 34.89.165.108 35.198.68.187 35.242.223.6 34.89.137.180 |
|
Londres | europe-west2 |
35.189.119.113 35.189.101.107 35.189.69.131 35.197.205.93 35.189.121.178 35.189.121.41 35.189.85.30 35.197.195.192 |
|
Madrid | europe-southwest1 |
34.175.99.115 34.175.186.237 34.175.39.130 34.175.135.49 34.175.1.49 34.175.95.94 34.175.102.118 34.175.166.114 |
|
Milão | europe-west8 |
34.154.183.149 34.154.40.104 34.154.59.51 34.154.86.2 34.154.182.20 34.154.127.144 34.154.201.251 34.154.0.104 |
|
Países Baixos | europe-west4 |
35.204.237.173 35.204.18.163 34.91.86.224 34.90.184.136 34.91.115.67 34.90.218.6 34.91.147.143 34.91.253.1 |
|
Paris | europe-west9 |
34.163.76.229 34.163.153.68 34.155.181.30 34.155.85.234 34.155.230.192 34.155.175.220 34.163.68.177 34.163.157.151 |
|
Estocolmo | europe-north2 |
34.51.133.48 34.51.136.177 34.51.128.140 34.51.141.252 34.51.139.127 34.51.142.55 34.51.134.218 34.51.138.9 |
|
Turim | europe-west12 |
34.17.15.186 34.17.44.123 34.17.41.160 34.17.47.82 34.17.43.109 34.17.38.236 34.17.34.223 34.17.16.47 |
|
Varsóvia | europe-central2 |
34.118.72.8 34.118.45.245 34.118.69.169 34.116.244.189 34.116.170.150 34.118.97.148 34.116.148.164 34.116.168.127 |
|
Zurique | europe-west6 |
34.65.205.160 34.65.121.140 34.65.196.143 34.65.9.133 34.65.156.193 34.65.216.124 34.65.233.83 34.65.168.250 |
|
Ásia-Pacífico | |||
Deli | asia-south2 |
34.126.212.96 34.126.212.85 34.126.208.224 34.126.212.94 34.126.208.226 34.126.212.232 34.126.212.93 34.126.212.206 |
|
Hong Kong | asia-east2 |
34.92.245.180 35.241.116.105 35.220.240.216 35.220.188.244 34.92.196.78 34.92.165.209 35.220.193.228 34.96.153.178 |
|
Jacarta | asia-southeast2 |
34.101.79.105 34.101.129.32 34.101.244.197 34.101.100.180 34.101.109.205 34.101.185.189 34.101.179.27 34.101.197.251 |
|
Melbourne | australia-southeast2 |
34.126.196.95 34.126.196.106 34.126.196.126 34.126.196.96 34.126.196.112 34.126.196.99 34.126.196.76 34.126.196.68 |
|
Mumbai | asia-south1 |
34.93.67.112 35.244.0.1 35.200.245.13 35.200.203.161 34.93.209.130 34.93.120.224 35.244.10.12 35.200.186.100 |
|
Osaca | asia-northeast2 |
34.97.94.51 34.97.118.176 34.97.63.76 34.97.159.156 34.97.113.218 34.97.4.108 34.97.119.140 34.97.30.191 |
|
Seul | asia-northeast3 |
34.64.152.215 34.64.140.241 34.64.133.199 34.64.174.192 34.64.145.219 34.64.136.56 34.64.247.158 34.64.135.220 |
|
Singapura | asia-southeast1 |
34.87.12.235 34.87.63.5 34.87.91.51 35.198.197.191 35.240.253.175 35.247.165.193 35.247.181.82 35.247.189.103 |
|
Sydney | australia-southeast1 |
35.189.33.150 35.189.38.5 35.189.29.88 35.189.22.179 35.189.20.163 35.189.29.83 35.189.31.141 35.189.14.219 |
|
Taiwan | asia-east1 |
35.221.201.20 35.194.177.253 34.80.17.79 34.80.178.20 34.80.174.198 35.201.132.11 35.201.223.177 35.229.251.28 35.185.155.147 35.194.232.172 |
|
Tóquio | asia-northeast1 |
34.85.11.246 34.85.30.58 34.85.8.125 34.85.38.59 34.85.31.67 34.85.36.143 34.85.32.222 34.85.18.128 34.85.23.202 34.85.35.192 |
|
Médio Oriente | |||
Damã | me-central2 |
34.166.20.177 34.166.10.104 34.166.21.128 34.166.19.184 34.166.20.83 34.166.18.138 34.166.18.48 34.166.23.171 |
|
Doha | me-central1 |
34.18.48.121 34.18.25.208 34.18.38.183 34.18.33.25 34.18.21.203 34.18.21.80 34.18.36.126 34.18.23.252 |
|
Telavive | me-west1 |
34.165.184.115 34.165.110.74 34.165.174.16 34.165.28.235 34.165.170.172 34.165.187.98 34.165.85.64 34.165.245.97 |
|
África | |||
Joanesburgo | africa-south1 |
34.35.11.24 34.35.10.66 34.35.8.32 34.35.3.248 34.35.2.113 34.35.5.61 34.35.7.53 34.35.3.17 |
Localizações multirregionais
Descrição de várias regiões | Nome da multirregião | Endereços IP |
---|---|---|
Centros de dados nos Estados-Membros da União Europeia1 | EU |
34.76.156.158 34.76.156.172 34.76.136.146 34.76.1.29 34.76.156.232 34.76.156.81 34.76.156.246 34.76.102.206 34.76.129.246 34.76.121.168 |
Centros de dados nos Estados Unidos | US |
35.185.196.212 35.197.102.120 35.185.224.10 35.185.228.170 35.197.5.235 35.185.206.139 35.197.67.234 35.197.38.65 35.185.202.229 35.185.200.120 |
1 Os dados localizados na multirregião EU
não são armazenados nos centros de dados europe-west2
(Londres) nem europe-west6
(Zurique).
Conceda acesso ao seu contentor do Amazon S3
Tem de ter um contentor do Amazon S3 para usar como área de preparação para transferir os dados do Amazon Redshift para o BigQuery. Para ver instruções detalhadas, consulte a documentação da Amazon.
Configure o controlo da carga de trabalho com uma fila de migração separada
Opcionalmente, pode definir uma fila do Amazon Redshift para fins de migração para limitar e separar os recursos usados para a migração. Pode configurar esta fila de migração com uma quantidade máxima de consultas simultâneas. Em seguida, pode associar um determinado grupo de utilizadores de migração à fila e usar essas credenciais quando configurar a migração para transferir dados para o BigQuery. O serviço de transferência só tem acesso à fila de migração.
Recolha informações de transferência
Reúna as informações de que precisa para configurar a migração com o Serviço de transferência de dados do BigQuery:
Avalie os seus dados
Como parte da transferência de dados, o Serviço de transferência de dados do BigQuery escreve dados do Amazon Redshift para o Cloud Storage como ficheiros CSV. Se estes ficheiros contiverem o caráter ASCII 0, não podem ser carregados para o BigQuery. Sugerimos que avalie os seus dados para determinar se isto pode ser um problema para si. Se for o caso, pode contornar esta situação exportando os dados para o Amazon S3 como ficheiros Parquet e, em seguida, importando esses ficheiros através do Serviço de transferência de dados do BigQuery. Para mais informações, consulte o artigo Vista geral das transferências do Amazon S3.
Configure uma transferência do Amazon Redshift
Selecione uma das seguintes opções:
Consola
bq
Introduza o comando bq mk
e forneça a flag de criação de transferência
--transfer_config
. Os seguintes indicadores também são obrigatórios:
bq mk \ --transfer_config \ --project_id=project_id \ --data_source=data_source \ --target_dataset=dataset \ --display_name=name \ --service_account_name=service_account \ --params='parameters'
Onde:
Os parâmetros necessários para uma configuração de transferência do Amazon Redshift são:
Por exemplo, o comando seguinte cria uma transferência do Amazon Redshift
denominada My Transfer
com um conjunto de dados de destino denominado mydataset
e um projeto
com o ID de google.com:myproject
.
bq mk \
--transfer_config \
--project_id=myproject \
--data_source=redshift \
--target_dataset=mydataset \
--display_name='My Transfer' \
--params='{"jdbc_url":"jdbc:postgresql://test-example-instance.sample.us-west-1.redshift.amazonaws.com:5439/dbname","database_username":"my_username","database_password":"1234567890","access_key_id":"A1B2C3D4E5F6G7H8I9J0","secret_access_key":"1234567890123456789012345678901234567890","s3_bucket":"s3://bucket/prefix","redshift_schema":"public","table_name_patterns":"table_name"}'
API
Use o método projects.locations.transferConfigs.create
e forneça uma instância do recurso TransferConfig
.
Java
Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.
Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Quotas e limites
O BigQuery tem uma quota de carregamento de 15 TB para cada tarefa de carregamento para cada tabela. Internamente, o Amazon Redshift comprime os dados da tabela, pelo que o tamanho da tabela exportada é superior ao tamanho da tabela comunicado pelo Amazon Redshift. Se planeia migrar uma tabela com mais de 15 TB, contacte primeiro o apoio ao cliente da nuvem.
A utilização deste serviço pode incorrer em custos fora da Google. Reveja as páginas de preços do Amazon Redshift e do Amazon S3 para ver detalhes.
Devido ao modelo de consistência do Amazon S3, é possível que alguns ficheiros não sejam incluídos na transferência para o BigQuery.