Amazon Redshift paralÄlÄs mÄrogoÅ”anas rokasgrÄmata un testa rezultÄti
UzÅÄmums Skyeng mÄs izmantojam Amazon Redshift, tostarp paralÄlo mÄrogoÅ”anu, tÄpÄc mums Ŕķita interesants Å”is vietnes dotgo.com dibinÄtÄja Stefana Gromolla raksts vietnei intermix.io. PÄc tulkojuma neliela mÅ«su pieredze no datu inženiera Danijara Belhodžajeva.
Amazon Redshift arhitektÅ«ra ļauj mÄrogot, pievienojot klasterim jaunus mezglus. NepiecieÅ”amÄ«ba tikt galÄ ar maksimÄlo pieprasÄ«jumu skaitu var izraisÄ«t mezglu pÄrmÄrÄ«gu nodroÅ”inÄÅ”anu. VienlaicÄ«bas mÄrogoÅ”ana, nevis jaunu mezglu pievienoÅ”ana, pÄc vajadzÄ«bas palielina skaitļoÅ”anas jaudu.
Amazon Redshift paralÄlÄ mÄrogoÅ”ana nodroÅ”ina Redshift klasteriem papildu jaudu, lai apstrÄdÄtu maksimÄlos pieprasÄ«jumu apjomus. Tas darbojas, pÄrvietojot pieprasÄ«jumus uz jaunÄm āparalÄlajÄmā kopÄm fonÄ. PieprasÄ«jumi tiek marÅ”rutÄti, pamatojoties uz WLM konfigurÄciju un noteikumiem.
ParalÄlÄ mÄrogoÅ”anas cenu noteikÅ”ana ir balstÄ«ta uz kredÄ«ta modeli ar bezmaksas lÄ«meni. Virs bezmaksas kredÄ«tiem maksÄjums tiek veikts atkarÄ«bÄ no laika, kad Parallel Scaling Cluster apstrÄdÄ pieprasÄ«jumus.
Autors pÄrbaudÄ«ja paralÄlo mÄrogoÅ”anu vienÄ no iekÅ”Äjiem klasteriem. Å ajÄ ierakstÄ viÅÅ” pastÄstÄ«s par testa rezultÄtiem un sniegs padomus, kÄ sÄkt.
- platforma: EC2-VPC; ā mezgla veids: dc2.8xlarge, ds2.8xlarge, dc2.large vai ds2.xlarge; ā mezglu skaits: no 2 lÄ«dz 32 (viena mezgla kopas netiek atbalstÄ«tas).
PieÅemamie pieprasÄ«jumu veidi
ParalÄlÄ mÄrogoÅ”ana nav piemÄrota visu veidu vaicÄjumiem. PirmajÄ versijÄ tas apstrÄdÄ tikai tos lasÄ«Å”anas pieprasÄ«jumus, kas atbilst trim nosacÄ«jumiem:
ā SELECT vaicÄjumi ir tikai lasÄmi (lai gan ir plÄnots vairÄk veidu);
ā vaicÄjumÄ nav atsauces uz tabulu ar ŔķiroÅ”anas stilu INTERLEAVED;
- VaicÄjumÄ netiek izmantots Amazon Redshift Spectrum, lai atsauktos uz ÄrÄjÄm tabulÄm.
Lai pieprasÄ«jums tiktu novirzÄ«ts uz paralÄlÄs mÄrogoÅ”anas klasteru, tas ir jÄievieto rindÄ. TurklÄt vaicÄjumi, kas ir piemÄroti rindai SQA (Ä«so vaicÄjumu paÄtrinÄÅ”ana), nedarbosies paralÄlas mÄroga klasteros.
RindÄm un SQA ir nepiecieÅ”ama pareiza konfigurÄcija Redshift Workload Management (WLM). MÄs iesakÄm vispirms optimizÄt savu WLM ā tas samazinÄs vajadzÄ«bu pÄc paralÄlÄs mÄrogoÅ”anas. Un tas ir svarÄ«gi, jo paralÄlÄ mÄrogoÅ”ana ir bezmaksas tikai noteiktu stundu skaitu. AWS apgalvo, ka paralÄlÄ mÄrogoÅ”ana bÅ«s bez maksas 97% klientu, kas mÅ«s noved pie cenu noteikÅ”anas jautÄjuma.
ParalÄlÄs mÄrogoÅ”anas izmaksas
AWS piedÄvÄ kredÄ«ta modeli paralÄlai mÄrogoÅ”anai. Katrs aktÄ«vais klasteris Amazones sarkanÄ nobÄ«de KredÄ«tus uzkrÄj katru stundu, lÄ«dz pat vienai stundai bezmaksas paralÄlÄs mÄrogoÅ”anas kredÄ«tus dienÄ.
JÅ«s maksÄjat tikai tad, ja Parallel Scaling Clusters lietojums pÄrsniedz saÅemto kredÄ«tu summu.
Izmaksas tiek aprÄÄ·inÄtas pÄc pieprasÄ«juma pÄc sekundes likmes paralÄlai klasterim, kas tiek izmantota virs brÄ«vÄs likmes. Maksa tiek iekasÄta tikai par jÅ«su pieprasÄ«jumu izpildes laiku, ar minimÄlo maksu par vienu minÅ«ti katru reizi, kad tiek aktivizÄts paralÄlÄs mÄrogoÅ”anas klasteris. Sekundes likme pÄc pieprasÄ«juma tiek aprÄÄ·inÄta, pamatojoties uz vispÄrÄjiem cenu noteikÅ”anas principiem Amazones sarkanÄ nobÄ«de, tas ir, tas ir atkarÄ«gs no mezgla veida un mezglu skaita jÅ«su klasterÄ«.
ParalÄlÄ mÄrogoÅ”anas palaiÅ”ana
Katrai WLM rindai tiek aktivizÄta paralÄlÄ mÄrogoÅ”ana. Dodieties uz AWS Redshift konsoli un kreisajÄ navigÄcijas izvÄlnÄ atlasiet Darba slodzes pÄrvaldÄ«ba. TÄlÄk esoÅ”ajÄ nolaižamajÄ izvÄlnÄ atlasiet klastera WLM parametru grupu.
Blakus katrai rindai redzÄsit jaunu kolonnu ar nosaukumu "Vienlaikus mÄrogoÅ”anas režīms". NoklusÄjums ir "AtspÄjots". NoklikŔķiniet uz "RediÄ£Ät" un varat mainÄ«t katras rindas iestatÄ«jumus.
KonfigurÄcija
ParalÄlÄ mÄrogoÅ”ana darbojas, pÄrsÅ«tot atbilstoÅ”us pieprasÄ«jumus uz jaunÄm Ä«paÅ”Äm kopÄm. Jaunajiem klasteriem ir tÄds pats izmÄrs (mezglu veids un skaits) kÄ galvenajam klasterim.
ParalÄlai mÄrogoÅ”anai izmantoto klasteru noklusÄjuma skaits ir viens (1), ar iespÄju kopÄ konfigurÄt lÄ«dz pat desmit (10) klasteriem.
KopÄjo klasteru skaitu paralÄlai mÄrogoÅ”anai var iestatÄ«t ar parametru max_concurrency_scaling_clusters. Å Ä« parametra vÄrtÄ«bas palielinÄÅ”ana nodroÅ”ina papildu liekÄs kopas.
Uzraudzība
AWS Redshift konsolÄ ir pieejami vairÄki papildu grafiki. MaksimÄli konfigurÄto vienlaicÄ«guma mÄrogoÅ”anas klasteru diagrammÄ tiek parÄdÄ«ta max_concurrency_scaling_clusters vÄrtÄ«ba laika gaitÄ.
AktÄ«vo mÄrogoÅ”anas klasteru skaits tiek parÄdÄ«ts lietotÄja interfeisa sadaÄ¼Ä āVienlaikus mÄrogoÅ”anas darbÄ«baā:
CilnÄ VaicÄjumi ir kolonna, kas norÄda, vai vaicÄjums tika izpildÄ«ts galvenajÄ klasterÄ« vai paralÄlÄs mÄrogoÅ”anas klasterÄ«:
NeatkarÄ«gi no tÄ, vai konkrÄts vaicÄjums tika izpildÄ«ts galvenajÄ klasterÄ« vai paralÄlÄ mÄrogoÅ”anas klasterÄ«, tas tiek saglabÄts mapÄ stl_query.concurrency_scaling_status.
VÄrtÄ«ba 1 norÄda, ka vaicÄjums tika izpildÄ«ts paralÄlÄ mÄroga klasterÄ«, savukÄrt citas vÄrtÄ«bas norÄda, ka tas tika izpildÄ«ts primÄrajÄ klasterÄ«.
PiemÄrs:
VienlaicÄ«bas mÄrogoÅ”anas informÄcija tiek glabÄta arÄ« dažÄs citÄs tabulÄs un skatos, piemÄram, SVCS_CONCURRENCY_SCALING_USAGE. TurklÄt ir vairÄkas katalogu tabulas, kurÄs tiek glabÄta informÄcija par paralÄlo mÄrogoÅ”anu.
rezultÄtus
Autori sÄka paralÄlu mÄrogoÅ”anu vienai rindai iekÅ”ÄjÄ klasterÄ« aptuveni plkst. 18:30:00 GMT 29.03.2019. gada 3. gada 20. gadÄ. MainÄ«ja parametru max_concurrency_scaling_clusters uz 30 uz 00, aptuveni plkst. 29.03.2019:XNUMX:XNUMX XNUMX. gada XNUMX. gadÄ.
Lai simulÄtu pieprasÄ«jumu rindu, mÄs samazinÄjÄm Ŕīs rindas laika niÅ”u skaitu no 15 uz 5.
TÄlÄk ir parÄdÄ«ta intermix.io informÄcijas paneļa diagramma, kurÄ parÄdÄ«ts izpildÄ«to pieprasÄ«jumu skaits un rindÄ pÄc laika niÅ”u skaita samazinÄÅ”anas.
Redzam, ka pieprasÄ«jumu gaidÄ«Å”anas laiks rindÄ ir palielinÄjies, maksimÄlais laiks pÄrsniedzot 5 minÅ«tes.
Å eit ir attiecÄ«gÄ informÄcija no AWS konsoles par notikuÅ”o Å”ajÄ laikÄ:
Redshift palaida trÄ«s (3) paralÄlas mÄrogoÅ”anas kopas, kÄ konfigurÄts. Å Ä·iet, ka Ŕīs kopas tika nepietiekami izmantotas, lai gan daudzi pieprasÄ«jumi mÅ«su klasterÄ« bija rindÄ.
LietoÅ”anas grafiks korelÄ ar mÄrogoÅ”anas aktivitÄtes grafiku:
PÄc dažÄm stundÄm autori pÄrbaudÄ«ja rindu, un Ŕķita, ka paralÄli mÄrogojot tika izpildÄ«ti 6 pieprasÄ«jumi. MÄs arÄ« nejauÅ”i pÄrbaudÄ«jÄm divus pieprasÄ«jumus, izmantojot lietotÄja interfeisu. MÄs neesam pÄrbaudÄ«juÅ”i, kÄ izmantot Ŕīs vÄrtÄ«bas, ja vienlaikus ir aktÄ«vi vairÄki paralÄli klasteri.
Atzinumi
ParalÄlÄ mÄrogoÅ”ana var samazinÄt laiku, ko pieprasÄ«jumi pavada rindÄ maksimÄlÄs slodzes laikÄ.
Pamatojoties uz pamata testa rezultÄtiem, izrÄdÄ«jÄs, ka situÄcija ar pieprasÄ«jumu ielÄdi ir daļÄji uzlabojusies. TomÄr paralÄlÄ mÄrogoÅ”ana vien neatrisinÄja visas vienlaicÄ«bas problÄmas.
Tas ir saistÄ«ts ar ierobežojumiem to vaicÄjumu veidiem, kuros var izmantot paralÄlo mÄrogoÅ”anu. PiemÄram, autoriem ir daudz tabulu ar starplÄ«meÅu ŔķiroÅ”anas taustiÅiem, un lielÄkÄ daļa no mÅ«su darba slodzes ir rakstÄ«Å”ana.
Lai gan paralÄlÄ mÄrogoÅ”ana nav universÄls risinÄjums WLM iestatÄ«Å”anai, Ŕīs funkcijas izmantoÅ”ana ir vienkÄrÅ”a un vienkÄrÅ”a.
TÄpÄc autors iesaka to izmantot savÄm WLM rindÄm. SÄciet ar vienu paralÄlu kopu un uzraugiet maksimÄlo slodzi, izmantojot konsoli, lai noteiktu, vai jaunÄs kopas tiek pilnÄ«bÄ izmantotas.
TÄ kÄ AWS pievieno atbalstu papildu vaicÄjumu veidiem un tabulÄm, paralÄlajai mÄrogoÅ”ana pakÄpeniski jÄkļūst arvien efektÄ«vÄkai.
KomentÄrs no Daniyar Belkhodzhaev, Skyeng datu inženiera
MÄs, Skyeng, arÄ« uzreiz pamanÄ«jÄm jauno paralÄlÄs mÄrogoÅ”anas iespÄju.
FunkcionalitÄte ir ļoti pievilcÄ«ga, Ä«paÅ”i Åemot vÄrÄ, ka AWS lÄÅ”, ka lielÄkajai daļai lietotÄju par to pat nebÅ«s jÄmaksÄ papildus.
TÄ sagadÄ«jÄs, ka aprīļa vidÅ« mums bija neparasts pieprasÄ«jumu satraukums Redshift klasterim. Å ajÄ periodÄ mÄs bieži izmantojÄm vienlaicÄ«gu mÄrogoÅ”anu; dažreiz papildu klasteris strÄdÄja 24 stundas diennaktÄ« bez apstÄÅ”anÄs.
Tas ļÄva ja ne pilnÄ«bÄ atrisinÄt problÄmu ar rindÄm, tad vismaz padarÄ«t situÄciju pieÅemamu.
MÅ«su novÄrojumi lielÄ mÄrÄ sakrÄ«t ar intermix.io puiÅ”u iespaidiem.
MÄs arÄ« pamanÄ«jÄm, ka, lai gan rindÄ bija pieprasÄ«jumi, ne visi pieprasÄ«jumi tika nekavÄjoties pÄrsÅ«tÄ«ti uz paralÄlo klasteru. AcÄ«mredzot tas notiek tÄpÄc, ka paralÄlÄ klastera palaiÅ”anai joprojÄm ir nepiecieÅ”ams laiks. TÄ rezultÄtÄ Ä«slaicÄ«gas maksimÄlÄs slodzes laikÄ mums joprojÄm ir nelielas rindas, un atbilstoÅ”ajiem trauksmes signÄliem ir laiks iedarbinÄties.
AprÄ«lÄ« atbrÄ«vojuÅ”ies no nenormÄlÄm slodzÄm, kÄ jau AWS paredzÄja, iegÄjÄm gadÄ«juma lietoÅ”anas režīmÄ - brÄ«vÄs normas ietvaros.
Varat izsekot paralÄlÄs mÄrogoÅ”anas izmaksÄm programmÄ AWS Cost Explorer. Jums ir jÄizvÄlas Pakalpojums - Redshift, Usage Type - CS, piemÄram, USW2-CS:dc2.large.
VairÄk par cenÄm var lasÄ«t krievu valodÄ Å”eit.