Mar a rinn sinn deuchainn air stòran-dàta sreath ioma-ùine

Mar a rinn sinn deuchainn air stòran-dàta sreath ioma-ùine

Thairis air na beagan bhliadhnaichean a dh’ fhalbh, tha stòran-dàta sreath-ùine air tionndadh bho rud a-muigh (air leth sònraichte air a chleachdadh an dàrna cuid ann an siostaman sgrùdaidh fosgailte (agus ceangailte ri fuasglaidhean sònraichte) no ann am pròiseactan Dàta Mòr) gu bhith nan “toradh luchd-cleachdaidh”. Air fearann ​​Caidreachas na Ruis, feumar taing shònraichte a thoirt do Yandex agus ClickHouse airson seo. Gu ruige seo, nam feumadh tu tòrr dàta sreath-ùine a stòradh, dh’ fheumadh tu an dàrna cuid a thighinn gu cùmhnantan leis an fheum air stac Hadoop monstrous a thogail agus a chumail suas, no conaltradh le protocolaidhean fa leth airson gach siostam.

Is dòcha gu bheil e coltach ann an 2019 nach bi ann an artaigil mu dè as fhiach TSDB a chleachdadh ach aon abairt: “dìreach cleachd ClickHouse.” Ach ... tha nuances ann.

Gu dearbh, tha ClickHouse gu gnìomhach a’ leasachadh, tha am bunait luchd-cleachdaidh a’ fàs, agus tha taic gu math gnìomhach, ach a bheil sinn air a bhith nar nàimhdean do shoirbheachas poblach ClickHouse, a tha air a dhol thairis air fuasglaidhean eile, is dòcha nas èifeachdaiche / earbsach?

Aig toiseach na bliadhna an-uiridh, thòisich sinn ag ath-obrachadh ar siostam sgrùdaidh fhèin, nuair a dh'èirich a 'cheist mu bhith a' taghadh stòr-dàta iomchaidh airson dàta a stòradh. Tha mi airson bruidhinn mu eachdraidh an roghainn seo an seo.

Aithris dhuilgheadas

An toiseach, ro-ràdh riatanach. Carson a tha feum againn air an t-siostam sgrùdaidh againn fhèin idir agus ciamar a chaidh a dhealbhadh?

Thòisich sinn a’ toirt seachad seirbheisean taice ann an 2008, agus ann an 2010 dh’ fhàs e soilleir gun robh e duilich dàta a chruinneachadh mu na pròiseasan a bha a’ tachairt ann am bun-structar teachdaiche leis na fuasglaidhean a bha ann aig an àm sin (tha sinn a’ bruidhinn, Dia mathanas dhomh, Cacti, Zabbix agus an Graphite a tha a’ tighinn am bàrr).

B’ iad na prìomh riatanasan againn:

  • taic (aig an àm sin - dusanan, agus san àm ri teachd - ceudan) de luchd-dèiligidh taobh a-staigh aon shiostam agus aig an aon àm làthaireachd siostam riaghlaidh rabhaidh meadhanach;
  • sùbailteachd ann a bhith a’ riaghladh an t-siostam rabhaidh (àrdachadh rabhaidhean eadar oifigearan dleastanais, clàradh, bunait eòlais);
  • an comas grafaichean a mhion-fhiosrachadh gu domhainn (rinn Zabbix aig an àm sin grafaichean ann an cruth dhealbhan);
  • stòradh fad-ùine air tòrr dàta (bliadhna no barrachd) agus an comas fhaighinn air ais gu sgiobalta.

San artaigil seo tha ùidh againn anns a’ phuing mu dheireadh.

A 'bruidhinn air stòradh, bha na riatanasan mar a leanas:

  • feumaidh an siostam obrachadh gu luath;
  • tha e ion-mhiannaichte gu bheil eadar-aghaidh SQL aig an t-siostam;
  • feumaidh an siostam a bhith seasmhach agus bunait luchd-cleachdaidh gnìomhach agus taic a bhith aige (aon uair ‘s gu robh sinn an-aghaidh an fheum air taic a thoirt do shiostaman leithid MemcacheDB, nach deach a leasachadh tuilleadh, no stòradh sgaoilte MooseFS, agus chaidh an rianadair bug dheth a chumail ann an Sìonais: bidh sinn ag ath-aithris an sgeulachd seo airson nach robh am pròiseact againn ag iarraidh);
  • gèilleadh ri teòirim CAP: Co-fhreagarrachd (riatanach) - feumaidh an dàta a bhith ùraichte, chan eil sinn ag iarraidh nach fhaigh an siostam riaghlaidh rabhaidh dàta ùr agus gun cuir sinn a-mach rabhaidhean mu neo-thàinig dàta airson a h-uile pròiseact; Partition Tolerance (riatanach) - chan eil sinn airson siostam Split Brain fhaighinn; Ri fhaighinn (chan eil e riatanach, ma tha mac-samhail gnìomhach ann) - is urrainn dhuinn gluasad chun t-siostam cùl-taic sinn fhìn ma thachras tubaist, a’ cleachdadh còd.

Gu neònach gu leòr, aig an àm sin b’ e MySQL am fuasgladh as fheàrr dhuinn. Bha an structar dàta againn air leth sìmplidh: id an fhrithealaiche, counter id, clàr-ama agus luach; chaidh samplachadh luath de dhàta teth a dhèanamh cinnteach le cruinneachadh mòr bufair, agus chaidh samplachadh dàta eachdraidheil a dhèanamh cinnteach le SSD.

Mar a rinn sinn deuchainn air stòran-dàta sreath ioma-ùine

Mar sin, choilean sinn sampall de dhàta ùr dà sheachdain, le mion-fhiosrachadh sìos gu diog 200 ms mus deach an dàta a thoirt seachad gu tur, agus bha sinn a’ fuireach san t-siostam seo airson ùine mhòr.

Aig an aon àm, chaidh ùine seachad agus mheudaich an ìre de dhàta. Ro 2016, ràinig meudan dàta deichean de terabytes, a bha na chosgais mhòr ann an co-theacsa stòradh SSD air màl.

Ron àm seo, bha stòran-dàta colbhan air fàs gu gnìomhach, agus thòisich sinn a’ smaoineachadh gu gnìomhach: ann an stòran-dàta colbh, tha dàta air a stòradh, mar a thuigeas tu, ann an colbhan, agus ma choimheadas tu air an dàta againn, tha e furasta àireamh mhòr fhaicinn. àireamh dùblaidhean a dh’ fhaodadh, ann an Ma chleachdas tu stòr-dàta colbh, teannachadh le bhith a’ cleachdadh teannachadh.

Mar a rinn sinn deuchainn air stòran-dàta sreath ioma-ùine

Ach, lean prìomh shiostam na companaidh ag obair gu seasmhach, agus cha robh mi airson feuchainn air atharrachadh gu rudeigin eile.

Ann an 2017, aig co-labhairt Percona Live ann an San Jose, is dòcha gun do dh’ ainmich luchd-leasachaidh Clickhouse iad fhèin airson a’ chiad uair. Aig a 'chiad sealladh, bha an siostam deiseil airson riochdachadh (gu math, tha Yandex.Metrica na shiostam cinneasachaidh cruaidh), bha taic luath agus sìmplidh, agus, as cudromaiche, bha an obrachadh sìmplidh. Bho 2018, tha sinn air tòiseachadh air a’ phròiseas gluasaid. Ach ron àm sin, bha tòrr shiostaman TSDB “inbheach” agus le deuchainn ùine ann, agus chuir sinn romhainn tòrr ùine a chaitheamh agus coimeas a dhèanamh eadar roghainnean eile gus dèanamh cinnteach nach robh fuasglaidhean eile ann airson Clickhouse, a rèir ar riatanasan.

A bharrachd air na riatanasan stòraidh a chaidh a shònrachadh mar-thà, tha feadhainn ùra air nochdadh:

  • bu chòir don t-siostam ùr co-dhiù an aon choileanadh a thoirt seachad ri MySQL air an aon uiread de bhathar-cruaidh;
  • bu chòir stòradh an t-siostam ùr mòran nas lugha de rùm a ghabhail;
  • Feumaidh an DBMS a bhith furasta a riaghladh fhathast;
  • Bha mi airson an aplacaid atharrachadh cho beag 'sa ghabhas nuair a bha mi ag atharrachadh an DBMS.

Dè na siostaman air an do thòisich sinn a’ beachdachadh?

Apache Hive/Apache Impala
Seann stac Hadoop fo dheuchainn blàir. Gu bunaiteach, is e eadar-aghaidh SQL a th’ ann a chaidh a thogail a bharrachd air stòradh dàta ann an cruthan dùthchasach air HDFS.

Pros.

  • Le obrachadh seasmhach, tha e gu math furasta dàta a sgèile.
  • Tha fuasglaidhean colbh ann airson stòradh dàta (nas lugha de rùm).
  • Coileanadh gu math luath de ghnìomhan co-shìnte nuair a bhios goireasan rim faighinn.

Cons

  • Is e Hadoop a th’ ann agus tha e duilich a chleachdadh. Mura h-eil sinn deiseil airson fuasgladh deiseil a ghabhail san sgòth (agus nach eil sinn deiseil a thaobh cosgais), feumaidh an stac gu lèir a bhith air a chruinneachadh agus taic a thoirt dha le làmhan luchd-rianachd, agus chan eil sinn dha-rìribh ag iarraidh seo.
  • Tha dàta air a chruinneachadh gu math luath.

Ach:

Mar a rinn sinn deuchainn air stòran-dàta sreath ioma-ùine

Tha astar air a choileanadh le bhith a 'sgèileadh an àireamh de luchd-frithealaidh coimpiutaireachd. Gu sìmplidh, mas e companaidh mòr a th’ annainn, an sàs ann an anailisean, agus gu bheil e deatamach don ghnìomhachas fiosrachadh a chruinneachadh cho luath ‘s a ghabhas (eadhon aig cosgais a bhith a’ cleachdadh tòrr ghoireasan coimpiutaireachd), is dòcha gur e seo an roghainn againn. Ach cha robh sinn deiseil gus an cabhlach bathar-cruaidh iomadachadh gus gnìomhan a luathachadh.

Druide/Pioot

Tha tòrr a bharrachd ann mu TSDB gu sònraichte, ach a-rithist, stac Hadoop.

tha artaigil sgoinneil a’ dèanamh coimeas eadar na buannachdan agus na mì-bhuannachdan bho Druid agus Pinot an aghaidh ClickHouse .

Ann am beagan fhaclan: tha Druid / Pinot a’ coimhead nas fheàrr na Clickhouse ann an cùisean far a bheil:

  • Tha nàdar heterogeneous de dhàta agad (anns a’ chùis againn, bidh sinn a ’clàradh dìreach amannan de mheatairean frithealaiche, agus, gu dearbh, is e seo aon chlàr. Ach dh’ fhaodadh cùisean eile a bhith ann: sreath ùine uidheamachd, sreath ùine eaconamach, msaa - gach fear le an structar aige fhèin, a dh’ fheumar a chruinneachadh agus a phròiseasadh).
  • A bharrachd air an sin, tha tòrr den dàta seo ann.
  • Bidh clàran agus dàta le sreath ùine a’ nochdadh agus a’ dol à sealladh (is e sin, thàinig cuid de sheata dàta, chaidh a sgrùdadh agus a dhubhadh às).
  • Chan eil slatan-tomhais soilleir ann leis an urrainnear dàta a roinn.

Ann an cùisean eile, bidh ClickHouse a’ coileanadh nas fheàrr, agus is e seo a’ chùis againn.

Cliog Taigh

  • Coltach ri SQL
  • Furasta a riaghladh.
  • Bidh daoine ag ràdh gu bheil e ag obair.

A’ faighinn air a’ gheàrr-liosta airson deuchainn.

InfluxDB

Roghainn eile thall thairis an àite ClickHouse. De na minuses: Chan eil ruigsinneachd àrd ach an làthair anns an dreach malairteach, ach feumar a choimeas.

A’ faighinn air a’ gheàrr-liosta airson deuchainn.

Cassandra

Air an aon làimh, tha fios againn gu bheil e air a chleachdadh airson amannan meatrach a stòradh le leithid de shiostaman sgrùdaidh mar, mar eisimpleir, ComharraFX no OkMeter. Ach, tha feartan sònraichte ann.

Chan e stòr-dàta colbh a th’ ann an Cassandra san t-seagh thraidiseanta. Tha e nas coltaiche ri sealladh sreath, ach faodaidh àireamh eadar-dhealaichte de cholbhan a bhith aig gach loidhne, ga dhèanamh furasta sealladh colbh a chuir air dòigh. San t-seagh seo, tha e soilleir, le crìoch de 2 billean colbhan, gu bheil e comasach cuid de dhàta a stòradh ann an colbhan (agus an aon sreath ùine). Mar eisimpleir, ann am MySQL tha crìoch de 4096 colbhan agus tha e furasta a dhol an sàs ann an mearachd le còd 1117 ma dh'fheuchas tu ris an aon rud a dhèanamh.

Tha einnsean Cassandra ag amas air tòrr dàta a stòradh ann an siostam sgaoilte gun mhaighstir, agus tha an teòirim Cassandra CAP gu h-àrd nas motha mu dheidhinn AP, is e sin, mu chothrom air dàta agus strì an aghaidh sgaradh. Mar sin, faodaidh an inneal seo a bhith fìor mhath mura feum thu ach sgrìobhadh chun stòr-dàta seo agus is ann ainneamh a leughas tu bhuaithe. Agus an seo tha e loidsigeach Cassandra a chleachdadh mar stòradh “fuar”. Is e sin, mar àite earbsach san fhad-ùine airson tòrr dàta eachdraidheil a stòradh nach eil a dhìth ach ainneamh, ach faodar fhaighinn air ais ma tha sin riatanach. Gidheadh, air sgàth iomlanachd, nì sinn deuchainn air cuideachd. Ach, mar a thuirt mi na bu thràithe, chan eil miann ann an còd ath-sgrìobhadh gu gnìomhach airson an fhuasgladh stòr-dàta taghte, agus mar sin nì sinn deuchainn air beagan cuibhrichte - gun a bhith ag atharrachadh structar an stòr-dàta gu mion-fhiosrachadh Cassandra.

Prometheus

Uill, a-mach à feòrachas, chuir sinn romhainn deuchainn a dhèanamh air coileanadh stòradh Prometheus - dìreach gus tuigsinn a bheil sinn nas luaithe no nas slaodaiche na fuasglaidhean gnàthach agus dè an ìre.

Modh-obrach deuchainn agus toraidhean

Mar sin, rinn sinn deuchainn air stòran-dàta 5 anns na rèiteachaidhean 6 a leanas: ClickHouse (1 nód), ClickHouse (clàr sgaoilte airson nodan 3), InfluxDB, Mysql 8, Cassandra (nodan 3) agus Prometheus. Tha am plana deuchainn mar a leanas:

  1. luchdaich suas dàta eachdraidheil airson seachdain (840 millean luachan gach latha; 208 mìle meatrach);
  2. bidh sinn a’ gineadh luchd clàraidh (chaidh beachdachadh air modhan luchdan 6, faic gu h-ìosal);
  3. Aig an aon àm ri clàradh, bidh sinn bho àm gu àm a’ taghadh, a’ dèanamh atharrais air iarrtasan neach-cleachdaidh a bhios ag obair le clàran. Gus nach dèan sinn cus iom-fhillte air cùisean, thagh sinn dàta airson 10 meatairean (sin dìreach cia mheud a tha air graf CPU) airson seachdain.

Bidh sinn a’ luchdachadh le bhith ag atharrais air giùlan ar n-àidseant sgrùdaidh, a chuireas luachan gu gach meatrach aon uair gach 15 diog. Aig an aon àm, tha ùidh againn ann an diofar:

  • an àireamh iomlan de mheatairean anns a bheil dàta air a sgrìobhadh;
  • eadar-ama airson luachan a chuir gu aon mheatrach;
  • meud baidse.

Mu dheidhinn meud a’ bhaga. Leis nach eilear a’ moladh cha mhòr a h-uile stòr-dàta deuchainneach againn a luchdachadh le cuir a-steach singilte, bidh feum againn air sealaidheachd a bhios a’ cruinneachadh mheatairean a tha a’ tighinn a-steach agus gan cur ann am buidhnean agus gan sgrìobhadh chun stòr-dàta mar chur-a-steach baidse.

Cuideachd, gus tuigse nas fheàrr fhaighinn air mar a mhìnicheas tu an dàta a fhuaireadh, smaoinichidh sinn nach e a-mhàin gu bheil sinn a’ cur dòrlach de mheatairean, ach gu bheil na meatrach air an eagrachadh ann an frithealaichean - 125 metrics gach frithealaiche. An seo chan eil anns an fhrithealaiche ach eintiteas brìgheil - dìreach airson tuigsinn gu bheil, mar eisimpleir, 10000 meatrach a’ freagairt ri timcheall air 80 frithealaiche.

Agus an seo, a’ toirt aire do seo uile, a bheil na modhan sgrìobhaidh 6 stòr-dàta againn:

Mar a rinn sinn deuchainn air stòran-dàta sreath ioma-ùine

Tha dà phuing an seo. An toiseach, airson Cassandra bha na meudan baidse sin ro mhòr, an sin chleachd sinn luachan 50 no 100. Agus san dàrna àite, leis gu bheil Prometheus ag obair gu cruaidh ann am modh tarraing, i.e. bidh e fhèin a’ dol agus a’ cruinneachadh dàta bho stòran meatrach (agus chan eil eadhon pushgateway, a dh’ aindeoin an ainm, ag atharrachadh an t-suidheachaidh gu bunaiteach), chaidh na luchdan co-fhreagarrach a chuir an gnìomh a’ cleachdadh measgachadh de rèiteachaidhean statach.

Tha toraidhean an deuchainn mar a leanas:

Mar a rinn sinn deuchainn air stòran-dàta sreath ioma-ùine

Mar a rinn sinn deuchainn air stòran-dàta sreath ioma-ùine

Mar a rinn sinn deuchainn air stòran-dàta sreath ioma-ùine

Dè as fhiach toirt fa-near: sampallan air leth luath bho Prometheus, sampallan uamhasach slaodach bho Cassandra, sampallan slaodach mì-iomchaidh bho InfluxDB; A thaobh astar clàraidh, choisinn ClickHouse a h-uile duine, agus chan eil Prometheus a 'gabhail pàirt anns a' cho-fharpais, oir tha e a 'dèanamh cuir a-steach fhèin agus chan eil sinn a' tomhas rud sam bith.

Mar thoradh air,: Sheall ClickHouse agus InfluxDB iad fhèin mar an fheadhainn as fheàrr, ach chan urrainnear cruinneachadh bho Influx a thogail ach air bunait an dreach Iomairt, a chosgas airgead, fhad ‘s a tha ClickHouse a’ cosg dad agus ga dhèanamh san Ruis. Tha e loidsigeach gur dòcha gu bheil an roghainn anns na SA airson inInfluxDB, agus anns an dùthaich againn tha e airson ClickHouse.

Source: www.habr.com

Cuir beachd ann