Amazon Redshift Parallel Scaling qo'llanmasi va sinov natijalari

Amazon Redshift Parallel Scaling qo'llanmasi va sinov natijalari

Skyeng-da biz Amazon Redshift-dan foydalanamiz, shu jumladan parallel masshtablash, shuning uchun biz intermix.io uchun dotgo.com asoschisi Stefan Gromollning ushbu maqolasini qiziqarli deb topdik. Tarjimadan so'ng ma'lumotlar muhandisi Daniyar Belxo'jaevdan ozgina tajribamiz.

Amazon Redshift arxitekturasi klasterga yangi tugunlar qo'shish orqali masshtablash imkonini beradi. So'rovlarning eng yuqori soniga dosh berish zarurati tugunlarning haddan tashqari ta'minlanishiga olib kelishi mumkin. Concurrency Scaling, yangi tugunlarni qo'shishdan farqli o'laroq, kerak bo'lganda hisoblash quvvatini oshiradi.

Amazon Redshift parallel masshtablash Redshift klasterlariga so‘rovlarning eng yuqori hajmlarini boshqarish uchun qo‘shimcha imkoniyatlar beradi. U so'rovlarni fonda yangi "parallel" klasterlarga ko'chirish orqali ishlaydi. So'rovlar WLM konfiguratsiyasi va qoidalari asosida yo'naltiriladi.

Parallel miqyosda narxlash bepul darajali kredit modeliga asoslanadi. Bepul kreditlardan tashqari, to'lov Parallel Scaling Cluster so'rovlarni qayta ishlash vaqtiga asoslanadi.

Muallif ichki klasterlardan birida parallel o'lchovni sinab ko'rdi. Ushbu postda u test natijalari haqida gapiradi va qanday boshlash kerakligi haqida maslahatlar beradi.

Klaster talablari

Parallel masshtabdan foydalanish uchun Amazon Redshift klasteringiz quyidagi talablarga javob berishi kerak:

- platforma: EC2-VPC;
- tugun turi: dc2.8xlarge, ds2.8xlarge, dc2.large yoki ds2.xlarge;
- tugunlar soni: 2 dan 32 gacha (bitta tugunli klasterlar qo'llab-quvvatlanmaydi).

Qabul qilinadigan so'rov turlari

Parallel masshtablash barcha turdagi so'rovlar uchun mos emas. Birinchi versiyada u faqat uchta shartni qondiradigan o'qish so'rovlarini qayta ishlaydi:

— SELECT soʻrovlari faqat oʻqish uchun moʻljallangan (koʻproq turlari rejalashtirilgan boʻlsada);
— so‘rov INTERLEAVED saralash uslubiga ega jadvalga havola qilmaydi;
- So'rov tashqi jadvallarga murojaat qilish uchun Amazon Redshift Spectrum-dan foydalanmaydi.

Parallel masshtablash klasteriga yo'naltirish uchun so'rov navbatga qo'yilishi kerak. Bundan tashqari, navbat uchun mos so'rovlar SQA (Qisqa so'rovlarni tezlashtirish), parallel masshtabli klasterlarda ishlamaydi.

Navbatlar va SQA to'g'ri konfiguratsiyani talab qiladi Redshift ish yukini boshqarish (WLM). Avval WLM ni optimallashtirishni tavsiya qilamiz - bu parallel o'lchovga bo'lgan ehtiyojni kamaytiradi. Va bu juda muhim, chunki parallel o'lchov faqat ma'lum soatlar uchun bepul. AWS ta'kidlashicha, parallel o'lchov mijozlarning 97 foizi uchun bepul bo'ladi, bu bizni narxlash masalasiga olib keladi.

Parallel masshtablash narxi

AWS parallel masshtablash uchun kredit modelini taklif etadi. Har bir faol klaster Amazon RedShift Kreditlarni har soatda to'playdi, kuniga bir soatgacha bepul parallel o'lchov kreditlari.

Siz faqat Parallel Scaling Clusters-dan foydalanish siz olgan kreditlar miqdoridan oshib ketganda to'laysiz.

Narx bepul tarifdan yuqori foydalaniladigan parallel klaster uchun sekundiga talab darajasida hisoblanadi. Parallel masshtablash klasteri har safar faollashtirilganda, sizdan faqat soʻrovlaringiz uchun toʻlov olinadi, minimal toʻlov bir daqiqa. Talab bo'yicha sekundiga stavka umumiy narxlash tamoyillari asosida hisoblanadi Amazon RedShift, ya'ni tugun turiga va klasteringizdagi tugunlar soniga bog'liq.

Parallel masshtabni ishga tushirish

Parallel masshtablash har bir WLM navbati uchun ishga tushiriladi. AWS Redshift konsoliga o'ting va chap navigatsiya menyusidan Workload Management-ni tanlang. Quyidagi ochiladigan menyudan klasteringizning WLM parametrlar guruhini tanlang.

Har bir navbatning yonida siz "Bir vaqtning o'zida masshtablash rejimi" deb nomlangan yangi ustunni ko'rasiz. Standart "O'chirilgan". "Tahrirlash" tugmasini bosing va har bir navbat uchun sozlamalarni o'zgartirishingiz mumkin.

Amazon Redshift Parallel Scaling qo'llanmasi va sinov natijalari

Konfiguratsiya

Parallel masshtablash mos so'rovlarni yangi ajratilgan klasterlarga yo'naltirish orqali ishlaydi. Yangi klasterlar asosiy klaster bilan bir xil o'lchamga ega (tugunlar turi va soni).

Parallel masshtablash uchun ishlatiladigan klasterlarning standart soni bitta (1) bo‘lib, jami o‘ntagacha (10) klasterni sozlash imkoniyati mavjud.
Parallel masshtablash uchun klasterlarning umumiy soni max_concurrency_scaling_clusters parametri bilan belgilanishi mumkin. Ushbu parametrning qiymatini oshirish qo'shimcha ortiqcha klasterlarni beradi.

Amazon Redshift Parallel Scaling qo'llanmasi va sinov natijalari

Monitoring

AWS Redshift konsolida bir nechta qo'shimcha grafiklar mavjud. Maksimal konfiguratsiya qilingan bir vaqtda masshtablash klasterlari diagrammasi vaqt davomida max_concurrency_scaling_clusters qiymatini ko'rsatadi.

Amazon Redshift Parallel Scaling qo'llanmasi va sinov natijalari

Faol masshtablash klasterlarining soni foydalanuvchi interfeysida “Bir vaqtning o'zida masshtablash faoliyati” bo'limida ko'rsatiladi:

Amazon Redshift Parallel Scaling qo'llanmasi va sinov natijalari

So'rovlar ko'rinishida so'rov asosiy klasterda yoki parallel masshtablash klasterida bajarilganligini ko'rsatadigan ustun mavjud:

Amazon Redshift Parallel Scaling qo'llanmasi va sinov natijalari

Muayyan so'rov asosiy klasterda yoki parallel masshtablash klasteri orqali bajarilganidan qat'i nazar, u stl_query.concurrency_scaling_status da saqlanadi.

Amazon Redshift Parallel Scaling qo'llanmasi va sinov natijalari

1 qiymati so'rov parallel masshtabli klasterda bajarilganligini, boshqa qiymatlar esa birlamchi klasterda bajarilganligini ko'rsatadi.

Misol:

Amazon Redshift Parallel Scaling qo'llanmasi va sinov natijalari

SVCS_CONCURRENCY_SCALING_USAGE kabi boshqa jadvallar va ko'rinishlarda bir vaqtning o'zida masshtablash ma'lumotlari ham saqlanadi. Bundan tashqari, parallel masshtablash haqidagi ma'lumotlarni saqlaydigan bir qator katalog jadvallari mavjud.

Natijalar

Mualliflar 18/30/00 GMT soat 29.03.2019:3:20 da ichki klasterda bitta navbat uchun parallel masshtablashni boshladilar. 30/00/29.03.2019 soat taxminan XNUMX:XNUMX:XNUMX da max_concurrency_scaling_clusters parametrini XNUMX ga o‘zgartirdi.

So‘rov navbatini taqlid qilish uchun biz ushbu navbat uchun slotlar sonini 15 dan 5 tagacha kamaytirdik.

Quyida intermix.io boshqaruv paneli diagrammasi bo'lib, ulagichlar sonini qisqartirgandan so'ng bajarilayotgan va navbatda turgan so'rovlar sonini ko'rsatadi.

Amazon Redshift Parallel Scaling qo'llanmasi va sinov natijalari

Ko‘ramizki, navbatdagi so‘rovlarni kutish vaqti ko‘paygan, maksimal vaqt 5 daqiqadan oshgan.

Amazon Redshift Parallel Scaling qo'llanmasi va sinov natijalari

Mana shu vaqt ichida sodir boʻlgan voqealar haqida AWS konsolidan tegishli maʼlumotlar:

Amazon Redshift Parallel Scaling qo'llanmasi va sinov natijalari

Redshift konfiguratsiya qilinganidek uchta (3) parallel masshtablash klasterini ishga tushirdi. Bizning klasterimizdagi ko‘plab so‘rovlar navbatda turgan bo‘lsa ham, bu klasterlardan yetarlicha foydalanilmagan ko‘rinadi.

Foydalanish grafigi masshtablash faoliyati grafigiga mos keladi:

Amazon Redshift Parallel Scaling qo'llanmasi va sinov natijalari

Bir necha soatdan so'ng, mualliflar navbatni tekshirishdi va 6 ta so'rov parallel miqyosda ishlayotganga o'xshaydi. Shuningdek, foydalanuvchi interfeysi orqali ikkita so'rovni tasodifiy sinovdan o'tkazdik. Bir vaqtning o'zida bir nechta parallel klasterlar faol bo'lganda, biz ushbu qiymatlardan qanday foydalanishni tekshirmadik.

Amazon Redshift Parallel Scaling qo'llanmasi va sinov natijalari

topilmalar

Parallel masshtablash yuklanishning eng yuqori cho'qqisida navbatdagi so'rovlar vaqtini qisqartirishi mumkin.

Asosiy test natijalariga ko'ra, so'rovlarni yuklash bilan bog'liq vaziyat qisman yaxshilangani ma'lum bo'ldi. Biroq, parallel masshtablashning o'zi barcha parallellik muammolarini hal qilmadi.

Bu parallel masshtabdan foydalanishi mumkin bo'lgan so'rovlar turlariga cheklovlar bilan bog'liq. Misol uchun, mualliflarda tartiblash kalitlari bo'lgan ko'plab jadvallar mavjud va bizning ish yukimizning aksariyati yozishdir.

Parallel masshtablash WLM-ni o'rnatish uchun universal yechim bo'lmasa-da, bu xususiyatdan foydalanish oddiy va tushunarli.

Shuning uchun muallif uni WLM navbatlaringiz uchun ishlatishni tavsiya qiladi. Bitta parallel klasterdan boshlang va yangi klasterlardan to'liq foydalanilayotganligini aniqlash uchun konsol orqali eng yuqori yukni kuzating.

AWS qo'shimcha so'rov turlari va jadvallarini qo'llab-quvvatlaganligi sababli, parallel masshtablash asta-sekin va samaraliroq bo'lishi kerak.

Skyeng ma'lumotlar muhandisi Daniyar Belxo'jaevning sharhi

Biz Skyeng-da parallel o'lchovning paydo bo'lish imkoniyatini darhol payqadik.
Funktsionallik juda jozibali, ayniqsa AWS ko'pchilik foydalanuvchilar buning uchun qo'shimcha pul to'lashlari shart emasligini hisobga olsak.

Shunday bo'ldiki, aprel oyining o'rtalarida Redshift klasteriga g'ayrioddiy so'rovlar kelib tushdi. Ushbu davrda biz tez-tez Concurrency Scaling-ga murojaat qildik; ba'zida qo'shimcha klaster kuniga 24 soat to'xtovsiz ishladi.

Bu, agar navbat bilan bog'liq muammoni to'liq hal qilmasa, hech bo'lmaganda vaziyatni maqbul qilish imkonini berdi.

Bizning kuzatishlarimiz asosan intermix.io saytidagi yigitlarning taassurotlari bilan mos keladi.

Navbatda so‘rovlar bo‘lsa-da, barcha so‘rovlar darhol parallel klasterga yuborilmaganini ham payqadik. Ko'rinishidan, bu parallel klasterni boshlash uchun hali ham vaqt talab qilishi sababli sodir bo'ladi. Natijada, qisqa muddatli yuklamalar paytida bizda hali ham kichik navbatlar mavjud va tegishli signallarni ishga tushirish uchun vaqt bor.

Aprel oyida g'ayritabiiy yuklardan xalos bo'lgach, biz, AWS kutganidek, vaqti-vaqti bilan foydalanish rejimiga o'tdik - bepul norma doirasida.
AWS Cost Explorer-da parallel masshtablash xarajatlaringizni kuzatishingiz mumkin. Xizmat - Redshift, Foydalanish turi - CS ni tanlashingiz kerak, masalan USW2-CS:dc2.large.

Narxlar haqida ko'proq rus tilida o'qishingiz mumkin Bu erda.

Manba: www.habr.com

a Izoh qo'shish