Migrar un clúster aprovisionado a Amazon Redshift Serverless
Puede migrar los clústeres aprovisionados existentes a Amazon Redshift sin servidor, lo que permite el escalado bajo demanda y automático de los recursos de computación. La migración de un clúster aprovisionado a Amazon Redshift sin servidor le permite optimizar los costos al pagar solo por los recursos que utilice y escalar de forma automática la capacidad en función de las demandas de carga de trabajo. Entre los casos de uso más comunes para la migración se incluyen la ejecución de consultas ad hoc, los trabajos periódicos de procesamiento de datos o la gestión de cargas de trabajo impredecibles sin aprovisionar recursos en exceso. Realice el siguiente conjunto de tareas para migrar el clúster de Amazon Redshift aprovisionado a la opción de implementación sin servidor.
Creación de una instantánea del clúster aprovisionado
Para transferir datos del clúster aprovisionado a Amazon Redshift Serverless, cree una instantánea del clúster aprovisionado y, a continuación, restaure la instantánea en Amazon Redshift Serverless. Amazon Redshift convierte automáticamente las claves intercaladas en claves compuestas al restaurar una instantánea de clúster aprovisionada en un espacio de nombres sin servidor.
nota
Antes de migrar los datos a un grupo de trabajo sin servidor, asegúrese de que las necesidades de clústeres aprovisionados sean compatibles con la cantidad de RPU que elija en Amazon Redshift sin servidor.
Para crear una instantánea del clúster aprovisionado
Inicie sesión en la AWS Management Console y abra la consola de Amazon Redshift en https://console.aws.amazon.com/redshiftv2/
. -
En el menú de navegación, elija Clusters (Clústeres), Snapshots (Instantáneas) y, a continuación, elija Create snapshot (Crear instantánea).
-
Introduzca las propiedades de la definición de instantánea, luego seleccione Create snapshot (Crear instantánea). La instantánea puede tardar un poco en estar disponible.
Para restaurar una instantánea de clúster aprovisionada en un espacio de nombres sin servidor:
Inicie sesión en la AWS Management Console y abra la consola de Amazon Redshift en https://console.aws.amazon.com/redshiftv2/
. -
Comience en la consola del clúster aprovisionado de Amazon Redshift y diríjase a las páginas Clusters (Clústeres), Snapshots (Instantáneas).
-
Elija la instantánea que desea utilizar.
-
Elija Restore snapshot (Restaurar instantánea), Restore to serverless namespace (Restaurar al espacio de nombres sin servidor).
-
Elija un espacio de nombres en el cual restaurar la instantánea.
-
Confirme que desea restaurar desde su instantánea. Esta acción reemplaza todas las bases de datos en su punto de conexión sin servidor por los datos de su clúster aprovisionado. Elija Restore (Restaurar).
Para obtener más información sobre las instantáneas del clúster aprovisionado, consulte Instantáneas de Amazon Redshift.
Conexión a Amazon Redshift sin servidor con un controlador
Para conectarse a Amazon Redshift Serverless con el cliente SQL de su preferencia, puede utilizar el controlador JDBC versión 2 proporcionado por Amazon Redshift. Le recomendamos conectarse mediante el controlador JDBC versión 2.1.x o posterior. El número de puerto es opcional. Si no lo incluye, Amazon Redshift Serverless utiliza el puerto número 5439 de forma predeterminada. Puede cambiar a otro puerto del intervalo de puertos 5431-5455 u 8191-8215. Para cambiar el puerto predeterminado de un punto de conexión sin servidor, utilice la AWS CLI y la API de Amazon Redshift.
Para encontrar el punto de conexión exacto que se debe utilizar para el controlador JDBC, ODBC o Python, consulte Configuración de grupos de trabajo en Amazon Redshift sin servidor. También puede utilizar la operación GetWorkgroup
de la API de Amazon Redshift sin servidor o la operación get-workgroups
de la AWS CLI para devolver información sobre el grupo de trabajo y, a continuación, conectarse.
Conexión mediante autenticación basada en contraseña
Para conectarse mediante autenticación basada en contraseña, utilice la sintaxis a continuación.
jdbc:redshift://<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com:5439/?username=
enter a username
&password=enter a password
Para conectarse mediante el controlador Python de Amazon Redshift, utilice la siguiente sintaxis.
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
Conexión mediante IAM
Si prefiere iniciar sesión con IAM, utilice el siguiente punto de conexión del controlador. Este punto de conexión del controlador le permite conectarse a una base de datos específica y utiliza la operación de la API GetCredentials
de Amazon Redshift Serverless
jdbc:redshift:iam://<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com:5439/<database-name>
Este punto de conexión del controlador no admite la personalización dbUser
, dbGroup
y auto-create
. De forma predeterminada, el controlador crea automáticamente usuarios de la base de datos al iniciar sesión y los asigna a grupos de acuerdo con los grupos que haya definido en IAM. Nota: Los nombres de grupos que especifique en IAM deben contener solo letras minúsculas, números, guion bajo (“_”), signo más (“+”), punto (“.”), símbolo arroba (@) o guion (“-”). De lo contrario, es posible que el controlador no se conecte dbGroup
.
Asegúrese de que su identidad de AWS tenga la política de IAM correcta para la acción RedshiftServerlessGetCredentials
. A continuación, se muestra una política de IAM de ejemplo que concede los permisos correctos a una identidad de AWS para conectarse a Amazon Redshift Serverless. Para obtener más información sobre los permisos de IAM, consulte Agregar permisos de identidad de IAM.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Action": "redshift-serverless:GetCredentials", "Resource": "*" } ] }
Conexión mediante IAM con dbUser y dbGroups
Si desea utilizar opciones de conexión dbUser y dbGroups personalizados, utilice el siguiente punto de conexión del controlador. Al igual que el otro punto de conexión del controlador de Amazon Redshift Serverless, esta sintaxis crea automáticamente usuarios de base de datos al iniciar sesión. Este punto de conexión del controlador utiliza la operación GetCredentials
de la API de Amazon Redshift sin servidor. El recurso dbUser debe comenzar por una letra, solo debe contener caracteres alfanuméricos, guion bajo (“_”), signo más (“+”), punto (“.”), símbolo arroba (“@”) o guion (“-”), y debe tener menos de 128 caracteres. El recurso dbGroups solo puede contener letras en minúscula, números, guion bajo (“_”), signo más (“+”), punto (“.”), símbolo arroba (@) o guion.
jdbc:redshift:iam://redshift-serverless-<workgroup-name>:<aws-region>/<database-name>
Para conectarse mediante el controlador Python de Amazon Redshift, utilice la siguiente sintaxis.
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
Conexión mediante ODBC
Para conectarse a través de ODBC, utilice la siguiente sintaxis.
Driver={Amazon Redshift (x64)}; Server=<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com; Database=dev
Uso del SDK de Amazon Redshift Serverless
Si escribió scripts de administración con el SDK de Amazon Redshift, debe utilizar el nuevo SDK de Amazon Redshift sin servidor para administrar Amazon Redshift sin servidor. Para obtener más información sobre las operaciones de la API disponibles, consulte la Guía de referencia de la API de Amazon Redshift Serverless.