Чӣ тавр мо махзани чанд силсилаи вақтро озмоиш кардем

Чӣ тавр мо махзани чанд силсилаи вақтро озмоиш кардем

Дар тӯли чанд соли охир, пойгоҳи додаҳои силсилаи вақт аз як чизи аҷибе (ба таври хеле махсусгардонидашуда ё дар системаҳои мониторинги кушод (ва ба ҳалли мушаххас алоқаманд) ё дар лоиҳаҳои Big Data истифода мешаванд) ба "маҳсулоти истеъмолӣ" табдил ёфтанд. Дар қаламрави Федератсияи Русия, барои ин бояд ба Yandex ва ClickHouse ташаккури махсус дода шавад. То ин лаҳза, агар ба шумо миқдори зиёди маълумотҳои силсилаи вақт лозим буд, шумо бояд бо зарурати сохтани стеки даҳшатноки Hadoop ва нигоҳдории он муросо кунед ё бо протоколҳои инфиродӣ барои ҳар як система муошират кунед.

Чунин ба назар мерасад, ки дар соли 2019 мақолае, ки дар бораи он TSDB арзанда аст, танҳо аз як ҷумла иборат хоҳад буд: "танҳо ClickHouse-ро истифода баред." Аммо ... нозукиҳо вуҷуд доранд.

Дар ҳақиқат, ClickHouse фаъолона рушд мекунад, пойгоҳи корбарон афзоиш меёбад ва дастгирӣ хеле фаъол аст, аммо оё мо гаравгони муваффақияти ҷамъиятии ClickHouse шудем, ки қарорҳои дигар, шояд муассиртар/эътимодноктарро соя кардааст?

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

Тартиб додани масъала

Пеш аз ҳама, як муқаддимаи зарурӣ. Чаро ба мо умуман системаи мониторинги худамон лозим аст ва он чӣ гуна тарҳрезӣ шудааст?

Мо дар соли 2008 ба расонидани хидматҳои дастгирӣ шурӯъ кардем ва то соли 2010 маълум шуд, ки ҷамъоварӣ кардани маълумот дар бораи равандҳое, ки дар инфрасохтори муштарӣ рух медиҳанд, бо ҳалли он вақтҳо душвор аст (мо дар бораи Худо маро бубахш, Какти, Заббикс сухан меронем) ва Графити пайдошаванда).

Талаботи асосии мо инҳо буданд:

  • дастгирии (дар он вақт - даҳҳо ва дар оянда - садҳо) муштариён дар як система ва дар айни замон мавҷудияти системаи мутамаркази идоракунии огоҳӣ;
  • чандирӣ дар идоракунии системаи огоҳӣ (афзоиши огоҳиҳо байни навбатдорон, ҷадвал, базаи дониш);
  • қобилияти амиқи тафсилоти графикҳо (Заббикс дар он вақт графикҳоро дар шакли расмҳо нишон медод);
  • нигоҳдории дарозмуддати миқдори зиёди маълумот (як сол ё бештар аз он) ва қобилияти зуд дарёфт кардани он.

Дар ин мақола мо ба нуқтаи охирин таваҷҷӯҳ дорем.

Дар бораи нигоҳдорӣ сухан ронда, талаботҳо чунин буданд:

  • система бояд зуд кор кунад;
  • матлуб аст, ки система дорои интерфейси SQL;
  • система бояд устувор бошад ва дорои пойгоҳи фаъоли корбар ва дастгирӣ бошад (вақте мо бо зарурати дастгирии системаҳо ба монанди MemcacheDB, ки дигар таҳия нашудаанд ё нигаҳдории тақсимшудаи MooseFS дучор омадем, ки пайгирии хатогиҳо бо забони чинӣ нигоҳ дошта мешуданд: мо ин ҳикояро барои лоиҳаи мо такрор намекунем);
  • риояи теоремаи CAP: Мутобиқӣ (талаб) - маълумот бояд навсозӣ бошад, мо намехоҳем, ки системаи идоракунии огоҳӣ маълумоти нав қабул накунад ва огоҳиҳоро дар бораи наомадани маълумот барои ҳама лоиҳаҳо паҳн накунад; Таҳаммулпазирии тақсимот (зарур аст) - мо намехоҳем системаи Split Brain -ро ба даст орем; Мавҷудият (муҳим нест, агар репликаи фаъол мавҷуд бошад) - мо метавонем худамон дар ҳолати садама бо истифода аз код ба системаи эҳтиётӣ гузарем.

Аҷиб он аст, ки он вақт MySQL барои мо ҳалли беҳтарин буд. Сохтори маълумоти мо бениҳоят содда буд: id сервер, id ҳисобкунак, тамғаи вақт ва арзиш; Интихоби зуди маълумоти гарм тавассути ҳавзи бузурги буферӣ ва интихоби маълумоти таърихӣ аз ҷониби SSD таъмин карда шуд.

Чӣ тавр мо махзани чанд силсилаи вақтро озмоиш кардем

Ҳамин тариқ, мо як намунаи маълумоти тозаи дуҳафтаинаро ба даст овардем, ки тафсилот то 200 мс-и сония пеш аз он ки маълумот пурра дода шавад ва дар ин система муддати тӯлонӣ зиндагӣ мекардем.

Дар ҳамин ҳол, вақт гузашт ва миқдори маълумот афзоиш ёфт. То соли 2016 ҳаҷми маълумот ба даҳҳо терабайт расид, ки ин дар заминаи нигоҳдории SSD-и иҷора хароҷоти назаррас буд.

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

Чӣ тавр мо махзани чанд силсилаи вақтро озмоиш кардем

Бо вуҷуди ин, системаи калидии ширкат ба таври мӯътадил кор мекард ва ман намехостам бо гузаштан ба чизи дигар озмоиш кунам.

Дар соли 2017, дар конфронси Percona Live дар Сан-Хосе, таҳиягарони Clickhouse эҳтимол бори аввал худро эълон карданд. Дар назари аввал, система ба истеҳсолот омода буд (хуб, Yandex.Metrica системаи истеҳсолии сахт аст), дастгирӣ зуд ва оддӣ буд ва муҳимтар аз ҳама, амалиёт оддӣ буд. Аз соли 2018 мо раванди гузаришро оғоз кардем. Аммо то он вақт, бисёр системаҳои TSDB «калонсолон» ва вақт санҷида буданд ва мо тасмим гирифтем, ки вақти зиёд сарф кунем ва алтернативаҳоро муқоиса кунем, то боварӣ ҳосил кунем, ки мувофиқи талаботи мо ҳалли алтернативии Clickhouse вуҷуд надорад.

Илова ба талаботи қаблан муайяншудаи нигоҳдорӣ, талаботи нав пайдо шуданд:

  • системаи нав бояд ҳадди ақал иҷрои ҳамон MySQL-ро дар ҳамон миқдори сахтафзор таъмин намояд;
  • нигоҳдории системаи нав бояд хеле кам ҷой гирад;
  • Идоракунии DBMS бояд ҳанӯз ҳам осон бошад;
  • Ман мехостам, ки ҳангоми тағир додани DBMS барномаро ҳадди аққал тағир диҳам.

Мо ба баррасии кадом системаҳо шурӯъ кардем?

Apache Hive/Apache Impala
Стеки кӯҳнаи Hadoop, ки дар ҷанг озмуда шудааст. Аслан, он интерфейси SQL мебошад, ки бар болои нигоҳ доштани маълумот дар форматҳои ватанӣ дар HDFS сохта шудааст.

Афзал.

  • Бо фаъолияти устувор, миқёси маълумот хеле осон аст.
  • Қарорҳои сутун барои нигаҳдории додаҳо мавҷуданд (фосила камтар).
  • Иҷрои хеле зуди вазифаҳои мувозӣ, вақте ки захираҳо мавҷуданд.

Эзоҳ.

  • Ин Hadoop аст ва истифодаи он душвор аст. Агар мо омода набошем, ки ҳалли тайёрро дар абр қабул кунем (ва мо аз ҷиҳати арзиш омода набошем), тамоми стек бояд бо дасти администраторҳо ҷамъ ва дастгирӣ карда шавад ва мо воқеан намехоҳем ин.
  • Маълумот ҷамъоварӣ карда мешавад дар ҳақиқат зуд.

Аммо:

Чӣ тавр мо махзани чанд силсилаи вақтро озмоиш кардем

Суръат тавассути миқёси шумораи серверҳои компютерӣ ба даст оварда мешавад. Оддӣ карда гӯем, агар мо як ширкати бузурге бошем, ки бо таҳлил машғулем ва барои тиҷорат ҳарчи зудтар ҷамъоварӣ кардани иттилоот муҳим аст (ҳатто аз ҳисоби истифодаи миқдори зиёди захираҳои ҳисоббарорӣ), ин метавонад интихоби мо бошад. Аммо мо тайёр набудем, ки парки аппаратураро барои тезон-дани супоришхо зиёд кунем.

Druid/Pinot

Махсусан дар бораи TSDB чизи бештаре вуҷуд дорад, аммо боз ҳам стеки Hadoop.

вуҷуд доранд мақолаи олӣ дар муқоиса бо тарафҳои мусбӣ ва манфии Druid ва Pinot бо ClickHouse .

Бо чанд сухан: Druid/Pinot аз Clickhouse беҳтар ба назар мерасад, дар ҳолатҳое, ки:

  • Шумо хусусияти гетерогении маълумот доред (дар ҳолати мо, мо танҳо силсилаи ченакҳои серверро сабт мекунем ва дар асл, ин як ҷадвал аст. Аммо ҳолатҳои дигар низ вуҷуд доранд: силсилаи вақтҳои таҷҳизот, силсилаи вақтҳои иқтисодӣ ва ғайра - ҳар як бо сохтори худ, ки бояд ҷамъ ва коркард карда шавад).
  • Илова бар ин, ин маълумот хеле зиёд аст.
  • Ҷадвалҳо ва додаҳо бо силсилаи вақт пайдо мешаванд ва нопадид мешаванд (яъне баъзе маҷмӯи маълумотҳо омада, таҳлил ва нест карда шуданд).
  • Ягон меъёри дақиқе вуҷуд надорад, ки тавассути он маълумот тақсим карда мешавад.

Дар ҳолатҳои муқобил, ClickHouse беҳтар кор мекунад ва ин ҳолати мост.

кликхона

  • ба монанди SQL
  • Идора кардан осон.
  • Одамон мегӯянд, ки ин кор мекунад.

Барои санҷиш ба рӯйхати кӯтоҳ дохил мешавад.

InfluxDB

Алтернативаи хориҷӣ ба ClickHouse. Аз камбудиҳо: Мавҷудияти баланд танҳо дар версияи тиҷоратӣ мавҷуд аст, аммо онро муқоиса кардан лозим аст.

Барои санҷиш ба рӯйхати кӯтоҳ дохил мешавад.

Кассандра

Аз як тараф, мо медонем, ки он барои нигоҳ доштани силсилаи метрикӣ аз ҷониби чунин системаҳои мониторинг истифода мешавад, масалан, SignalFX ё OkMeter. Бо вуҷуди ин, мушаххасот вуҷуд доранд.

Кассандра ба маънои анъанавӣ пойгоҳи додаҳои сутунӣ нест. Он бештар ба намуди сатр шабоҳат дорад, аммо ҳар як сатр метавонад шумораи гуногуни сутунҳо дошта бошад, ки ташкили намуди сутуниро осон мекунад. Ба ин маъно, равшан аст, ки бо маҳдудияти 2 миллиард сутун, мумкин аст, ки баъзе маълумотро дар сутунҳо (ва ҳамон силсилаи вақтҳо) нигоҳ доштан мумкин аст. Масалан, дар MySQL маҳдудияти 4096 сутун вуҷуд дорад ва агар шумо кӯшиш кунед, ки ин корро кунед, ба хатогӣ бо рамзи 1117 дучор шудан осон аст.

Муҳаррики Кассандра ба нигоҳ доштани миқдори зиёди додаҳо дар системаи тақсимшуда бидуни устод нигаронида шудааст ва теоремаи дар боло зикршудаи Кассандра CAP бештар дар бораи AP, яъне дар бораи мавҷудияти додаҳо ва муқовимат ба тақсимкунӣ мебошад. Ҳамин тариқ, ин асбоб метавонад олиҷаноб бошад, агар шумо танҳо ба ин пойгоҳи додаҳо нависед ва аз он кам хонед. Ва дар ин ҷо истифодаи Кассандра ҳамчун анбори "сард" мантиқист. Яъне, ҳамчун як макони дарозмуддат ва боэътимод барои нигоҳ доштани миқдори зиёди маълумоти таърихӣ, ки хеле кам лозиманд, аммо дар ҳолати зарурӣ метавон бозпас гирифт. Бо вуҷуди ин, барои пуррагӣ, мо онро низ озмоиш хоҳем кард. Аммо, тавре ки ман қаблан гуфтам, хоҳиши фаъолона аз нав сабт кардани код барои ҳалли интихобшудаи пойгоҳи додаҳо вуҷуд надорад, аз ин рӯ мо онро то андозае маҳдуд месанҷем - бидуни мутобиқ кардани сохтори пойгоҳи додаҳо ба хусусиятҳои Кассандра.

Prometheus

Хуб, аз рӯи кунҷковӣ, мо тасмим гирифтем, ки самаранокии нигаҳдории Prometheus-ро санҷем - танҳо барои фаҳмидани он ки мо нисбат ба ҳалли ҷорӣ тезтар ё сусттар ҳастем ва чӣ қадар.

Методология ва натиҷаҳои санҷиш

Ҳамин тавр, мо 5 пойгоҳи додаҳоро дар 6 конфигуратсияи зерин озмоиш кардем: ClickHouse (1 гиреҳ), ClickHouse (ҷадвали тақсимшуда барои 3 гиреҳ), InfluxDB, Mysql 8, Cassandra (3 гиреҳ) ва Prometheus. Нақшаи санҷиш чунин аст:

  1. маълумоти таърихиро дар як ҳафта бор кунед (840 миллион арзиш дар як рӯз; 208 ҳазор метр);
  2. мо сарбории сабтро тавлид мекунем (6 режими сарборӣ баррасӣ шуд, ба поён нигаред);
  3. Дар баробари сабт, мо давра ба давра интихоб карда, ба дархостҳои корбаре, ки бо диаграммаҳо кор мекунад, тақлид мекунем. Барои он ки корҳоро аз ҳад зиёд мушкил накунем, мо дар тӯли як ҳафта маълумотро барои 10 ченак интихоб кардем (дар графики CPU маҳз ҳамин қадар аст).

Мо тавассути тақлид кардани рафтори агенти мониторинги худ, ки арзишҳоро ба ҳар як метр дар 15 сония як маротиба мефиристад, бор мекунем. Дар айни замон, мо ба фарқ кардан манфиатдорем:

  • шумораи умумии ченакҳое, ки ба онҳо маълумот навишта мешавад;
  • фосила барои фиристодани арзишҳо ба як метр;
  • андозаи партия.

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

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

Ва дар ин ҷо, бо дарназардошти ҳамаи ин, мо 6 режими боркунии боркунии пойгоҳи додаҳо дорем:

Чӣ тавр мо махзани чанд силсилаи вақтро озмоиш кардем

Дар ин ҷо ду нукта вуҷуд дорад. Аввалан, барои Кассандра ин андозаҳои партия хеле калон шуданд, дар он ҷо мо арзишҳои 50 ё 100-ро истифода бурдем. Ва дуюм, азбаски Prometheus ба таври қатъӣ дар ҳолати кашидан кор мекунад, яъне. худаш меравад ва маълумотро аз манбаъҳои метрикӣ ҷамъоварӣ мекунад (ва ҳатто pushgateway, сарфи назар аз ном, вазъиятро ба таври куллӣ тағир намедиҳад), сарбориҳои мувофиқ бо истифода аз маҷмӯи конфигуратсияҳои статикӣ амалӣ карда шуданд.

Натиҷаҳои санҷиш чунинанд:

Чӣ тавр мо махзани чанд силсилаи вақтро озмоиш кардем

Чӣ тавр мо махзани чанд силсилаи вақтро озмоиш кардем

Чӣ тавр мо махзани чанд силсилаи вақтро озмоиш кардем

Кайд кардан бамаврид аст: намунаҳои хеле зуд аз Prometheus, намунаҳои бениҳоят суст аз Кассандра, намунаҳои ғайри қобили қабул суст аз InfluxDB; Дар робита ба суръати сабт, ClickHouse ҳама ғолиб омад ва Prometheus дар озмун иштирок намекунад, зеро он худаш дохил мекунад ва мо чизеро чен намекунем.

Дар натиҷа,: ClickHouse ва InfluxDB худро беҳтарин нишон доданд, аммо кластерро аз Influx танҳо дар асоси версияи Enterprise сохтан мумкин аст, ки пулро талаб мекунад, дар ҳоле ки ClickHouse ҳеҷ арзиш надорад ва дар Русия истеҳсол шудааст. Мантиқан он аст, ки дар ИМА интихоб эҳтимол ба нафъи inInfluxDB бошад ва дар кишвари мо бошад, ба тарафдории ClickHouse.

Манбаъ: will.com

Илова Эзоҳ