Дар роҳ ба пойгоҳи додаҳои бе сервер - чӣ гуна ва чаро

Салом ба ҳама! Номи ман Голов Николай аст. Қаблан, ман дар Avito кор кардам ва дар тӯли шаш сол Платформаи маълумотро идора кардам, яъне ман дар ҳама пойгоҳи додаҳо кор кардам: аналитикӣ (Vertica, ClickHouse), ҷараён ва OLTP (Redis, Tarantool, VoltDB, MongoDB, PostgreSQL). Дар ин муддат ман бо шумораи зиёди базаҳои маълумотҳо - хеле гуногун ва ғайриоддӣ ва ҳолатҳои ғайристандартии истифодаи онҳо кор кардам.

Ман ҳоло дар ManyChat кор мекунам. Дар асл, ин як стартап аст - нав, шӯҳратпараст ва босуръат рушдёбанда. Ва вақте ки ман бори аввал ба ширкат ҳамроҳ шудам, як саволи классикӣ ба миён омад: "Стартапи ҷавон акнун бояд аз бозори DBMS ва пойгоҳи додаҳо чӣ бигирад?"

Дар ин мақола, дар асоси гузориши ман дар фестивали онлайн RIT++ 2020, Ман ба ин савол ҷавоб медиҳам. Нусхаи видеоии гузориш дар ин ҷо дастрас аст YouTube.

Дар роҳ ба пойгоҳи додаҳои бе сервер - чӣ гуна ва чаро

Пойгоҳи додаҳои маъмул 2020

Соли 2020 аст, ман ба атроф нигаристам ва се намуди пойгоҳи додаҳоро дидам.

Навъи якум - пойгоҳи додаҳои классикии OLTP: PostgreSQL, SQL Server, Oracle, MySQL. Онҳо кайҳо пеш навишта шуда буданд, аммо то ҳол аҳамият доранд, зеро онҳо ба ҷомеаи таҳиягарон хеле шиносанд.

Навъи дуюм аст асосҳо аз "сифр". Онҳо кӯшиш карданд, ки аз намунаҳои классикӣ бо даст кашидан аз SQL, сохторҳои анъанавӣ ва ACID, бо илова кардани sharding дарунсохт ва дигар хусусиятҳои ҷолиб дур шаванд. Масалан, ин Кассандра, MongoDB, Redis ё Tarantool аст. Ҳамаи ин қарорҳо мехостанд ба бозор чизи комилан нав пешниҳод кунанд ва ҷойи худро ишғол кунанд, зеро онҳо барои иҷрои вазифаҳои муайян хеле қулай буданд. Ман ин пойгоҳи додаҳоро бо истилоҳи чатр NOSQL ишора мекунам.

"Силҳо" ба охир расиданд, мо ба пойгоҳи додаҳои NOSQL одат кардаем ва ҷаҳон, аз нуқтаи назари ман, қадами навбатиро гирифт - ба базаи маълумотҳои идорашаванда. Ин пойгоҳи додаҳо бо пойгоҳи додаҳои классикии OLTP ё навҳои NoSQL як аслӣ доранд. Аммо онҳо ба DBA ва DevOps ниёз надоранд ва дар сахтафзори идорашаванда дар абрҳо кор мекунанд. Барои таҳиягар, ин "танҳо як пойгоҳ" аст, ки дар ҷое кор мекунад, аммо касе парвое надорад, ки он дар сервер чӣ гуна насб шудааст, серверро кӣ танзим кардааст ва кӣ онро нав мекунад.

Намунаҳои чунин пойгоҳи додаҳо:

  • AWS RDS як бастаи идорашаванда барои PostgreSQL/MySQL мебошад.
  • DynamoDB як аналоги AWS-и пойгоҳи додаҳои ҳуҷҷатӣ мебошад, ки ба Redis ва MongoDB монанд аст.
  • Amazon Redshift як махзани таҳлилии идорашаванда аст.

Инҳо асосан пойгоҳи додаҳои кӯҳна мебошанд, аммо дар муҳити идорашаванда бе зарурати кор бо сахтафзор ба вуҷуд меоянд.

Шарҳ. Намунаҳо барои муҳити AWS гирифта шудаанд, аммо аналогҳои онҳо дар Microsoft Azure, Google Cloud ё Yandex.Cloud низ мавҷуданд.

Дар роҳ ба пойгоҳи додаҳои бе сервер - чӣ гуна ва чаро

Дар ин бора чӣ нав аст? Дар соли 2020 ҳеҷ яке аз инҳо.

Консепсияи бе сервер

Он чизе ки дар бозор дар соли 2020 воқеан нав аст, ҳалли бе сервер ё бе сервер мебошад.

Ман кӯшиш мекунам фаҳмонам, ки ин бо истифода аз мисоли хидмати муқаррарӣ ё замимаи пуштибонӣ чӣ маъно дорад.
Барои ҷойгиркунии замимаи муқаррарии пуштибонӣ, мо сервер мехарем ё иҷора медиҳем, кодро ба он нусхабардорӣ мекунем, нуқтаи ниҳоиро берун аз он нашр мекунем ва мунтазам барои иҷора, нерӯи барқ ​​ва хадамоти маркази маълумот пардохт мекунем. Ин схемаи стандартӣ аст.

Оё роҳи дигаре ҳаст? Бо хидматҳои бе сервер шумо метавонед.

Тамаркузи ин равиш дар чист: сервер вуҷуд надорад, ҳатто дар абр як мисоли маҷозӣ ба иҷора гирифта намешавад. Барои ҷойгиркунии хидмат, кодро (функсияҳоро) ба анбор нусхабардорӣ кунед ва онро то нуқтаи ниҳоӣ нашр кунед. Пас, мо танҳо барои ҳар як занг ба ин функсия пардохт мекунем, ба сахтафзор, ки дар он иҷро карда мешавад, комилан нодида мегирем.

Ман кӯшиш мекунам, ки ин равишро бо тасвирҳо нишон диҳам.
Дар роҳ ба пойгоҳи додаҳои бе сервер - чӣ гуна ва чаро

Ҷойгиркунии классикӣ. Мо хидматеро бо бори муайян дорем. Мо ду мисол меорем: серверҳои ҷисмонӣ ё мисолҳо дар AWS. Дархостҳои беруна ба ин ҳолатҳо фиристода мешаванд ва дар он ҷо коркард мешаванд.

Тавре ки шумо дар расм мебинед, серверҳо ба таври баробар тақсим карда намешаванд. Яке 100% истифода шудааст, ду дархост вуҷуд дорад ва яке ҳамагӣ 50% - қисман бекор аст. Агар на се дархост, балки 30 дархост расад, он гоҳ тамоми система ба бори тоб оварда наметавонад ва ба сустшавӣ шурӯъ мекунад.

Дар роҳ ба пойгоҳи додаҳои бе сервер - чӣ гуна ва чаро

Ҷойгиркунии бе сервер. Дар муҳити бе сервер, чунин хидмат мисолҳо ё серверҳо надорад. Як ҳавзи муайяни захираҳои гармшуда мавҷуд аст - контейнерҳои хурди омодашудаи Docker бо рамзи функсияи ҷойгиршуда. Система дархостҳои берунаро қабул мекунад ва барои ҳар яки онҳо чаҳорчӯбаи бе сервер як контейнери хурдеро бо код мебардорад: он ин дархости мушаххасро коркард мекунад ва контейнерро мекушад.

Як дархост - як контейнер бардошта шуд, 1000 дархост - 1000 контейнер. Ва ҷойгиркунӣ дар серверҳои сахтафзор аллакай кори провайдери абрист. Он аз ҷониби чаҳорчӯбаи бе сервер комилан пинҳон карда шудааст. Дар ин консепсия мо барои ҳар як занг пардохт мекунем. Масалан, дар як рӯз як занг меомад - як занг месупоридем, дар як дақиқа миллион меомад - миллион пардохт кардем. Ё дар як сония, ин ҳам рӯй медиҳад.

Консепсияи интишори функсияи бидуни сервер барои хидмати бидуни шаҳрвандӣ мувофиқ аст. Ва агар ба шумо хидмати давлатӣ (давлатӣ) лозим бошад, мо ба хидмат пойгоҳи додаҳо илова мекунем. Дар ин ҳолат, вақте ки сухан дар бораи кор бо давлат меравад, ҳар як функсияи давлатӣ танҳо аз пойгоҳи додаҳо менависад ва мехонад. Гузашта аз ин, аз пойгоҳи додаҳои яке аз се намуди дар аввали мақола тавсифшуда.

Маҳдудияти умумии ҳамаи ин пойгоҳи додаҳо чист? Инҳо хароҷоти абр ё сервери сахтафзор (ё якчанд сервер) доимо истифодашаванда мебошанд. Фарқ надорад, ки мо пойгоҳи додаҳои классикӣ ё идорашавандаро истифода мебарем, хоҳ Devops ва маъмур дорем ё не, мо то ҳол барои иҷораи сахтафзор, нерӯи барқ ​​ва маркази додаҳо 24/7 пардохт мекунем. Агар мо заминаи классикӣ дошта бошем, мо барои усто ва ғулом пардохт мекунем. Агар он як пойгоҳи додаи хеле пурборшуда бошад, мо барои 10, 20 ё 30 сервер пардохт мекунем ва мо пайваста пардохт мекунем.

Мавҷудияти серверҳои доимӣ ҳифзшуда дар сохтори хароҷот қаблан ҳамчун як бадии зарурӣ қабул карда мешуд. Пойгоҳи додаҳои анъанавӣ инчунин мушкилоти дигар доранд, ба монанди маҳдудияти шумораи пайвастҳо, маҳдудиятҳои миқёс, консенсуси географӣ - онҳо метавонанд дар баъзе пойгоҳи додаҳо ҳал карда шаванд, аммо на ҳама якбора ва на ба таври идеалӣ.

Пойгоҳи бе сервер - назария

Саволи соли 2020: оё метавон бе сервери пойгоҳи додаҳо низ кард? Ҳама дар бораи пуштибонии бе сервер шунидаанд... биёед кӯшиш кунем, ки пойгоҳи додаҳоро бе сервер гардонем?

Ин аҷиб менамояд, зеро пойгоҳи додаҳо як хидмати пурраи давлатӣ буда, барои инфрасохтори бе сервер чандон мувофиқ нест. Дар баробари ин, ҳолати базаи маълумот хеле калон аст: гигабайт, терабайт ва дар базаҳои таҳлилӣ ҳатто петабайтҳо. Баланд бардоштани он дар контейнерҳои сабуки Docker он қадар осон нест.

Аз тарафи дигар, қариб ҳама пойгоҳи додаҳои муосир дорои миқдори зиёди мантиқ ва ҷузъҳо мебошанд: транзаксияҳо, ҳамоҳангсозии якпорчагӣ, расмиёт, вобастагии муносибатҳо ва мантиқи зиёде. Барои бисёр мантиқи пойгоҳи додаҳо, ҳолати хурд кофӣ аст. Гигабайтҳо ва терабайтҳоро танҳо як қисми ками мантиқи пойгоҳи додаҳо, ки дар иҷрои мустақими дархостҳо иштирок мекунанд, мустақиман истифода мебаранд.

Бинобар ин, идея ин аст: агар як қисми мантиқ ба иҷрои бидуни шаҳрвандӣ иҷозат диҳад, пас чаро пойгоҳро ба қисмҳои давлатӣ ва бидуни шаҳрвандӣ тақсим накунед.

Бе сервер барои ҳалли OLAP

Биёед бубинем, ки бо истифода аз мисолҳои амалӣ буридани пойгоҳи додаҳо ба қисмҳои давлатӣ ва бидуни шаҳрвандӣ чӣ гуна буда метавонад.

Дар роҳ ба пойгоҳи додаҳои бе сервер - чӣ гуна ва чаро

Масалан, мо базаи таҳлилӣ дорем: маълумоти беруна (силиндраи сурх дар тарафи чап), раванди ETL, ки маълумотро ба пойгоҳи додаҳо бор мекунад ва таҳлилгаре, ки дархостҳои SQL-ро ба пойгоҳи додаҳо мефиристад. Ин схемаи классикии амалиёти анбори додаҳост.

Дар ин схема, ETL шартан як маротиба иҷро карда мешавад. Пас шумо бояд барои серверҳое, ки дар онҳо пойгоҳи додаҳо бо маълумоти пур аз ETL кор мекунанд, мунтазам пардохт кунед, то чизе барои фиристодани дархостҳо мавҷуд бошад.

Биёед як равиши алтернативии дар AWS Athena Serverless татбиқшударо бубинем. Ягон сахтафзори доимии махсус вуҷуд надорад, ки дар он маълумоти зеркашида нигоҳ дошта мешавад. Ба ҷои ин:

  • Истифодабаранда дархости SQL-ро ба Athena пешниҳод мекунад. Оптимизатори Athena дархости SQL-ро таҳлил мекунад ва дар мағозаи метамаълумот (Метамаълумот) барои маълумоти мушаххасе, ки барои иҷрои дархост лозим аст, ҷустуҷӯ мекунад.
  • Оптимизатор дар асоси маълумоти ҷамъоварда маълумоти заруриро аз манбаъҳои беруна ба нигаҳдории муваққатӣ (ба базаи муваққатӣ) зеркашӣ мекунад.
  • Дархости SQL аз корбар дар нигаҳдории муваққатӣ иҷро карда мешавад ва натиҷа ба корбар баргардонида мешавад.
  • Захираи муваққатӣ тоза карда мешавад ва захираҳо озод карда мешаванд.

Дар ин меъморӣ, мо танҳо барои раванди иҷрои дархост пардохт мекунем. Дархост нест - хароҷот нест.

Дар роҳ ба пойгоҳи додаҳои бе сервер - чӣ гуна ва чаро

Ин як равиши корӣ аст ва на танҳо дар Athena Serverless, балки дар Redshift Spectrum (дар AWS) амалӣ карда мешавад.

Мисоли Athena нишон медиҳад, ки пойгоҳи додаҳои бе сервер дар дархостҳои воқеӣ бо даҳҳо ва садҳо терабайтҳо кор мекунад. Садҳо терабайтҳо садҳо серверҳоро талаб мекунанд, аммо мо набояд барои онҳо пардохт кунем - мо барои дархостҳо пардохт мекунем. Суръати ҳар як дархост дар муқоиса бо пойгоҳҳои тахассусии таҳлилӣ ба монанди Vertica (хеле) паст аст, аммо мо барои давраи бекорӣ пардохт намекунем.

Чунин махзани маълумот барои дархостҳои нодири таҳлилии муваққатӣ татбиқ мешавад. Масалан, вақте ки мо ба таври стихиявӣ қарор медиҳем, ки гипотезаро дар бораи миқдори зиёди маълумот санҷем. Афина барои ин ҳолатҳо комил аст. Барои дархостҳои мунтазам, чунин система гарон аст. Дар ин ҳолат, маълумотро дар ягон ҳалли махсус кэш кунед.

Бе сервер барои ҳалли OLTP

Мисоли қаблӣ ба вазифаҳои OLAP (таҳлилӣ) нигарист. Акнун биёед ба вазифаҳои OLTP назар андозем.

Биёед PostgreSQL ё MySQL-и миқёспазирро тасаввур кунем. Биёед як мисоли муқаррарии идорашавандаи PostgreSQL ё MySQL-ро бо захираҳои ҳадди ақал эҷод кунем. Вақте ки инстансия бори бештар мегирад, мо нусхаҳои иловагиро пайваст мекунем, ки ба онҳо як қисми сарбории хониш тақсим карда мешавад. Агар ягон дархост ё бор набошад, мо репликаҳоро хомӯш мекунем. Намунаи аввал устод аст ва боқимонда нусхабардорӣ мебошанд.

Ин идея дар пойгоҳи додаҳо бо номи Aurora Serverless AWS амалӣ карда мешавад. Принсип оддӣ аст: дархостҳо аз барномаҳои беруна аз ҷониби флоти прокси қабул карда мешаванд. Бо дидани афзоиши сарборӣ, он захираҳои ҳисоббарориро аз мисолҳои ҳадди ақали қаблан гармшуда ҷудо мекунад - пайвастшавӣ ҳарчи зудтар анҷом дода мешавад. Ҳолати ғайрифаъолкунӣ низ ҳамин тавр сурат мегирад.

Дар дохили Аврора консепсияи воҳиди тавоноии Aurora, ACU мавҷуд аст. Ин (шартӣ) як мисол (сервер) аст. Ҳар як ACU мушаххас метавонад усто ё ғулом бошад. Ҳар як воҳиди иқтидор дорои RAM, протсессор ва диски минималии худро дорад. Мувофиқи он, яке устод аст, дигарон танҳо нусхаҳои хонда мешаванд.

Шумораи ин воҳидҳои иқтидори Аврора, ки кор мекунанд, параметри танзимшаванда аст. Миқдори ҳадди ақал метавонад як ё сифр бошад (дар ин ҳолат, дар сурати мавҷуд набудани дархост, базаи маълумот кор намекунад).

Дар роҳ ба пойгоҳи додаҳои бе сервер - чӣ гуна ва чаро

Вақте ки пойгоҳ дархостҳоро қабул мекунад, флоти прокси Units Aurora CapacityUnits -ро афзоиш дода, захираҳои кори системаро афзоиш медиҳад. Қобилияти зиёд ва кам кардани захираҳо ба система имкон медиҳад, ки захираҳоро "муқовимат" кунад: ба таври худкор ACU-ҳои инфиродӣ (иваз кардани онҳо бо нав) ва паҳн кардани ҳама навсозиҳои ҷорӣ ба захираҳои гирифташуда.

Пойгоҳи Aurora Serverless метавонад сарбории хонишро васеъ кунад. Аммо дар хуччатхо дар ин бора бевосита гуфта нашудааст. Шояд чунин ҳис кунад, ки онҳо метавонанд устоди мултимедиявиро бардошта тавонанд. Ҳеҷ ҷодуе нест.

Ин махзани маълумот барои пешгирӣ кардани сарфи миқдори зиёди пул дар системаҳои дастрасии пешгӯинашаванда мувофиқ аст. Масалан, ҳангоми сохтани сайтҳои кортҳои тиҷории MVP ё маркетинг, мо одатан сарбории устуворро интизор намешавем. Мувофиқи он, агар дастрасӣ надошта бошад, мо барои мисолҳо пардохт намекунем. Вақте ки сарбории ғайричашмдошт ба амал меояд, масалан, пас аз конфронс ё маъракаи таблиғотӣ, шумораи зиёди одамон ба сайт ташриф меоранд ва сарборӣ ба таври назаррас меафзояд, Aurora Serverless ин сарбориро ба таври худкор қабул мекунад ва захираҳои гумшударо (ACU) зуд пайваст мекунад. Сипас конфронс мегузарад, ҳама прототипро фаромӯш мекунанд, серверҳо (ACU) торик мешаванд ва хароҷот ба сифр меафтанд - қулай.

Ин ҳалли барои сарбории устувор мувофиқ нест, зеро он сарбории навиштанро васеъ намекунад. Ҳамаи ин пайвастшавӣ ва ҷудошавии захираҳо дар «нуқтаи миқёс» ба истилоҳ рух медиҳанд - вақте ки пойгоҳи додаҳо аз ҷониби транзаксия ё ҷадвалҳои муваққатӣ дастгирӣ намешаванд. Масалан, дар давоми як ҳафта нуқтаи миқёс метавонад рӯй надиҳад ва пойгоҳ дар ҳамон захираҳо кор мекунад ва танҳо наметавонад васеъ ё коҳиш ёбад.

Ҳеҷ ҷодуе вуҷуд надорад - он PostgreSQL муқаррарӣ аст. Аммо процесси ба кор андохтани машинахо ва чудо кардани онхо кисман автоматй кунонда шудааст.

Аз рӯи тарҳ бе сервер

Aurora Serverless як пойгоҳи кӯҳнаест, ки барои абр аз нав навишта шудааст, то аз баъзе бартариҳои Serverless истифода барад. Ва ҳоло ман ба шумо дар бораи пойгоҳе нақл мекунам, ки дар ибтидо барои абр навишта шуда буд, барои равиши бе сервер - Serverless-by-design. Он фавран бидуни тахмине, ки он дар серверҳои физикӣ кор мекунад, таҳия карда шуд.

Ин пойгоҳ Snowflake номида мешавад. Он се блоки калидӣ дорад.

Дар роҳ ба пойгоҳи додаҳои бе сервер - чӣ гуна ва чаро

Якум блоки метадата аст. Ин хидмати зуд дар хотира аст, ки масъалаҳои амният, метадата, транзаксияҳо ва оптимизатсияи дархостҳоро ҳал мекунад (дар расми чап нишон дода шудааст).

Блоки дуюм маҷмӯи кластерҳои компютерии виртуалӣ барои ҳисобҳо мебошад (дар расм маҷмӯи доираҳои кабуд мавҷуд аст).

Блоки сеюм системаи нигоҳдории маълумот дар асоси S3 мебошад. S3 нигаҳдории объекти беандоза дар AWS аст, ба монанди Dropbox-и беандоза барои тиҷорат.

Биёед бубинем, ки Snowflake чӣ гуна кор мекунад, бо назардошти оғози сард. Яъне, базаи маълумот мавҷуд аст, маълумот ба он бор карда мешавад, дархостҳои иҷрошаванда вуҷуд надоранд. Мувофиқи он, агар ягон дархост ба пойгоҳи додаҳо мавҷуд набошад, мо хидмати зуд дар хотираи метамаълумотро (блоки аввал) баланд кардем. Ва мо нигаҳдории S3 дорем, ки дар он маълумотҳои ҷадвал нигоҳ дошта мешаванд, ки ба микроқисмҳо тақсим мешаванд. Барои содда: агар ҷадвал дорои транзаксияҳо бошад, пас микроқисмҳо рӯзҳои транзаксия мебошанд. Ҳар рӯз як micropartition алоҳида, як файли алоҳида аст. Ва ҳангоме ки пойгоҳи додаҳо дар ин реҷа кор мекунад, шумо танҳо барои фазои ишғолкардаи маълумот пардохт мекунед. Гузашта аз ин, меъёри як курсии хеле паст аст (махсусан бо назардошти фишурдасозии назаррас). Хидмати метамаълумотҳо низ пайваста кор мекунад, аммо барои оптимизатсияи дархостҳо ба шумо захираҳои зиёд лозим нест ва хидмат метавонад нармафзори муштарак ҳисобида шавад.

Акнун биёед тасаввур кунем, ки корбар ба базаи мо омада, дархости SQL фиристод. Дархости SQL фавран ба хидмати метамаълумот барои коркард фиристода мешавад. Мувофиқи он, ҳангоми гирифтани дархост, ин хидмат дархост, маълумоти мавҷуда, иҷозатҳои корбарро таҳлил мекунад ва агар ҳамааш хуб бошад, нақшаи коркарди дархостро тартиб медиҳад.

Баъдан, хидмат оғоз кардани кластери ҳисоббарориро оғоз мекунад. Кластери компютерӣ як кластери серверҳоест, ки ҳисобҳоро иҷро мекунанд. Яъне, ин кластер аст, ки метавонад дорои 1 сервер, 2 сервер, 4, 8, 16, 32 - ҳар қадар ки шумо мехоҳед. Шумо дархост мефиристед ва оғози ин кластер фавран оғоз меёбад. Ин дар ҳақиқат сонияҳоро мегирад.

Дар роҳ ба пойгоҳи додаҳои бе сервер - чӣ гуна ва чаро

Минбаъд, пас аз оғоз кардани кластер, микроқисмҳои барои коркарди дархости шумо лозимшуда ба кластер аз S3 нусхабардорӣ мешаванд. Яъне, биёед тасаввур кунем, ки барои иҷро кардани дархости SQL ба шумо ду қисм аз як ҷадвал ва яке аз дуюм лозим аст. Дар ин ҳолат, танҳо се қисмҳои зарурӣ ба кластер нусхабардорӣ карда мешаванд, на ҳама ҷадвалҳо пурра. Аз ин рӯ, ва маҳз азбаски ҳама чиз дар як маркази додаҳо ҷойгир аст ва тавассути каналҳои хеле зуд пайваст аст, тамоми раванди интиқол хеле зуд сурат мегирад: дар сонияҳо, хеле кам дар тӯли дақиқаҳо, агар мо дар бораи дархостҳои даҳшатнок сухан нагӯем. Мувофиқи он, микроқисмҳо ба кластери ҳисоббарорӣ нусхабардорӣ карда мешаванд ва пас аз ба итмом расидан, дархости SQL дар ин кластери ҳисоббарорӣ иҷро карда мешавад. Натиҷаи ин дархост метавонад як сатр, якчанд сатр ё ҷадвал бошад - онҳо берунӣ ба корбар фиристода мешаванд, то ӯ тавонад онро зеркашӣ кунад, дар асбоби BI-и худ намоиш диҳад ё онро бо ягон роҳи дигар истифода барад.

Ҳар як дархости SQL метавонад на танҳо агрегатҳоро аз маълумоти қаблан боршуда хонад, балки инчунин дар пойгоҳи додаҳо маълумоти навро бор кунад/таҷдид кунад. Яъне, ин метавонад дархост бошад, ки масалан, сабтҳои навро ба ҷадвали дигар ворид мекунад, ки боиси пайдо шудани қисмати нав дар кластери ҳисоббарор мегардад, ки дар навбати худ, дар як нигаҳдории S3 ба таври худкор захира карда мешавад.

Сенарияи дар боло тавсифшуда, аз омадани корбар то баланд бардоштани кластер, боркунии маълумот, иҷро кардани дархостҳо, ба даст овардани натиҷаҳо, бо нархи дақиқаҳои истифодаи кластери ҳисоббарории виртуалӣ, анбори виртуалӣ пардохт карда мешавад. Қурб вобаста ба минтақаи AWS ва андозаи кластер фарқ мекунад, аммо ба ҳисоби миёна ин чанд доллар дар як соат аст. Кластери чор дастгох назар ба кластери ду дастгох ду баробар кимат аст ва кластери хашт дастгох хануз ду баробар кимат аст. Вобаста аз мураккабии дархостҳо вариантҳои 16, 32 мошин мавҷуданд. Аммо шумо танҳо барои он дақиқаҳо пардохт мекунед, ки кластер воқеан кор мекунад, зеро вақте ки ягон дархост вуҷуд надорад, шумо як навъ дастҳоятонро мегиред ва пас аз 5-10 дақиқа интизорӣ (параметри танзимшаванда) худ аз худ хомӯш мешавад, захираҳоро озод кунед ва озод шавед.

Сенарияи комилан воқеӣ ин аст, ки вақте шумо дархост мефиристед, кластер пайдо мешавад, нисбатан гӯем, дар як дақиқа, он як дақиқаи дигарро ҳисоб мекунад, пас панҷ дақиқа барои хомӯш шудан ва шумо барои ҳафт дақиқаи кори ин кластер пардохт мекунед ва моххо ва солхо не.

Сенарияи аввал бо истифода аз Snowflake дар як корбар тавсиф шудааст. Акнун биёед тасаввур кунем, ки корбарони зиёде ҳастанд, ки ба сенарияи воқеӣ наздиктаранд.

Фарз мекунем, ки мо бисёр таҳлилгарон ва гузоришҳои Tableau дорем, ки пайваста пойгоҳи додаҳои моро бо шумораи зиёди дархостҳои оддии таҳлилии SQL бомбаборон мекунанд.

Илова бар ин, биёед бигӯем, ки мо олимони ихтироъкори маълумот дорем, ки кӯшиш мекунанд бо додаҳо корҳои даҳшатнок анҷом диҳанд, бо даҳҳо терабайт кор кунанд, миллиардҳо ва триллионҳо қатор маълумотро таҳлил кунанд.

Барои ду намуди сарбории кори дар боло тавсифшуда, Snowflake ба шумо имкон медиҳад, ки якчанд кластерҳои компютерии мустақили иқтидорҳои гуногунро эҷод кунед. Ғайр аз он, ин кластерҳои ҳисоббарорӣ мустақилона кор мекунанд, аммо бо маълумоти умумии пайваста.

Барои шумораи зиёди пурсишҳои сабук, шумо метавонед 2-3 кластерҳои хурд, тақрибан 2 мошинро ба вуҷуд оред. Ин рафторро дар байни чизҳои дигар бо истифода аз танзимоти автоматӣ амалӣ кардан мумкин аст. Ҳамин тавр шумо мегӯед: "Барфпора, як кластери хурде бардоред. Агар сарбории он аз як параметри муайян зиёд шавад, дуюм, сеюми монандро баланд кунед. Вақте ки сарборӣ ба паст шудан шурӯъ мекунад, зиёдатиро хомӯш кунед». То он даме, ки чӣ қадар таҳлилгарон меоянд ва ба гузоришҳо шурӯъ мекунанд, ҳама захираҳои кофӣ доранд.

Дар айни замон, агар таҳлилгарон дар хоб бошанд ва касе ба гузоришҳо нигоҳ накунад, кластерҳо метавонанд комилан торик шаванд ва шумо барои онҳо пардохт карданро бас мекунед.

Ҳамзамон, барои пурсишҳои вазнин (аз Data Scientists), шумо метавонед як кластери хеле калонро барои 32 мошин эҷод кунед. Ин кластер инчунин танҳо барои он дақиқаҳо ва соатҳое, ки дархости бузурги шумо дар он ҷо иҷро мешавад, пардохт карда мешавад.

Имконияти дар боло тавсифшуда ба шумо имкон медиҳад, ки на танҳо 2, балки бештар намуди сарбории корро ба кластерҳо тақсим кунед (ETL, мониторинг, таҳияи гузориш, ...).

Биёед Snowflake-ро ҷамъбаст кунем. Пойгоҳ як идеяи зебо ва татбиқи қобили амалро муттаҳид мекунад. Дар ManyChat, мо Snowflake-ро барои таҳлили ҳама маълумоте, ки дорем, истифода мебарем. Мо мисли дар мисол се кластер надорем, аммо аз 5 то 9, андозаҳои гуногун. Мо барои баъзе вазифаҳо 16-мошини муқаррарӣ, 2-мошин ва инчунин хеле хурди 1-мошин дорем. Онхо борро бомуваффакият таксим карда, ба мо имконият медиханд, ки бисьёр чизхоро сарфа кунем.

Пойгоҳи додаҳо сарбории хондан ва навиштанро бомуваффақият чен мекунад. Ин дар муқоиса бо ҳамон «Аврора», ки танҳо бори хонишро бардошта буд, фарқияти бузург ва пешравии бузург аст. Snowflake ба шумо имкон медиҳад, ки сарбории навиштани худро бо ин кластерҳои компютерӣ васеъ кунед. Яъне, тавре ки ман зикр кардам, мо дар ManyChat якчанд кластерҳоро истифода мебарем, кластерҳои хурд ва хеле хурд асосан барои ETL, барои боркунии маълумот истифода мешаванд. Ва таҳлилгарон аллакай дар кластерҳои миёна зиндагӣ мекунанд, ки ба онҳо сарбории ETL комилан таъсир намерасонанд, бинобар ин онҳо хеле зуд кор мекунанд.

Мувофиқи он, пойгоҳи додаҳо барои вазифаҳои OLAP мувофиқ аст. Аммо, мутаассифона, он ҳанӯз барои сарбории кории OLTP татбиқ намешавад. Аввалан, ин махзани маълумот сутун аст ва бо тамоми оқибатҳои минбаъда. Дуюм, худи равиш, вақте ки барои ҳар як дархост, агар лозим бошад, шумо як кластери ҳисоббарориро мебардоред ва онро бо маълумот пур мекунед, мутаассифона, барои бори OLTP ҳанӯз кофӣ нест. Интизори сонияҳо барои вазифаҳои OLAP муқаррарӣ аст, аммо барои вазифаҳои OLTP ин қобили қабул нест; 100 мс беҳтар мебуд ё 10 мс беҳтар мебуд.

Натиҷа

Махзани маълумотҳои бе сервер тавассути тақсим кардани пойгоҳи додаҳо ба қисмҳои бидуни шаҳрвандӣ ва ҳолати давлатӣ имконпазир аст. Шумо шояд пай бурда бошед, ки дар ҳамаи мисолҳои дар боло зикршуда, қисми Stateful, нисбатан гӯем, қисмҳои хурдро дар S3 нигоҳ медорад ва Stateless бошад, оптимизатор аст, ки бо метамаълумот кор мекунад ва масъалаҳои амниятро ҳал мекунад, ки онҳоро метавон ҳамчун хидматҳои мустақили сабуки бидуни шаҳрвандӣ баррасӣ кард.

Иҷрои дархостҳои SQL-ро инчунин метавон ҳамчун хидматҳои ҳолати сабук қабул кард, ки метавонанд дар реҷаи бе сервер пайдо шаванд, ба монанди кластерҳои компютерии Snowflake, танҳо маълумоти заруриро зеркашӣ кунанд, дархостро иҷро кунанд ва "берун шаванд".

Пойгоҳҳои сатҳи истеҳсолии бе сервер аллакай барои истифода дастрасанд, онҳо кор мекунанд. Ин пойгоҳи додаҳои бе сервер аллакай барои иҷрои вазифаҳои OLAP омодаанд. Мутаассифона, барои вазифаҳои OLTP онҳо ... бо нозукиҳо истифода мешаванд, зеро маҳдудиятҳо мавҷуданд. Аз як тараф, ин минус аст. Аммо, аз тарафи дигар, ин имконият аст. Шояд яке аз хонандагон роҳе пайдо кунад, ки пойгоҳи додаҳои OLTP-ро бидуни маҳдудияти Аврора комилан бе сервер кунад.

Ман умедворам, ки шумо онро ҷолиб ёфтед. Бе сервер оянда аст :)

Манбаъ: will.com

Илова Эзоҳ