Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Come posso pianificare le query per un cluster Amazon Redshift?
Desidero pianificare una query da eseguire in un cluster Amazon Redshift.
Risoluzione
Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Utilizza Query Editor V2 per eseguire, visualizzare, salvare e pianificare query SQL per i cluster Amazon Redshift su cui hai effettuato il provisioning.
Configura le autorizzazioni dell'editor di query
Prima di creare una query pianificata, devi configurare i ruoli e le autorizzazioni AWS Identity and Access Management (AWS IAM) corretti. Le query pianificate richiedono che Amazon EventBridge avvii la query nei tempi previsti e l'API Data di Amazon Redshift per eseguire la query sul cluster.
Sia l'utente IAM che crea la pianificazione sia il ruolo IAM che esegue la query devono avere le autorizzazioni appropriate.
Accesso utente IAM
Puoi collegare policy come AmazonRedshiftDataFullAccess e AmazonEventBridgeFullAccess.
Puoi anche creare una policy personalizzata con autorizzazioni più specifiche. Per ulteriori informazioni, consulta Impostazione delle autorizzazioni per pianificare una query.
Ruolo di esecuzione per le query
Per eseguire query pianificate, identifica o crea un ruolo IAM per il cluster Amazon Redshift o il gruppo di lavoro Amazon Redshift serverless.
Quindi collega le policy, come ad esempio AmazonRedshiftDataFullAccess e AmazonEventBridgeFullAccess, in modo che Amazon Redshift possa assumere il ruolo ed eseguire azioni pianificate.
Per ulteriori informazioni, consulta Utilizzo di policy basate su identità (policy IAM) per Amazon Redshift.
Configurazione dell'assunzione del ruolo
Aggiorna la policy di attendibilità del ruolo per consentire al principale della pianificazione di assumerlo. Quindi utilizza la console Amazon Redshift o il comando AWS CLI modify-cluster-iam-roles per collegare il ruolo al cluster Amazon Redshift o al gruppo di lavoro Amazon Redshift serverless.
Autenticazione database IAM
Archivia le credenziali in un segreto di AWS Secrets Manager a cui può accedere il ruolo IAM.
Aggiungi i tag appropriati per consentire l'utilizzo dell'API Data di Amazon Redshift. Configura il ruolo IAM per ottenere credenziali Amazon Redshift temporanee. Il ruolo IAM del cluster o del gruppo di lavoro deve ritenere attendibile il principale, e l'utente del database deve avere le autorizzazioni necessarie.
Per ulteriori informazioni, consulta Autenticazione di una query pianificata.
Pianifica le query sulla console Amazon Redshift
Completa i seguenti passaggi:
- Apri la console Amazon Redshift.
- Nel pannello di navigazione, scegli Editor, quindi scegli Query Editor V2
- Connettiti a un database nel cluster.
- Crea una pianificazione delle query per eseguire un'istruzione SQL.
- (Facoltativo) Se utilizzi Secrets Manager con Amazon Redshift, seleziona il segreto.
- (Facoltativo) Se utilizzi credenziali utente IAM temporanee, scegli il cluster e fornisci il database e i nomi utente.
Nota: per chiamare l'azione GetClusterCredentials, devi disporre di un set minimo di autorizzazioni.
Per visualizzare le pianificazioni appena create, completa i seguenti passaggi:
- Apri la console Amazon Redshift.
- Nel pannello di navigazione, scegli Editor, quindi scegli Query Editor V2
- Scegli Query pianificate.
Puoi attivare le notifiche di Amazon Simple Notification Service (Amazon SNS) per monitorare lo stato di esecuzione della query.
Se hai attivato Amazon SNS, assicurati che l'azione API Publish esista per events.amazonaws.com.
Esempio di policy di accesso che include l'azione Publish per events.amazonaws.com:
{ "Sid": "Allow_Publish_Events", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sns:Publish", "Resource": "arn:aws:sns:us-east-1:{ACCOUNT_ID}:{SNS_TOPIC_NAME}" }
Per ulteriori informazioni, consulta Monitoraggio della query pianificata.
Pianifica le query con EventBridge
Puoi utilizzare EventBridge e l'API Data di Amazon Redshift per pianificare le istruzioni SQL.
Completa i seguenti passaggi:
-
Definisci una regola dell'evento EventBridge denominata scheduled-refresh-currentEvents.
-
Utilizza la console EventBridge per pianificare l'esecuzione regolare della regola dell'evento o in un momento specifico. Oppure esegui questo comando AWS CLI put-rule:
aws events put-rule \ --name scheduled-refresh-currentEvents \ --schedule-expression "cron(0/5 * * * ? *)"Nota: sostituisci 5 con il numero di minuti che desideri impostare tra gli aggiornamenti.
-
Utilizza un editor di testo per creare e salvare il seguente file JSON denominato refreshCurrentEvents.json:
{ "Rule": "scheduled-refresh-currentEvents", "EventBusName": "default", "Targets": [ { "Id": "scheduled-refresh-currentEvents", "Arn": "Clsuter ARN", "RoleArn": "Role ARN", "RedshiftDataParameters": { "SecretManagerArn": "Secrets Manager ARN", "Database": "Database Name", "Sql": "REFRESH MATERIALIZED VIEW currentEvents;", "StatementName": "scheduled-refresh-currentEvents", "WithEvent": true } } ] }Nota: sostituisci Cluster ARN, Role ARNSecrets Manager ARN con i tuoi valori ARN.
-
Esegui questo comando put-targets per creare una destinazione dell'evento con il file JSON salvato:
aws events put-targets --cli-input-json file://refreshCurrentEvents.json -
Esegui questo comando remove-targets per rimuovere le destinazioni:
aws events remove-targets --rule scheduled-refresh-currentEvents --ids scheduled-refresh-currentEvents -
Esegui questo comando delete-rule per eliminare la regola:
aws events delete-rule --name scheduled-refresh-currentEvents
Visualizza lo stato e i risultati SQL
Completa i seguenti passaggi:
-
Apri la console Amazon Redshift.
-
Nel pannello di navigazione, scegli Editor, quindi scegli Query Editor V2
-
Scegli Query pianificate.
-
Seleziona la query.
-
In Cronologia delle pianificazioni, annota l'ID da utilizzare in un passaggio successivo.
-
Per recuperare i risultati della query, esegui questo comando assume-role:
aws sts assume-role --role-arn "Role ARN" --role-session-name Example Session NameNota: sostituisci Role ARN con l'ARN del ruolo che utilizzi per pianificare la query e Example Session Name con il nome della tua sessione. L'output del comando restituisce l'ID della chiave di accesso, la chiave di accesso segreta e il token di sessione.
-
Esegui questi comandi di esportazione per configurare le variabili di ambiente:
export AWS_ACCESS_KEY_ID=ExampleRoleAccessKeyID export AWS_SECRET_ACCESS_KEY=ExampleRoleSecretAccessKey export AWS_SESSION_TOKEN=ExampleSessionTokenNota: sostituisci gli esempi di valore con i tuoi valori.
-
Esegui il comando redshift-data con get-statement-result per recuperare i risultati:
aws redshift-data get-statement-result --id ID --region RegionNota: sostituisci ID con l'ID della tua istruzione e Region con la tua Regione AWS.
Informazioni correlate
Perché non riesco a connettermi ad AmazonRedshiftQueryEditor in Amazon Redshift?
Using the Amazon Redshift Data API to interact with Amazon Redshift clusters (Utilizzo dell'API Data di Amazon Redshift per interagire con i cluster Amazon Redshift)
Creazione di una regola che viene eseguita secondo una pianificazione in Amazon EventBridge
- Argomenti
- Analytics
- Lingua
- Italiano

Contenuto pertinente
AWS UFFICIALEAggiornata un anno fa