Amazon Redshift és un magatzem de dades al núvol ràpid, escalable, segur i totalment gestionat que et permet analitzar les teves dades a gran escala. Ara, Amazon Redshift permet accedir programàticament a les recomanacions d'Amazon Redshift Advisor mitjançant una API, la qual cosa et permet integrar suggeriments sobre com millorar el rendiment del teu clúster aprovisionat en les teves pròpies aplicacions.
Amazon Redshift Advisor ofereix recomanacions per optimitzar el rendiment del teu clúster Redshift i t'ajuda a estalviar en costos operatius. Advisor desenvolupa recomanacions personalitzades analitzant les mètriques de rendiment i ús del teu clúster i mostra recomanacions que haurien de tenir un impacte significatiu en el rendiment i les operacions. Amb la capacitat d'accedir a aquestes recomanacions a través de l'API ListRecommendations, pots fer que les recomanacions estiguin disponibles per implementar sota demanda o automàticament a través de les teves pròpies aplicacions i eines internes sense la necessitat d'accedir a la consola d'Amazon Redshift.
Aquest article et mostra com utilitzar l'API ListRecommendations per configurar notificacions per correu electrònic per a les recomanacions d'Advisor al teu clúster Redshift. Aquestes recomanacions, com ara identificar taules que s'han de netejar per ordenar les dades o trobar columnes de taula que són candidates per a la compressió, poden ajudar a millorar el rendiment i estalviar costos.
Com accedir a les recomanacions de Redshift Advisor
Per accedir a les recomanacions d'Advisor a la consola d'Amazon Redshift, selecciona Advisor al panell de navegació. Pots ampliar cada recomanació per veure més detalls i ordenar i agrupar les recomanacions.
També pots utilitzar l'API ListRecommendations per automatitzar la recepció de les recomanacions d'Advisor i implementar-les programàticament. L'API retorna una llista d'accions recomanades que es poden analitzar i implementar. L'API i els SDK també et permeten configurar fluxos de treball per utilitzar Advisor programàticament per a optimitzacions automatitzades. Aquestes comprovacions periòdiques automatitzades d'Advisor utilitzant cron, juntament amb la implementació dels canvis, poden ajudar-te a mantenir els clústers de Redshift optimitzats automàticament sense intervenció manual.
També pots utilitzar el comandament list-recommendations a la AWS Command Line Interface (AWS CLI) per invocar les recomanacions d'Advisor des de la línia de comandaments i automatitzar el flux de treball mitjançant scripts.
Descripció general de la solució
El següent diagrama il·lustra l'arquitectura de la solució:
El flux de treball de la solució consta dels següents passos:
- Una programació d'Amazon EventBridge invoca una funció AWS Lambda per recuperar les recomanacions d'Advisor.
- Advisor genera recomanacions que són accessibles a través d'una API.
- Opcionalment, aquesta solució emmagatzema les recomanacions en un bucket d'Amazon Simple Storage Service (Amazon S3).
- Amazon Simple Notification Service (Amazon SNS) envia automàticament notificacions als usuaris finals.
Prerequisits
Per implementar aquesta solució, has de tenir el següent:
- Un compte d'AWS
- Un clúster aprovisionat de Redshift
- Un tema SNS amb una subscripció de correu electrònic
- Accés d'administrador per iniciar la pila AWS CloudFormation
- Opcionalment, un bucket S3
Implementar la Solució
Completa els següents passos per implementar la solució:
- Tria Launch Stack.
- Per a Stack name, introdueix un nom per a la pila, per exemple, blog-redshift-advisor-recommendations.
- Per a SnsTopicArn, introdueix el nom del recurs d'Amazon (ARN) del tema SNS per rebre les alertes per correu electrònic.
- Per a ClusterIdentifier, introdueix el nom del teu clúster Redshift si vols rebre notificacions d'Advisor per a un clúster en particular. Si ho deixes en blanc, rebràs notificacions per a tots els clústers aprovisionats de Redshift al teu compte.
- Per a S3Bucket, introdueix el nom del bucket S3 per emmagatzemar les recomanacions detallades d'Advisor en un fitxer JSON. Si ho deixes en blanc, s'ometrà aquest pas.
- Per a ScheduleExpression, introdueix la freqüència en format cron per rebre alertes de recomanacions d'Advisor. Per a aquest article, volem rebre alertes cada diumenge a les 14:00 UTC, així que introduïm *cron(0 14 ? * SUN ).
Assegura't de proporcionar l'expressió de temps cron correcta en implementar la pila de CloudFormation per evitar fallades.
Mantingues totes les opcions per defecte a Configure Stack options i tria Next. Revisa la configuració, selecciona la casella de verificació de reconeixement i crea la pila. Si la pila de CloudFormation falla per algun motiu, consulta Troubleshooting CloudFormation.
Detalls del Flux de Treball
Vegem més de prop la funció Lambda i el flux de treball complet:
Els valors d'entrada proporcionats per a SnsTopicArn, ClusterIdentifier i S3Bucket en la creació de la pila de CloudFormation s'estableixen com a variables ambientals en la funció Lambda. Si el paràmetre ClusterIdentifier és None, invocarà l'API ListRecommendations per generar recomanacions d'Advisor per a tots els clústers dins del compte (mateixa regió d'AWS). Altrament, passarà el valor ClusterIdentifier i generarà recomanacions d'Advisor només per al clúster donat. Si es proporciona un paràmetre S3Bucket, la solució crea una carpeta anomenada RedshiftAdvisorRecommendations i genera el fitxer de recomanacions d'Advisor en format JSON dins d'ella. Si no es proporciona un valor per a S3Bucket, s'ometrà aquest pas.
A continuació, la funció resumirà les recomanacions per cada clúster aprovisionat (per a tots els clústers en el compte o un sol clúster, depenent de la teva configuració) segons l'impacte en el rendiment i el cost en categories ALT, MIG i BAIX. S'enviarà un correu electrònic de notificació de SNS als subscriptors amb les recomanacions resumides.
Els comandaments SQL s'inclouen com a part de l'acció recomanada d'Advisor. RecommendedActionType-SQL resumeix el nombre d'accions SQL que es poden aplicar mitjançant comandaments SQL.
Si no hi ha recomanacions disponibles per a cap clúster, s'enviarà un correu electrònic de notificació de SNS notificant que no hi ha recomanacions d'Advisor.
Es crea una regla d'EventBridge per invocar la funció Lambda segons la freqüència que has proporcionat en els paràmetres de la pila. Per defecte, està programada per executar-se setmanalment cada diumenge a les 14:00 UTC.
Neteja
Recomanem eliminar la pila de CloudFormation si no continuaràs utilitzant la solució. Això evitarà incórrer en costos addicionals pels recursos creats com a part de la solució.
Conclusió
En aquest article, hem discutit com Redshift Advisor t'ofereix recomanacions específiques per millorar el rendiment i reduir els costos operatius del teu clúster Redshift. També t'hem mostrat com accedir a aquestes recomanacions programàticament mitjançant una API i implementar-les sota demanda o automàticament utilitzant les teves eines internes sense tenir accés a la consola d'Amazon Redshift.
En integrar aquestes recomanacions en els teus fluxos de treball, pots prendre decisions informades i implementar les millors pràctiques per optimitzar el rendiment i els costos dels teus clústers Redshift, millorant en última instància l'eficiència i productivitat general de les teves operacions de processament de dades.