Migrar um cluster provisionado para o Amazon Redshift Serverless
Você pode migrar clusters provisionados existentes para o Amazon Redshift sem servidor, o que permite o ajuste de escala automático e sob demanda dos recursos de computação. A migração de um cluster provisionado para o Amazon Redshift sem servidor permite que você otimize os custos pagando somente pelos recursos que você usa e escalando automaticamente a capacidade com base nas demandas do workload. Os casos de uso comuns de migração incluem execução de consultas ad hoc, trabalhos periódicos de processamento de dados ou tratamento de workloads imprevisíveis sem provisionamento excessivo de recursos. Execute o conjunto de tarefas a seguir para migrar o cluster provisionado do Amazon Redshift para a opção de implantação sem servidor.
Criar um snapshot do cluster provisionado
Para transferir dados do cluster provisionado para o Amazon Redshift Serverless, crie um snapshot do cluster provisionado e restaure o snapshot no Amazon Redshift Serverless. O Amazon Redshift converte automaticamente chaves intercaladas em chaves compostas quando você restaura um snapshot de cluster provisionado para um namespace de tecnologia sem servidor.
nota
Antes de migrar seus dados para um grupo de trabalho com tecnologia sem servidor, garanta que suas necessidades de cluster provisionado sejam compatíveis com a quantidade de RPU que você escolher no Amazon Redshift Serverless.
Para criar um snapshot do cluster provisionado
Faça login no AWS Management Console e abra o console do Amazon Redshift em https://console.aws.amazon.com/redshiftv2/
. -
No menu de navegação, escolha Clusters, Snapshots e Create snapshot (Criar snapshot).
-
Insira as propriedades da definição do snapshot e escolha Create snapshot (Criar snapshot). Pode levar algum tempo para o snapshot estar disponível.
Para restaurar um snapshot de cluster provisionado para um namespace de tecnologia sem servidor:
Faça login no AWS Management Console e abra o console do Amazon Redshift em https://console.aws.amazon.com/redshiftv2/
. -
Comece no console do cluster provisionado do Amazon Redshift e navegue até a página Clusters, Snapshots.
-
Escolha um snapshot para usar.
-
Selecione Restore from snapshot (Restaurar a partir do snapshot), Restore to serverless namespace (Restaurar para namespace com tecnologia sem servidor).
-
Escolha um namespace para o qual deseja restaurar o snapshot.
-
Confirme que você deseja restaurar a partir do snapshot. Essa ação substitui todos os bancos de dados de seu endpoint sem servidor pelos dados do cluster provisionado. Escolha Restore.
Para obter mais informações sobre snapshots de cluster provisionado, consulte Snapshots do Amazon Redshift.
Conexão com o Amazon Redshift sem servidor usando um driver
Para conectar ao Amazon Redshift Serverless com o cliente SQL de sua preferência, é possível usar o driver JDBC versão 2 fornecido pelo Amazon Redshift. Recomendamos conectar usando o driver JDBC versão 2.1.x ou posterior. O número da porta é opcional. Se você não o incluir, o Amazon Redshift Serverless usará como padrão a porta número 5439. Você pode mudar para outra porta do intervalo de portas 5431–5455 ou 8191–8215. Para alterar a porta padrão de um endpoint de tecnologia sem servidor, use a AWS CLI e a API do Amazon Redshift.
Para encontrar o endpoint exato a ser usado para o driver JDBC, ODBC ou Python, consulte Configuração do grupo de trabalho no Amazon Redshift sem servidor. Também é possível usar a operação GetWorkgroup
da API do Amazon Redshift sem servidor ou a operação get-workgroups
da AWS CLI para retornar informações sobre seu grupo de trabalho, depois conectar-se.
Conectar-se usando autenticação baseada em senha
Para se conectar usando a autenticação baseada em senha, use a sintaxe a seguir.
jdbc:redshift://<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com:5439/?username=
enter a username
&password=enter a password
Para conectar usando o driver Python do Amazon Redshift, use a sintaxe a seguir.
import redshift_connector with redshift_connector.connect( host='<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com', database='<database-name>', user='
enter a user
', password='enter a password
' # port value of 5439 is specified by default ) as conn: pass
Conectar-se usando IAM
Se você preferir fazer login com o IAM, use o endpoint de driver a seguir. Esse endpoint de driver permite que você se conecte a um banco de dados específico e use a operação da API GetCredentials
do Amazon Redshift Serverless.
jdbc:redshift:iam://<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com:5439/<database-name>
Esse endpoint de driver não é compatível com personalização de dbUser
, dbGroup
e auto-create
. Por padrão, o driver cria automaticamente usuários do banco de dados no login e os atribui aos grupos de acordo com os grupos que você definiu no IAM. Observação: os nomes de grupo que você especifica no IAM devem conter somente letras minúsculas, números, sublinhado (_), sinal de adição (+), ponto (.), arroba (@) ou hífen (-). Caso contrário, o driver pode não se conectar ao dbGroup
.
Certifique-se de que sua identidade da AWS tenha a política do IAM correta para a ação RedshiftServerlessGetCredentials
. Veja a seguir um exemplo de política do IAM que concede as permissões corretas para uma identidade da AWS se conectar ao Amazon Redshift Serverless. Para obter mais informações sobre as permissões do IAM, consulte Adicionar permissões de identidade do IAM.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Action": "redshift-serverless:GetCredentials", "Resource": "*" } ] }
Conectar-se usando o IAM com dbUser e dbGroups
Se você quiser usar as opções de conexão dbUser e dbGroup personalizadas, use o endpoint de driver a seguir. Como o outro endpoint de driver do Amazon Redshift Serverless, essa sintaxe cria automaticamente usuários de banco de dados no login. Esse endpoint de driver usa a operação de API GetCredentials
do Amazon Redshift sem servidor. O dbUser deve começar com uma letra, deve conter somente caracteres alfanuméricos, sublinhado (_), sinal de adição (+), ponto (.), arroba (@) ou hífen (-), e deve conter no máximo 128 caracteres. O dbGroups deve conter somente letras minúsculas, números, sublinhado (_), sinal de adição (+), ponto (.), arroba (@) ou hífen (-).
jdbc:redshift:iam://redshift-serverless-<workgroup-name>:<aws-region>/<database-name>
Para conectar usando o driver Python do Amazon Redshift, use a sintaxe a seguir.
import redshift_connector with redshift_connector.connect( iam=True, host='<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com', database='<database-name>', db_user='
enter a user
', password='enter a password
', db_groups='<db-groups>' # port value of 5439 is specified by default ) as conn: pass
Conexão usando ODBC
Para conectar usando ODBC, use a sintaxe a seguir.
Driver={Amazon Redshift (x64)}; Server=<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com; Database=dev
Usando o SDK do Amazon Redshift Serverless
Se você escreveu scripts de gerenciamento usando o SDK do Amazon Redshift, deverá usar o novo SDK do Amazon Redshift sem servidor para gerenciar o Amazon Redshift sem servidor e os recursos associados. Para obter mais informações sobre as operações da API disponíveis, consulte o Guia de referência da API do Amazon Redshift Serverless.