Migrazione di un cluster con provisioning ad Amazon Redshift Serverless - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dal 1º novembre 2025. Se desideri utilizzare le UDF Python, creale prima di tale data. Le UDF Python esistenti continueranno a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog.

Migrazione di un cluster con provisioning ad Amazon Redshift Serverless

Puoi migrare i cluster con provisioning esistenti in Amazon Redshift serverless, abilitando il dimensionamento on demand e automatico delle risorse di calcolo. La migrazione di un cluster con provisioning in Amazon Redshift serverless consente di ottimizzare i costi pagando solo le risorse utilizzate e scalando automaticamente la capacità in base alle richieste del carico di lavoro. I casi d’uso comuni per la migrazione includono l’esecuzione di query ad hoc, processi periodici di elaborazione dei dati o la gestione di carichi di lavoro imprevedibili senza il provisioning eccessivo delle risorse. Esegui la seguente serie di attività per migrare il cluster Amazon Redshift con provisioning verso l’opzione di implementazione serverless.

Creazione di uno snapshot del cluster con provisioning

Nota

Amazon Redshift converte automaticamente le chiavi interlacciate in chiavi composte quando si ripristina uno snapshot di cluster con provisioning in uno spazio dei nomi serverless.

Per trasferire i dati dal cluster con provisioning ad Amazon Redshift Serverless, crea uno snapshot del cluster, quindi ripristina lo snapshot in Amazon Redshift Serverless.

Nota

Prima di migrare i dati verso un gruppo di lavoro serverless, assicurati che le esigenze del cluster sottoposto a provisioning siano compatibili con la quantità di RPU scelta in Amazon Redshift Serverless.

Creazione di uno snapshot del cluster con provisioning

  1. Accedere alla Console di gestione AWS e aprire la console Amazon Redshift all'indirizzo https://console.aws.amazon.com/redshiftv2/.

  2. Dal menu di navigazione, scegli Clusters (Cluster), Snapshots (Snapshot), quindi scegli Create snapshot (Crea snapshot).

  3. Inserisci le proprietà della definizione dello snapshot, quindi scegli Create snapshot (Crea snapshot). La disponibilità dello snapshot potrebbe richiedere del tempo.

Per ripristinare uno snapshot cluster con provisioning in uno spazio dei nomi serverless:

  1. Accedere alla Console di gestione AWS e aprire la console Amazon Redshift all'indirizzo https://console.aws.amazon.com/redshiftv2/.

  2. Avvia la console del cluster con provisioning Amazon Redshift e passa alla pagina Clusters (Cluster), Snapshots (Snapshot).

  3. Scegliere uno snapshot da utilizzare.

  4. Sceglie Ripristina da snapshot (Restore snapshot), Restore to serverless namespace (Ripristina su spazio dei nomi serverless).

  5. Scegli uno spazio dei nomi in cui ripristinare lo snapshot.

  6. Conferma di voler eseguire il ripristino dallo snapshot. Questa azione sostituisce tutti i database dell'endpoint serverless con i dati del cluster sottoposto a provisioning. Scegli Restore (Ripristina).

Per ulteriori informazioni sugli snapshot del cluster con provisioning, consulta Snapshot di Amazon Redshift.

Connessione ad Amazon Redshift serverless usando un driver

Per connetterti ad Amazon Redshift serverless con il client SQL preferito, puoi utilizzare il driver JDBC versione 2.x fornito da Amazon Redshift. Consigliamo di connetterti ad Amazon Redshift utilizzando l’ultima versione del driver JDBC versione 2.x di Amazon Redshift. Il numero di porta è facoltativo. Se non lo includi, Amazon Redshift Serverless utilizzerà il numero di porta 5439. È possibile passare a un'altra porta compresa nell'intervallo 5431-5455 o 8191-8215. Per modificare la porta predefinita per un endpoint serverless, utilizza la AWS CLI e l'API Amazon Redshift.

Per trovare l'endpoint esatto da utilizzare per il driver JDBC, ODBC o Python, consulta Configurazione del gruppo di lavoro in Amazon Redshift serverless. Puoi anche utilizzare l'operazione API GetWorkgroup di Amazon Redshift serverless o l'operazione get-workgroups della AWS CLI per restituire informazioni sul gruppo di lavoro e quindi connettersi.

Connessione tramite autenticazione basata su password

Per stabilire una connessione tramite il driver JDBC versione 2.x di Amazon Redshift con l’autenticazione basata su password, utilizza la seguente sintassi:

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

Per stabilire una connessione tramite il connettore Python di Amazon Redshift con l’autenticazione basata su password, utilizza la seguente sintassi:

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

Per stabilire una connessione tramite il driver ODBC versione 2.x di Amazon Redshift con l’autenticazione basata su password, utilizza la seguente sintassi:

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

Connessione tramite IAM

Se preferisci accedere con IAM, utilizza l’operazione dell’API GetCredentials di Amazon Redshift serverless.

Per utilizzare l’autenticazione IAM, aggiungi iam: all’URL JDBC di Amazon Redshift dopo jdbc:redshift: come mostrato nell’esempio seguente.

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

Questo endpoint Amazon Redshift serverless non supporta la personalizzazione di dbUser o dbGroup oppure la creazione automatica. Per impostazione predefinita, il driver crea automaticamente gli utenti del database all’accesso. Quindi assegna gli utenti ai ruoli del database Amazon Redshift in base ai tag specificati in IAM o in base ai gruppi definiti nel gestore dell’identità digitale.

Assicurati che la tua identità AWS abbia la policy IAM corretta per l'operazione redshift-serverless:GetCredentials. Di seguito è riportata una policy IAM di esempio che concede le autorizzazioni corrette a una identità AWS per connettersi ad Amazon Redshift Serverless. Per ulteriori informazioni sulle autorizzazioni IAM, consulta Aggiunta e rimozione di autorizzazioni per identità IAM nella Guida per l’utente di IAM.

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

Per stabilire una connessione utilizzando il connettore Python di Amazon Redshift con l’autenticazione basata su IAM, utilizza iam=true nel codice, come mostrato nella seguente sintassi:

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

Per IAM credentials puoi utilizzare qualsiasi credenziale, incluse le seguenti:

  • Configurazione del profilo AWS.

  • Credenziali IAM (ID chiave di accesso, chiave di accesso segreta e, facoltativamente, token di sessione).

  • Federazione del provider di identità.

Per stabilire una connessione tramite il driver ODBC versione 2.x di Amazon Redshift con l’autenticazione basata su IAM e un profilo, utilizza la seguente sintassi:

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;

Connessione tramite IAM con l’API GetClusterCredentials

Nota

Quando ti connetti ad Amazon Redshift serverless, consigliamo di utilizzare l’API GetCredentials. Questa API offre funzionalità complete per il controllo degli accessi basato sul ruolo (RBAC) e altre nuove funzionalità che non sono disponibili in GetClusterCredentials. Supportiamo l’API GetClusterCredentials per semplificare la transizione dai cluster con provisioning ai gruppi di lavoro serverless. Tuttavia consigliamo vivamente di iniziare a usare GetCredentials il prima possibile per una compatibilità ottimale.

Puoi stabilire una connessione ad Amazon Redshift serverless utilizzando l’API GetClusterCredentials. Per implementare questo metodo di autenticazione, modifica il client o l’applicazione incorporando i seguenti parametri:

  • iam=true

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

  • region=<aws-region>

I seguenti esempi mostrano il plugin BrowserSAML su tutti e tre i driver. Questo rappresenta uno dei diversi approcci di autenticazione disponibili. Gli esempi possono essere modificati per utilizzare metodi o plugin di autenticazione alternativi in base ai requisiti specifici.

Autorizzazioni delle policy IAM per GetClusterCredentials

Di seguito è riportato un esempio di policy IAM con le autorizzazioni necessarie per l’utilizzo di GetClusterCredentials con Amazon Redshift serverless:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "redshift-serverless:GetWorkgroup", "redshift-serverless:GetNamespace", "redshift:GetClusterCredentials", "redshift:CreateClusterUser", "redshift:JoinGroup", "redshift:ExecuteQuery", "redshift:FetchResults", "redshift:DescribeClusters", "redshift:DescribeTable" ], "Resource": [ "arn:aws:redshift-serverless:us-east-1:111122223333:workgroup/workgroup-name", "arn:aws:redshift-serverless:us-east-1:111122223333:namespace/namespace-name", "arn:aws:redshift:us-east-1:111122223333:cluster:cluster-name", "arn:aws:redshift:us-east-1:111122223333:dbuser:database-name/${redshift:DbUser}" ] } ] }

Per stabilire una connessione tramite il driver JDBC versione 2.x di Amazon Redshift con GetClusterCredentials, utilizza la seguente sintassi:

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>"

Per stabilire una connessione tramite il connettore Python di Amazon Redshift con GetClusterCredentials, utilizza la seguente sintassi:

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

Per stabilire una connessione tramite il driver ODBC versione 2.x di Amazon Redshift con GetClusterCredentials, utilizza la seguente sintassi:

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>

Di seguito è riportato un esempio di configurazione DSN ODBC in Windows:

La scheda Connessione nel driver ODBC di Amazon Redshift per Windows. Vengono compilati i campi corrispondenti alla sintassi di esempio riportata sopra.

Utilizzo dell'SDK di Amazon Redshift Serverless

Se l'utente ha scritto script di gestione utilizzando l'SDK di Amazon Redshift, è necessario utilizzare il nuovo SDK per gestire l'istanza e le risorse di Amazon Redshift serverless. Per ulteriori informazioni sulle operazioni API disponibili, consulta Documentazione di riferimento delle API di Amazon Redshift Serverless.