Migrar um cluster provisionado para o Amazon Redshift Serverless - Amazon Redshift

O Amazon Redshift não permitirá mais a criação de funções definidas pelo usuário (UDFs) do Python a partir de 1.º de novembro de 2025. Se quiser usar UDFs do Python, você deve criá-las antes dessa data. As UDFs do Python existentes continuarão a funcionar normalmente. Para ter mais informações, consulte a publicação de blog .

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

nota

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.

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.

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

  1. Faça login no AWS Management Console e abra o console do Amazon Redshift em https://console.aws.amazon.com/redshiftv2/.

  2. No menu de navegação, escolha Clusters, Snapshots e Create snapshot (Criar snapshot).

  3. 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:

  1. Faça login no AWS Management Console e abra o console do Amazon Redshift em https://console.aws.amazon.com/redshiftv2/.

  2. Comece no console do cluster provisionado do Amazon Redshift e navegue até a página Clusters, Snapshots.

  3. Escolha um snapshot para usar.

  4. Selecione Restore from snapshot (Restaurar a partir do snapshot), Restore to serverless namespace (Restaurar para namespace com tecnologia sem servidor).

  5. Escolha um namespace para o qual deseja restaurar o snapshot.

  6. 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 sem servidor com o cliente SQL de sua preferência, é possível usar o driver JDBC versão 2.x fornecido pelo Amazon Redshift. É recomendável conectar-se ao Amazon Redshift usando a versão mais recente do driver JDBC do Amazon Redshift versão 2.x. 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 estabelecer uma conexão usando o driver JDBC do Amazon Redshift versão 2.x com autenticação baseada em senha, use a sintaxe a seguir:

jdbc:redshift://<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com:5439/?username=username&password=password

Para estabelecer uma conexão usando o conector do Amazon Redshift Python com autenticação baseada em senha, 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='username', password='password' # port value of 5439 is specified by default ) as conn: pass

Para estabelecer uma conexão usando o driver ODBC do Amazon Redshift versão 2.x com autenticação baseada em senha, use a sintaxe a seguir:

Driver={Amazon Redshift ODBC Driver (x64)}; Server=<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com; Database=database-name; User=username; Password=password

Conectar-se usando IAM

Se você preferir fazer login com o IAM, use a operação de API GetCredentials do Amazon Redshift sem servidor.

Para usar a autenticação do IAM, adicione iam: ao URL do JDBC do Amazon Redshift seguido por jdbc:redshift: conforme especificado no exemplo a seguir.

jdbc:redshift:iam://<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com:5439/<database-name>

Esse endpoint do Amazon Redshift sem servidor não é compatível com personalização de dbUser, dbGroup ou auto-create. Por padrão, o driver cria automaticamente usuários do banco de dados no login. Em seguida, ele atribui aos usuários funções de banco de dados do Amazon Redshift com base nas tags especificadas no IAM ou com base nos grupos definidos em seu provedor de identidades (IdP).

Certifique-se de que sua identidade da AWS tenha a política do IAM correta para a ação redshift-serverless:GetCredentials. 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 informações sobre como permissões do IAM, consulte Adicionar e remover permissões de identidade do IAM no Guia do usuário do IAM.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Action": "redshift-serverless:GetCredentials", "Resource": "*" } ] }

Para estabelecer uma conexão usando o conector do Amazon Redshift Python com autenticação baseada em IAM, use iam=true no seu código, conforme mostrado na 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>' <IAM credentials> ) as conn: pass

Para IAM credentials, você pode usar qualquer credencial, incluindo as seguintes:

  • Configuração do perfil da AWS

  • Credenciais do IAM (um ID de chave de acesso, uma chave de acesso secreta e, opcionalmente, um token de sessão).

  • Federação do provedor de identidade.

Para estabelecer uma conexão usando o driver ODBC do Amazon Redshift versão 2.x com autenticação baseada em IAM e um perfil, use a seguinte sintaxe:

Driver={Amazon Redshift ODBC Driver (x64)}; IAM=true; Server=<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com; Database=database-name; Profile=aws-profile-name;

Conexão usando o IAM com a API GetClusterCredentials

nota

Ao se conectar ao Amazon Redshift sem servidor, recomendamos que você use a API GetCredentials. Essa API oferece uma funcionalidade abrangente de controle de acesso baseado em funções (RBAC), bem como outros novos recursos que não estão disponíveis na GetClusterCredentials. Oferecemos suporte à API GetClusterCredentials para simplificar a transição de clusters provisionados para grupos de trabalho sem servidor, mas é altamente recomendável migrar para o uso o mais rápido possível de GetCredentials para obter a compatibilidade ideal.

Você pode estabelecer uma conexão com o Amazon Redshift sem servidor usando a API GetClusterCredentials. Para implementar esse método de autenticação, modifique seu cliente ou aplicativo incorporando os seguintes parâmetros:

  • iam=true

  • clusterid/cluster_identifier=redshift-serverless-<workgroup-name>

  • region=<aws-region>

Os exemplos a seguir demonstram o plug-in do BrowserSAML em todos os três drivers. Isso representa uma das várias abordagens de autenticação disponíveis. Os exemplos podem ser modificados para usar métodos de autenticação ou plug-ins alternativos de acordo com seus requisitos específicos.

Permissões de política do IAM para GetClusterCredentials

Veja abaixo um exemplo de política do IAM com as permissões necessárias para usar GetClusterCredentials com o Amazon Redshift sem servidor:

JSON

Para estabelecer uma conexão usando o driver JDBC do Amazon Redshift versão 2.x com GetClusterCredentials, use a sintaxe a seguir:

jdbc:redshift:iam://redshift-serverless-<workgroup-name>:<aws-region>/<database-name>?plugin_name=com.amazon.redshift.plugin.BrowserSamlCredentialsProvider&login_url=<single sign-on URL from IdP>"

Para estabelecer uma conexão usando o conector do Amazon Redshift Python com GetClusterCredentials, use a sintaxe a seguir:

import redshift_connector with redshift_connector.connect( iam=True, cluster_identifier='redshift-serverless-<workgroup-name>', region='<aws-region>', database='<database-name>', credentials_provider='BrowserSamlCredentialsProvider' login_url='<single sign-on URL from IdP>' # port value of 5439 is specified by default ) as conn: pass

Para estabelecer uma conexão usando o driver ODBC do Amazon Redshift versão 2.x com GetClusterCredentials, use a sintaxe a seguir:

Driver= {Amazon Redshift ODBC Driver (x64)}; IAM=true; isServerless=true; ClusterId=redshift-serverless-<workgroup-name>; region=<aws-region>; plugin_name=BrowserSAML;login_url=<single sign-on URL from IdP>

Veja a seguir um exemplo de configuração de DSN ODBC no Windows:

A guia Conexão no driver ODBC do Amazon Redshift para Windows. Os campos correspondentes ao exemplo de sintaxe acima são preenchidos.

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.