Amazon Redshift параллельді масштабтау нұсқаулығы және сынақ нәтижелері

Amazon Redshift параллельді масштабтау нұсқаулығы және сынақ нәтижелері

Skyeng-те біз Amazon Redshift-ті, соның ішінде параллельді масштабтауды қолданамыз, сондықтан intermix.io үшін dotgo.com негізін қалаушы Стефан Громоллдың мақаласын қызықты деп таптық. Аудармадан кейін инженер-инженер Данияр Белходжаевтан алған тәжірибемізден біраз.

Amazon Redshift архитектурасы кластерге жаңа түйіндерді қосу арқылы масштабтауға мүмкіндік береді. Сұраныстардың ең көп санымен күресу қажеттілігі түйіндердің шамадан тыс қамтамасыз етілуіне әкелуі мүмкін. Жаңа түйіндерді қосудан айырмашылығы, параллельді масштабтау қажет болған жағдайда есептеу қуатын арттырады.

Amazon Redshift параллельді масштабтау Redshift кластерлеріне сұраныстың ең жоғары көлемін өңдеуге қосымша мүмкіндік береді. Ол сұрауларды фондық режимде жаңа «параллель» кластерлерге жылжыту арқылы жұмыс істейді. Сұраулар WLM конфигурациясы мен ережелері негізінде бағытталады.

Параллельді масштабтау бағасы еркін деңгейлі несие үлгісіне негізделген. Тегін несиелерден жоғары төлем параллельді масштабтау кластері сұрауларды өңдейтін уақытқа негізделеді.

Автор ішкі кластерлердің бірінде параллельді масштабтауды сынады. Бұл жазбада ол тест нәтижелері туралы айтып, қалай бастау керектігі туралы кеңестер береді.

Кластерге қойылатын талаптар

Параллельді масштабтауды пайдалану үшін Amazon Redshift кластері келесі талаптарға сай болуы керек:

- платформа: EC2-VPC;
- түйін түрі: dc2.8xlarge, ds2.8xlarge, dc2.large немесе ds2.xlarge;
- түйіндер саны: 2-ден 32-ге дейін (бір түйінді кластерлерге қолдау көрсетілмейді).

Қолайлы сұрау түрлері

Параллельді масштабтау сұраулардың барлық түрлеріне жарамайды. Бірінші нұсқада ол тек үш шартты қанағаттандыратын оқу сұрауларын өңдейді:

— SELECT сұраулары тек оқуға арналған (бірақ көп түрлері жоспарланған);
— сұрау INTERLEAVED сұрыптау стилі бар кестеге сілтеме жасамайды;
- Сұрау сыртқы кестелерге сілтеме жасау үшін Amazon Redshift Spectrum қолданбасын пайдаланбайды.

Параллельді масштабтау кластеріне бағытталу үшін сұрау кезекке қойылуы керек. Сонымен қатар, кезекке жарамды сұраулар SQA (қысқа сұранысты жеделдету), параллельді масштабты кластерлерде іске қосылмайды.

Кезектер мен SQA дұрыс конфигурацияны қажет етеді Redshift жұмыс жүктемесін басқару (WLM). Алдымен WLM жүйесін оңтайландыруды ұсынамыз - бұл параллельді масштабтау қажеттілігін азайтады. Және бұл маңызды, өйткені параллельді масштабтау белгілі бір сағаттар санына ғана тегін. AWS параллельді масштабтау тұтынушылардың 97% тегін болады деп мәлімдейді, бұл бізді баға мәселесіне әкеледі.

Параллельді масштабтау құны

AWS параллельді масштабтау үшін несие үлгісін ұсынады. Әрбір белсенді кластер Amazon RedShift Кредиттерді сағат сайын жинайды, күніне бір сағатқа дейін тегін параллельді масштабтау несиелері.

Параллельді масштабтау кластерлерін пайдалану сіз алған несиелер сомасынан асып кеткенде ғана төлейсіз.

Құны бос мөлшерлемеден жоғары пайдаланылатын параллель кластер үшін сұраныс бойынша секундына есептеледі. Сізден тек сұрауларыңыздың ұзақтығы үшін ақы алынады, Параллельді масштабтау кластері қосылған сайын ең аз төлем бір минут. Сұраныс бойынша секундтық мөлшерлеме баға белгілеудің жалпы принциптері негізінде есептеледі Amazon RedShift, яғни бұл түйіннің түріне және кластердегі түйіндер санына байланысты.

Параллельді масштабтауды іске қосу

Параллельді масштабтау әрбір WLM кезегі үшін іске қосылады. AWS Redshift консоліне өтіп, сол жақ шарлау мәзірінен Жұмыс жүктемесін басқару тармағын таңдаңыз. Келесі ашылмалы мәзірден кластердің WLM параметр тобын таңдаңыз.

Әрбір кезектің жанында «Сәйкестік масштабтау режимі» деп аталатын жаңа бағанды ​​көресіз. Әдепкі параметр - "Ажыратылған". «Өңдеу» түймесін басып, әр кезек үшін параметрлерді өзгертуге болады.

Amazon Redshift параллельді масштабтау нұсқаулығы және сынақ нәтижелері

Конфигурация

Параллельді масштабтау сәйкес сұрауларды жаңа бөлінген кластерлерге жіберу арқылы жұмыс істейді. Жаңа кластерлер негізгі кластермен бірдей өлшемге (түйіндердің түрі мен саны) ие.

Параллельді масштабтау үшін пайдаланылатын кластерлердің әдепкі саны - барлығы он (1) кластерді теңшеу мүмкіндігі бар бір (10).
Параллельді масштабтауға арналған кластерлердің жалпы санын max_concurrency_scaling_clusters параметрі арқылы орнатуға болады. Бұл параметрдің мәнін арттыру қосымша артық кластерлерді қамтамасыз етеді.

Amazon Redshift параллельді масштабтау нұсқаулығы және сынақ нәтижелері

Бақылау

AWS Redshift консолінде бірнеше қосымша графиктер бар. Ең көп конфигурацияланған параллельді масштабтау кластерлерінің диаграммасы уақыт бойынша max_concurrency_scaling_clusters мәнін көрсетеді.

Amazon Redshift параллельді масштабтау нұсқаулығы және сынақ нәтижелері

Белсенді масштабтау кластерлерінің саны пайдаланушы интерфейсінде «Бір мезгілде масштабтау әрекеті» бөлімінде көрсетіледі:

Amazon Redshift параллельді масштабтау нұсқаулығы және сынақ нәтижелері

Сұраулар қойындысында сұраудың негізгі кластерде немесе параллельді масштабтау кластерінде орындалғанын көрсететін баған бар:

Amazon Redshift параллельді масштабтау нұсқаулығы және сынақ нәтижелері

Белгілі бір сұрау негізгі кластерде немесе параллельді масштабтау кластері арқылы орындалғанына қарамастан, ол stl_query.concurrency_scaling_status ішінде сақталады.

Amazon Redshift параллельді масштабтау нұсқаулығы және сынақ нәтижелері

1 мәні сұраудың параллельді шкала кластерінде орындалғанын көрсетеді, ал басқа мәндер оның негізгі кластерде орындалғанын көрсетеді.

Мысал:

Amazon Redshift параллельді масштабтау нұсқаулығы және сынақ нәтижелері

Параллельдік масштабтау ақпараты SVCS_CONCURRENCY_SCALING_USAGE сияқты басқа кестелер мен көріністерде де сақталады. Сонымен қатар, параллельді масштабтау туралы ақпаратты сақтайтын бірқатар каталог кестелері бар.

нәтижелері

Авторлар ішкі кластердегі бір кезек үшін параллельді масштабтауды 18/30/00 GMT сағат 29.03.2019:3:20-де бастады. max_concurrency_scaling_clusters параметрін 30/00/29.03.2019 күні шамамен XNUMX:XNUMX:XNUMX-де XNUMX-ке өзгертті.

Сұраныс кезегін имитациялау үшін біз бұл кезек үшін ұяшықтар санын 15-тен 5-ке дейін азайттық.

Төменде слоттар санын азайтқаннан кейін іске қосылған және кезекте тұрған сұраулар санын көрсететін intermix.io бақылау тақтасының диаграммасы берілген.

Amazon Redshift параллельді масштабтау нұсқаулығы және сынақ нәтижелері

Кезекте сұраныстарды күту уақыты ұлғайғанын көріп отырмыз, ең ұзақ уақыт 5 минуттан асады.

Amazon Redshift параллельді масштабтау нұсқаулығы және сынақ нәтижелері

Міне, осы уақыт ішінде не болғаны туралы AWS консолінен тиісті ақпарат:

Amazon Redshift параллельді масштабтау нұсқаулығы және сынақ нәтижелері

Redshift конфигурацияланғандай үш (3) параллельді масштабтау кластерін іске қосты. Біздің кластердегі көптеген сұраулар кезекте тұрғанымен, бұл кластерлер жеткіліксіз пайдаланылған сияқты.

Қолдану графигі масштабтау әрекетінің графигімен сәйкес келеді:

Amazon Redshift параллельді масштабтау нұсқаулығы және сынақ нәтижелері

Бірнеше сағаттан кейін авторлар кезекті тексерді және параллельді масштабтау кезінде 6 сұрау орындалатын сияқты болды. Сондай-ақ пайдаланушы интерфейсі арқылы екі сұрауды кездейсоқ тексердік. Бірнеше параллель кластерлер бірден белсенді болған кезде бұл мәндерді қалай пайдалану керектігін тексерген жоқпыз.

Amazon Redshift параллельді масштабтау нұсқаулығы және сынақ нәтижелері

қорытындылар

Параллельді масштабтау ең жоғары жүктеме кезінде сұраныстардың кезекте жұмсалатын уақытын қысқартуы мүмкін.

Негізгі сынақ нәтижелері бойынша сұрауларды жүктеу жағдайы ішінара жақсарғаны белгілі болды. Дегенмен, параллельді масштабтау барлық параллельдік мәселелерді шеше алмады.

Бұл параллельді масштабтауды пайдалана алатын сұраулар түрлеріндегі шектеулерге байланысты. Мысалы, авторларда сұрыптау кілттері бар көптеген кестелер бар және біздің жұмыс жүктемеміздің көпшілігі жазу болып табылады.

Параллельді масштабтау WLM орнату үшін әмбебап шешім болмаса да, бұл мүмкіндікті пайдалану қарапайым және қарапайым.

Сондықтан автор оны WLM кезектері үшін пайдалануды ұсынады. Бір параллель кластерден бастаңыз және жаңа кластерлердің толық пайдаланылып жатқанын анықтау үшін консоль арқылы ең жоғары жүктемені бақылаңыз.

AWS қосымша сұрау түрлері мен кестелеріне қолдау қосатындықтан, параллельді масштабтау біртіндеп тиімдірек болуы керек.

Түсініктеме Данияр Белходжаев, Skyeng деректерінің инженері

Біз Skyeng-те параллельді масштабтаудың пайда болу мүмкіндігін бірден байқадық.
Функционалдық өте тартымды, әсіресе AWS пайдаланушылардың көпшілігі бұл үшін қосымша ақы төлеудің қажеті жоқ деп есептейтінін ескерсек.

Сәуір айының ортасында Redshift кластеріне сұраныстардың ерекше толқыны болды. Осы кезеңде біз Concurrency Scaling жүйесіне жиі жүгіндік, кейде қосымша кластер тәулігіне 24 сағат тоқтаусыз жұмыс істеді.

Бұл кезек мәселесін толығымен шешпесе, ең болмағанда жағдайды қолайлы етуге мүмкіндік берді.

Біздің бақылауларымыз көбінесе intermix.io жігіттерінің әсерлерімен сәйкес келеді.

Сонымен қатар, кезекте тұрған сұраныстар болғанымен, барлық сұраулар бірден параллель кластерге жіберілмейтінін байқадық. Шамасы, бұл параллельді кластерді бастау үшін әлі де уақыт қажет болғандықтан орын алады. Нәтижесінде, қысқа мерзімді ең жоғары жүктеме кезінде бізде әлі де шағын кезектер бар, ал сәйкес дабылдардың іске қосылуға уақыты бар.

Сәуірде қалыпты емес жүктемелерден арылғаннан кейін біз, AWS күткендей, кездейсоқ пайдалану режиміне - бос норма шегінде кірдік.
AWS Cost Explorer бағдарламасында параллельді масштабтау шығындарын бақылай аласыз. Сізге Service - Redshift, Usage Type - CS таңдау керек, мысалы USW2-CS:dc2.large.

Бағалар туралы толығырақ орыс тілінде оқи аласыз мұнда.

Ақпарат көзі: www.habr.com

пікір қалдыру