Amazon Redshift Parallel Scaling Guia i resultats de la prova

Amazon Redshift Parallel Scaling Guia i resultats de la prova

A Skyeng fem servir Amazon Redshift, inclòs l'escala paral·lela, així que hem trobat interessant aquest article de Stefan Gromoll, fundador de dotgo.com, per a intermix.io. Després de la traducció, una mica de la nostra experiència de l'enginyer de dades Daniyar Belkhodzhaev.

Amazon Redshift Architecture permet escalar afegint nous nodes al clúster. La necessitat de fer front a un nombre màxim de sol·licituds pot provocar un sobreprovisionament de nodes. L'escala de concurrència, en lloc d'afegir nous nodes, augmenta la potència de càlcul segons sigui necessari.

L'escalat paral·lel d'Amazon Redshift ofereix als clústers Redshift capacitat addicional per gestionar els volums de sol·licitud màxims. Funciona movent les sol·licituds a nous clústers "paral·lels" en segon pla. Les sol·licituds s'encaminen segons la configuració i les regles de WLM.

El preu d'escala paral·lel es basa en un model de crèdit amb un nivell gratuït. Per sobre dels crèdits gratuïts, el pagament es basa en el temps en què el clúster d'escala paral·lel processa les sol·licituds.

L'autor va provar l'escala paral·lela en un dels clústers interns. En aquesta publicació, parlarà dels resultats de les proves i donarà consells sobre com començar.

Requisits del clúster

Per utilitzar l'escala paral·lela, el vostre clúster d'Amazon Redshift ha de complir els requisits següents:

- plataforma: EC2-VPC;
- tipus de node: dc2.8xlarge, ds2.8xlarge, dc2.large o ds2.xlarge;
- nombre de nodes: de 2 a 32 (no s'admeten els clústers d'un sol node).

Tipus de sol·licituds acceptables

L'escalat paral·lel no és adequat per a tot tipus de consultes. A la primera versió, només processa les sol·licituds de lectura que compleixen tres condicions:

— Les consultes SELECT són només de lectura (tot i que es preveuen més tipus);
— la consulta no fa referència a una taula amb l'estil d'ordenació INTERLEAVED;
- La consulta no utilitza Amazon Redshift Spectrum per fer referència a taules externes.

Per adreçar-se al clúster d'escala paral·lel, la sol·licitud s'ha de posar a la cua. A més, consultes aptes per a la cua SQA (Acceleració de consultes curtes), no s'executarà en clústers a escala paral·lela.

Les cues i SQA requereixen una configuració adequada Redshift Gestió de la càrrega de treball (WLM). Us recomanem que optimitzeu primer el vostre WLM; això reduirà la necessitat d'escalar en paral·lel. I això és important perquè l'escala paral·lela només és gratuïta durant un cert nombre d'hores. AWS afirma que l'escala paral·lela serà gratuïta per al 97% dels clients, la qual cosa ens porta a la qüestió dels preus.

Cost de l'escala paral·lela

AWS ofereix un model de crèdit per a l'escala paral·lela. Cada clúster actiu Amazon Redshift Acumula crèdits per hora, fins a una hora de crèdits d'escala paral·lel gratuïts al dia.

Només pagueu quan el vostre ús de clústers d'escala paral·lel supera la quantitat de crèdits que heu rebut.

El cost es calcula a una taxa per segon a demanda per a un clúster paral·lel que s'utilitza per sobre de la tarifa gratuïta. Només se us cobrarà per la durada de les vostres sol·licituds, amb un càrrec mínim d'un minut cada vegada que s'activa un clúster d'escala paral·lel. La taxa a demanda per segon es calcula en funció dels principis generals de preus Amazon Redshift, és a dir, depèn del tipus de node i del nombre de nodes del vostre clúster.

Llançament de Parallel Scaling

L'escalat paral·lel s'activa per a cada cua de WLM. Aneu a la consola AWS Redshift i seleccioneu Gestió de càrrega de treball al menú de navegació esquerre. Seleccioneu el grup de paràmetres WLM del vostre clúster al menú desplegable següent.

Veureu una nova columna anomenada "Mode d'escala de concurrència" al costat de cada cua. El valor predeterminat és "Desactivat". Feu clic a "Edita" i podreu canviar la configuració de cada cua.

Amazon Redshift Parallel Scaling Guia i resultats de la prova

Configuració

L'escalat paral·lel funciona enviant les sol·licituds adequades a nous clústers dedicats. Els nous clústers tenen la mateixa mida (tipus i nombre de nodes) que el clúster principal.

El nombre predeterminat de clústers utilitzats per a l'escalat paral·lel és un (1), amb la possibilitat de configurar fins a un total de deu (10) clústers.
El nombre total de clústers per a l'escala paral·lela es pot establir mitjançant el paràmetre max_concurrency_scaling_clusters. Augmentar el valor d'aquest paràmetre proporciona clústers redundants addicionals.

Amazon Redshift Parallel Scaling Guia i resultats de la prova

Seguiment

Hi ha diversos gràfics addicionals disponibles a la consola AWS Redshift. El gràfic Clústers d'escala de concurrència màxima configurats mostra el valor de max_concurrency_scaling_clusters al llarg del temps.

Amazon Redshift Parallel Scaling Guia i resultats de la prova

El nombre de clústers d'escala actius es mostra a la interfície d'usuari a la secció "Activitat d'escala de concurrència":

Amazon Redshift Parallel Scaling Guia i resultats de la prova

A la pestanya Consultes, hi ha una columna que indica si la consulta s'ha executat al clúster principal o al clúster d'escala paral·lel:

Amazon Redshift Parallel Scaling Guia i resultats de la prova

Independentment de si una consulta concreta s'ha executat al clúster principal o a través d'un clúster d'escala paral·lel, s'emmagatzema a stl_query.concurrency_scaling_status.

Amazon Redshift Parallel Scaling Guia i resultats de la prova

Un valor d'1 indica que la consulta s'ha executat al clúster d'escala paral·lela, mentre que altres valors indiquen que s'ha executat al clúster primari.

Exemple:

Amazon Redshift Parallel Scaling Guia i resultats de la prova

La informació d'escala de concurrència també s'emmagatzema en altres taules i vistes, com ara SVCS_CONCURRENCY_SCALING_USAGE. A més, hi ha una sèrie de taules de catàleg que emmagatzemen informació sobre l'escalat paral·lel.

Troballes

Els autors van començar a escalar en paral·lel per a una cua del clúster intern a les 18:30:00 GMT aproximadament el 29.03.2019/3/20. Va canviar el paràmetre max_concurrency_scaling_clusters a 30 aproximadament a les 00:29.03.2019:XNUMX del XNUMX/XNUMX/XNUMX.

Per simular una cua de sol·licituds, hem reduït el nombre d'espais per a aquesta cua de 15 a 5.

A continuació es mostra un gràfic del tauler d'intermix.io que mostra el nombre de sol·licituds en curs i en cua després de reduir el nombre d'espais.

Amazon Redshift Parallel Scaling Guia i resultats de la prova

Veiem que el temps d'espera de les peticions a la cua ha augmentat, amb un temps màxim superior a 5 minuts.

Amazon Redshift Parallel Scaling Guia i resultats de la prova

Aquí teniu la informació rellevant de la consola AWS sobre el que va passar durant aquest temps:

Amazon Redshift Parallel Scaling Guia i resultats de la prova

Redshift va llançar tres (3) clústers d'escala paral·lel tal com es van configurar. Sembla que aquests clústers estaven infrautilitzats, tot i que moltes sol·licituds del nostre clúster estaven a la cua.

El gràfic d'ús es correlaciona amb el gràfic d'activitat d'escala:

Amazon Redshift Parallel Scaling Guia i resultats de la prova

Al cap d'unes hores, els autors van comprovar la cua i semblava que 6 sol·licituds s'estaven executant a escala paral·lela. També vam provar aleatòriament dues sol·licituds a través de la interfície d'usuari. No hem comprovat com utilitzar aquests valors quan diversos clústers paral·lels estan actius alhora.

Amazon Redshift Parallel Scaling Guia i resultats de la prova

Troballes

L'escalat paral·lel pot reduir el temps que passen les sol·licituds a la cua durant les càrregues punta.

A partir dels resultats de la prova bàsica, va resultar que la situació amb les sol·licituds de càrrega ha millorat parcialment. Tanmateix, l'escalat paral·lel per si sol no va resoldre tots els problemes de concurrència.

Això es deu a les restriccions sobre els tipus de consultes que poden utilitzar l'escala paral·lela. Per exemple, els autors tenen moltes taules amb claus d'ordenació entrellaçades i la major part de la nostra càrrega de treball és l'escriptura.

Tot i que l'escala paral·lela no és una solució universal per configurar WLM, utilitzar aquesta funció és senzill i senzill.

Per tant, l'autor recomana utilitzar-lo per a les vostres cues de WLM. Comenceu amb un clúster paral·lel i controleu la càrrega màxima a través de la consola per determinar si els nous clústers s'estan utilitzant completament.

A mesura que AWS afegeix suport per a tipus de consultes i taules addicionals, l'escala paral·lela hauria de ser gradualment més i més eficient.

Comentari de Daniyar Belkhodzhaev, enginyer de dades de Skyeng

A Skyeng també vam notar immediatament la possibilitat emergent d'escalar paral·lel.
La funcionalitat és molt atractiva, sobretot tenint en compte que AWS estima que la majoria dels usuaris ni tan sols hauran de pagar més per això.

Va passar que a mitjans d'abril vam tenir una inusual ràfega de peticions al clúster Redshift. Durant aquest període, sovint vam recórrer a l'escala de concurrència, de vegades, un clúster addicional funcionava les 24 hores del dia sense parar.

Això va permetre, si no resoldre completament el problema amb les cues, almenys fer la situació acceptable.

Les nostres observacions coincideixen en gran mesura amb les impressions dels nois d'intermix.io.

També ens vam adonar que, tot i que hi havia sol·licituds esperant a la cua, no totes les sol·licituds es van reenviar immediatament al clúster paral·lel. Aparentment, això passa perquè el clúster paral·lel encara triga temps a començar. Com a resultat, durant els pics de càrrega a curt termini encara tenim petites cues i les alarmes corresponents tenen temps per activar-se.

Després d'haver eliminat les càrregues anormals a l'abril, nosaltres, com esperava AWS, vam entrar en el mode d'ús ocasional, dins de la norma gratuïta.
Podeu fer un seguiment dels vostres costos d'escala paral·lel a AWS Cost Explorer. Heu de seleccionar Servei - Redshift, Tipus d'ús - CS, per exemple USW2-CS:dc2.large.

Podeu llegir més sobre els preus en rus aquí.

Font: www.habr.com

Afegeix comentari