Bii o ṣe le wo oju Cassandra laisi sisọnu data, iduroṣinṣin ati igbagbọ ninu NoSQL

Bii o ṣe le wo oju Cassandra laisi sisọnu data, iduroṣinṣin ati igbagbọ ninu NoSQL

Wọn sọ pe ohun gbogbo ni igbesi aye tọ lati gbiyanju o kere ju lẹẹkan. Ati pe ti o ba lo lati ṣiṣẹ pẹlu awọn DBMS ti o ni ibatan, lẹhinna o tọ lati ni ibatan pẹlu NoSQL ni iṣe, ni akọkọ, o kere ju fun idagbasoke gbogbogbo. Ni bayi, nitori idagbasoke iyara ti imọ-ẹrọ yii, ọpọlọpọ awọn imọran rogbodiyan ati awọn ijiyan kikan wa lori koko yii, eyiti o jẹ anfani ni pataki.
Ti o ba ṣawari sinu pataki ti gbogbo awọn ariyanjiyan wọnyi, o le rii pe wọn dide nitori ọna ti ko tọ. Awọn ti o lo awọn apoti isura infomesonu NoSQL gangan nibiti wọn nilo wọn ni itẹlọrun ati gba gbogbo awọn anfani lati inu ojutu yii. Ati awọn adanwo ti o gbẹkẹle imọ-ẹrọ yii bi panacea nibiti ko wulo rara ni ibanujẹ, ti padanu awọn agbara ti awọn apoti isura infomesonu ibatan laisi nini awọn anfani pataki.

Emi yoo sọ fun ọ nipa iriri wa ni imuse ojutu kan ti o da lori Cassandra DBMS: kini a ni lati koju, bawo ni a ṣe jade kuro ninu awọn ipo ti o nira, boya a ni anfani lati ni anfani lati lilo NoSQL ati nibiti a ni lati nawo awọn akitiyan / owo afikun .
Iṣẹ akọkọ ni lati kọ eto ti o ṣe igbasilẹ awọn ipe ni iru ibi ipamọ kan.

Ilana ṣiṣe ti eto jẹ bi atẹle. Iṣagbewọle naa pẹlu awọn faili pẹlu eto kan pato ti o ṣe apejuwe igbekalẹ ipe naa. Ohun elo lẹhinna ṣe idaniloju pe eto yii wa ni ipamọ ni awọn ọwọn ti o yẹ. Ni ọjọ iwaju, awọn ipe ti o fipamọ ni a lo lati ṣafihan alaye lori agbara ijabọ fun awọn alabapin (awọn idiyele, awọn ipe, itan iwọntunwọnsi).

Bii o ṣe le wo oju Cassandra laisi sisọnu data, iduroṣinṣin ati igbagbọ ninu NoSQL

O han gbangba idi ti wọn fi yan Cassandra - o kọwe bi ibon ẹrọ, jẹ iwọn ti o rọrun, ati ifarada aṣiṣe.

Nitorinaa, eyi ni iriri ti fun wa

Bẹẹni, ipade ti o kuna kii ṣe ajalu. Eyi ni pataki ti ifarada ẹbi Cassandra. Sugbon ipade kan le wa laaye ati ni akoko kanna bẹrẹ lati jiya ni iṣẹ. Bi o ti wa ni jade, eyi lẹsẹkẹsẹ ni ipa lori iṣẹ ti gbogbo iṣupọ.

Cassandra kii yoo daabobo ọ nibiti Oracle ti fipamọ ọ pẹlu awọn idiwọ rẹ. Ati pe ti onkọwe ohun elo ko ba loye eyi ni ilosiwaju, lẹhinna ilọpo meji ti o de fun Cassandra ko buru ju atilẹba lọ. Ni kete ti o ti de, a yoo fi sii.

IB korira gidigidi Cassandra ọfẹ lati inu apoti: Ko si gedu ti awọn iṣe olumulo, ko si iyatọ ti awọn ẹtọ. Alaye nipa awọn ipe ni a gba si data ti ara ẹni, eyiti o tumọ si pe gbogbo awọn igbiyanju lati beere / yi pada ni ọna eyikeyi gbọdọ wa ni ibuwolu pẹlu iṣeeṣe iṣatunṣe atẹle. Paapaa, o nilo lati mọ iwulo lati ya awọn ẹtọ ni awọn ipele oriṣiriṣi fun awọn olumulo oriṣiriṣi. Onimọ-ẹrọ iṣiṣẹ ti o rọrun ati alabojuto Super kan ti o le paarẹ gbogbo aaye bọtini larọwọto jẹ awọn ipa oriṣiriṣi, awọn ojuse oriṣiriṣi, ati awọn agbara. Laisi iru iyatọ ti awọn ẹtọ wiwọle, iye ati otitọ ti data yoo wa sinu ibeere ni kiakia ju pẹlu eyikeyi ipele aitasera.

A ko ṣe akiyesi pe awọn ipe nilo awọn atupale pataki mejeeji ati iṣapẹẹrẹ igbakọọkan fun awọn ipo pupọ. Niwọn igba ti awọn igbasilẹ ti o yan lẹhinna yẹ ki o paarẹ ati tunkọ (gẹgẹbi apakan ti iṣẹ-ṣiṣe, a gbọdọ ṣe atilẹyin ilana ti imudojuiwọn data nigbati data ni ibẹrẹ ti tẹ lupu wa ni aṣiṣe), Cassandra kii ṣe ọrẹ wa nibi. Cassandra dabi banki ẹlẹdẹ - o rọrun lati fi awọn nkan sinu, ṣugbọn o ko le ka ninu rẹ.

A koju iṣoro gbigbe data si awọn agbegbe idanwo (5 apa ni igbeyewo dipo 20 ni prom). Ni idi eyi, a ko le lo idalẹnu naa.

Iṣoro naa pẹlu mimu dojuiwọn ero data ti kikọ ohun elo kan si Cassandra. Yiyi pada yoo ṣe agbejade ọpọlọpọ awọn ibojì nla, eyiti o le ja si awọn adanu iṣelọpọ ni awọn ọna airotẹlẹ.. Cassandra ti wa ni iṣapeye fun gbigbasilẹ, ko si ronu pupọ ṣaaju kikọ eyikeyi iṣẹ pẹlu data ti o wa ninu rẹ tun jẹ gbigbasilẹ. Iyẹn ni, nipa piparẹ awọn ti ko wulo, a yoo ṣe agbejade awọn igbasilẹ paapaa diẹ sii, ati pe diẹ ninu wọn nikan ni yoo samisi pẹlu awọn okuta ibojì.

Awọn ipari akoko nigba fifi sii. Cassandra jẹ lẹwa ni gbigbasilẹ, ṣugbọn ma ti nwọle sisan le significantly adojuru rẹ. Eyi ṣẹlẹ nigbati ohun elo bẹrẹ lati yipo ni ayika awọn igbasilẹ pupọ ti ko le fi sii fun idi kan. Ati pe a yoo nilo DBA gidi kan ti yoo ṣe atẹle gc.log, eto ati awọn akọọlẹ yokokoro fun awọn ibeere ti o lọra, awọn metiriki lori isunmọ iwapọ.

Orisirisi awọn ile-iṣẹ data ni iṣupọ kan. Nibo ni lati ka ati nibo ni lati kọ?
Boya pin si kika ati kikọ? Ati pe ti o ba jẹ bẹ, o yẹ ki DC kan wa nitosi ohun elo fun kikọ tabi kika? Ati pe a ko le pari pẹlu ọpọlọ pipin gidi ti a ba yan ipele aitasera ti ko tọ? Awọn ibeere pupọ lo wa, ọpọlọpọ awọn eto aimọ, awọn aye ti o fẹ gaan lati tinker pẹlu.

Bawo ni a ṣe pinnu

Lati yago fun ipade lati rì, SWAP jẹ alaabo. Ati ni bayi, ti aini iranti ba wa, ipade yẹ ki o lọ silẹ ki o ma ṣe ṣẹda awọn idaduro gc nla.

Nítorí náà, a ko si ohun to gbekele lori kannaa ni database. Awọn olupilẹṣẹ ohun elo n ṣe atunṣe ara wọn ati pe wọn bẹrẹ lati ṣe awọn iṣọra ni itara ni koodu tiwọn. Bojumu ko Iyapa ti data ipamọ ati processing.

A ra atilẹyin lati DataStax. Idagbasoke Cassandra ti apoti ti dawọ tẹlẹ (igbẹhin ti o kẹhin jẹ ni Kínní 2018). Ni akoko kanna, Datastax nfunni ni iṣẹ ti o dara julọ ati nọmba nla ti awọn atunṣe ati awọn iṣeduro ti o ṣe atunṣe fun awọn iṣeduro IP ti o wa tẹlẹ.

Mo tun fẹ lati ṣe akiyesi pe Cassandra ko rọrun pupọ fun awọn ibeere yiyan. Nitoribẹẹ, CQL jẹ igbesẹ nla siwaju fun awọn olumulo (akawe si Trift). Ṣugbọn ti o ba ni gbogbo awọn apa ti o faramọ iru awọn ọna asopọ irọrun, sisẹ ọfẹ nipasẹ eyikeyi aaye ati awọn agbara imudara ibeere, ati pe awọn apa wọnyi n ṣiṣẹ lati yanju awọn ẹdun ọkan ati awọn ijamba, lẹhinna ojutu lori Cassandra dabi ọta ati aimọgbọnwa si wọn. Ati pe a bẹrẹ lati pinnu bi awọn ẹlẹgbẹ wa ṣe yẹ ki o ṣe awọn ayẹwo.

A ṣe akiyesi awọn aṣayan meji. Ni aṣayan akọkọ, a kọ awọn ipe kii ṣe ni C * nikan, ṣugbọn tun ni ibi ipamọ data Oracle ti o fipamọ. Nikan, ko dabi C *, awọn ile-ipamọ data yii awọn ipe fun oṣu ti o wa lọwọlọwọ (ijinle ibi ipamọ ipe ti o to fun awọn ọran gbigba agbara). Nibi a rii iṣoro atẹle lẹsẹkẹsẹ: ti a ba kọ ni iṣọpọ, lẹhinna a padanu gbogbo awọn anfani ti C * ti o ni nkan ṣe pẹlu fifi sii ni iyara; ti a ba kọ asynchronously, ko si iṣeduro pe gbogbo awọn ipe to ṣe pataki wa sinu Oracle rara. Plus kan wa, ṣugbọn ọkan nla: fun iṣẹ ti o faramọ PL/SQL Olùgbéejáde ti o ku, ie a ṣe adaṣe ilana “Facade” ni adaṣe. A ṣe ilana kan ti o gbejade awọn ipe lati C *, fa diẹ ninu data fun imudara lati awọn tabili ti o baamu ni Oracle, darapọ mọ awọn apẹẹrẹ ti o yọrisi ati fun wa ni abajade, eyiti a lo bakannaa (yi pada, tun ṣe, itupalẹ, ṣe iyalẹnu). Konsi: ilana naa jẹ igbesẹ pupọ, ati ni afikun, ko si wiwo fun awọn oṣiṣẹ iṣiṣẹ.

Ni ipari, a yanju lori aṣayan keji. Apache Spark ni a lo lati ṣe ayẹwo lati awọn pọn oriṣiriṣi. Koko-ọrọ ti ẹrọ naa ti dinku si koodu Java, eyiti, lilo awọn bọtini pàtó kan (alabapin, akoko ipe - awọn bọtini apakan), fa data lati C *, ati data pataki fun imudara lati eyikeyi data miiran. Lẹhin eyi o darapọ mọ wọn ni iranti rẹ ati ṣafihan abajade ninu tabili abajade. A fa oju wẹẹbu kan lori sipaki ati pe o jẹ ohun elo pupọ.

Bii o ṣe le wo oju Cassandra laisi sisọnu data, iduroṣinṣin ati igbagbọ ninu NoSQL

Nigbati o ba yanju iṣoro ti imudojuiwọn data idanwo ile-iṣẹ, a tun gbero ọpọlọpọ awọn solusan. Mejeeji gbigbe nipasẹ Sstloader ati aṣayan ti pipin iṣupọ ni agbegbe idanwo si awọn ẹya meji, ọkọọkan eyiti o jẹ ti iṣupọ kanna pẹlu ọkan igbega, nitorinaa ni agbara nipasẹ rẹ. Nigbati o ba n ṣe imudojuiwọn idanwo naa, o ti gbero lati paarọ wọn: apakan ti o ṣiṣẹ ninu idanwo naa ti sọ di mimọ ati wọ inu iṣelọpọ, ekeji bẹrẹ lati ṣiṣẹ pẹlu data lọtọ. Sibẹsibẹ, lẹhin ironu lẹẹkansi, a ṣe ayẹwo diẹ sii ni ọgbọn data ti o tọ gbigbe, ati rii pe awọn ipe funrararẹ jẹ nkan ti ko ni ibamu fun awọn idanwo, ti ipilẹṣẹ ni iyara ti o ba jẹ dandan, ati pe o jẹ eto data igbega ti ko ni iye fun gbigbe si idanwo. Awọn nkan ibi ipamọ pupọ wa ti o tọ si gbigbe, ṣugbọn iwọnyi jẹ gangan awọn tabili meji, kii ṣe awọn ti o wuwo pupọ. Nitorina awa bi awọn kan ojutu, sipaki lẹẹkansi wá si giga, pẹlu iranlọwọ ti awọn ti a kowe ati ki o bẹrẹ lati actively lo a akosile fun gbigbe data laarin awọn tabili, prom-igbeyewo.

Ilana imuṣiṣẹ lọwọlọwọ wa gba wa laaye lati ṣiṣẹ laisi awọn iyipo. Ṣaaju ipolowo, ṣiṣe idanwo dandan wa, nibiti aṣiṣe kan ko gbowolori pupọ. Ni ọran ikuna, o le nigbagbogbo ju aaye ẹjọ silẹ ki o yi gbogbo ero naa lati ibẹrẹ.

Lati rii daju wiwa lemọlemọfún ti Cassandra, o nilo dba kii ṣe oun nikan. Gbogbo eniyan ti o ṣiṣẹ pẹlu ohun elo naa gbọdọ loye ibiti ati bii o ṣe le wo ipo lọwọlọwọ ati bii o ṣe le ṣe iwadii awọn iṣoro ni akoko ti akoko. Lati ṣe eyi, a lo taara DataStax OpsCenter (Iṣakoso ati ibojuwo ti awọn iṣẹ ṣiṣe), Awọn iṣiro eto awakọ Cassandra (nọmba awọn akoko akoko fun kikọ si C *, nọmba awọn akoko akoko fun kika lati C *, lairi ti o pọju, ati bẹbẹ lọ), ṣe atẹle iṣẹ naa. ti ohun elo funrararẹ, ṣiṣẹ pẹlu Cassandra.

Nigba ti a ba ronu nipa ibeere ti tẹlẹ, a mọ ibi ti ewu akọkọ wa le wa. Iwọnyi jẹ awọn fọọmu ifihan data ti o ṣafihan data lati ọpọlọpọ awọn ibeere ominira si ibi ipamọ. Ni ọna yii a le gba alaye ti ko ni ibamu. Ṣugbọn iṣoro yii yoo jẹ deede ti a ba ṣiṣẹ pẹlu ile-iṣẹ data kan nikan. Nitorinaa ohun ti o ni oye julọ nibi ni, nitorinaa, lati ṣẹda iṣẹ ipele kan fun kika data lori ohun elo ẹni-kẹta, eyiti yoo rii daju pe a gba data ni akoko kan. Bi fun pipin si kika ati kikọ ni awọn ofin ti iṣẹ, nibi a ti da wa duro nipasẹ ewu pe pẹlu diẹ ninu awọn isonu ti asopọ laarin awọn DCs, a le pari pẹlu awọn iṣupọ meji ti o jẹ aiṣedeede patapata pẹlu ara wọn.

Bi abajade, fun bayi duro ni ipele aitasera fun kikọ EACH_QUORUM, fun kika - LOCAL_QUORUM

Awọn ifihan kukuru ati awọn ipari

Lati le ṣe iṣiro ojutu abajade lati oju wiwo ti atilẹyin iṣẹ ati awọn asesewa fun idagbasoke siwaju, a pinnu lati ronu ibiti o tun le lo iru idagbasoke bẹẹ.

Ni kete ti adan, lẹhinna igbelewọn data fun awọn eto bii “Sanwo nigbati o rọrun” (a gbe alaye sinu C *, iṣiro nipa lilo awọn iwe afọwọkọ Spark), ṣiṣe iṣiro fun awọn ẹtọ pẹlu akojọpọ nipasẹ agbegbe, titoju awọn ipa ati iṣiro awọn ẹtọ wiwọle olumulo ti o da lori ipa naa. matrix.

Bi o ti le ri, repertoire jẹ fife ati orisirisi. Ati pe ti a ba yan ibudó ti awọn olufowosi / alatako ti NoSQL, lẹhinna a yoo darapọ mọ awọn alatilẹyin, niwon a ti gba awọn anfani wa, ati ni pato ibi ti a ti ṣe yẹ.

Paapaa aṣayan Cassandra jade kuro ninu apoti ngbanilaaye iwọn petele ni akoko gidi, laisi irora yanju ọran ti jijẹ data ninu eto naa. A ni anfani lati gbe ẹrọ ti o ga pupọ fun ṣiṣe iṣiro awọn akojọpọ ipe sinu Circuit lọtọ, ati tun ya eto ohun elo ati ọgbọn kuro, yọkuro iwa buburu ti kikọ awọn iṣẹ aṣa ati awọn nkan ninu aaye data funrararẹ. A ni aye lati yan ati tunto, lati yara, eyi ti DCs ti a yoo ṣe awọn iṣiro lori ati eyi ti a yoo ṣe igbasilẹ data lori, a ṣe idaniloju ara wa lodi si awọn ipadanu ti awọn apa kọọkan ati DC lapapọ.

Lilo faaji wa si awọn iṣẹ akanṣe tuntun, ati pe o ti ni iriri diẹ, Emi yoo fẹ lati ṣe akiyesi lẹsẹkẹsẹ awọn nuances ti a ṣalaye loke, ati ṣe idiwọ diẹ ninu awọn aṣiṣe, dan diẹ ninu awọn igun didasilẹ ti ko le yago fun lakoko.

Fun apẹẹrẹ, tọju awọn imudojuiwọn Cassandra ni ọna ti akokonitori pe diẹ ninu awọn iṣoro ti a ni ni a ti mọ tẹlẹ ati ti o wa titi.

Maṣe fi aaye data mejeeji funrararẹ ati Spark sori awọn apa kanna (tabi pin ni muna nipasẹ iye lilo awọn orisun Allowable), nitori Spark le jẹ OP diẹ sii ju ti a ti ṣe yẹ lọ, ati pe a yoo yara gba nọmba iṣoro 1 lati atokọ wa.

Ṣe ilọsiwaju ibojuwo ati agbara iṣiṣẹ ni ipele idanwo iṣẹ akanṣe. Ni ibẹrẹ, ṣe akiyesi bi o ti ṣee ṣe gbogbo awọn alabara ti o ni agbara ti ojutu wa, nitori eyi ni ohun ti awọn database be yoo nipari dale lori.

Yi Circuit Abajade ni igba pupọ fun iṣapeye ti o ṣeeṣe. Yan eyi ti awọn aaye ti o le wa ni serialized. Loye kini awọn tabili afikun ti a yẹ ki o ṣe lati le ni deede julọ ati ki o ṣe akiyesi ni aipe, ati lẹhinna pese alaye ti o nilo lori ibeere (fun apẹẹrẹ, nipa ro pe a le fipamọ data kanna ni awọn tabili oriṣiriṣi, ni akiyesi oriṣiriṣi awọn fifọ ni ibamu si o yatọ si àwárí mu, a le fi significantly Sipiyu akoko fun kika ibeere).

Ko buru Lẹsẹkẹsẹ pese fun sisopọ TTL ati mimọ data ti igba atijọ.

Nigba gbigba data lati Cassandra Imọye ohun elo yẹ ki o ṣiṣẹ lori ipilẹ FETCH, nitorinaa kii ṣe gbogbo awọn ori ila ni a kojọpọ sinu iranti ni ẹẹkan, ṣugbọn a yan ni awọn ipele.

O ni imọran ṣaaju gbigbe iṣẹ naa si ojutu ti a ṣalaye ṣayẹwo ifarada ẹbi ti eto nipasẹ ṣiṣe lẹsẹsẹ awọn idanwo jamba, gẹgẹbi pipadanu data ni ile-iṣẹ data kan, atunṣe ti data ti o bajẹ ni akoko kan, idaduro nẹtiwọki laarin awọn ile-iṣẹ data. Iru awọn idanwo bẹẹ kii yoo gba eniyan laaye lati ṣe iṣiro awọn Aleebu ati awọn konsi ti faaji ti a dabaa, ṣugbọn yoo tun pese adaṣe igbona ti o dara fun awọn onimọ-ẹrọ ti n ṣe wọn, ati pe oye ti o gba yoo jinna si superfluous ti awọn ikuna eto ba tun ṣe ni iṣelọpọ.

Ti a ba ṣiṣẹ pẹlu alaye to ṣe pataki (gẹgẹbi data fun ìdíyelé, iṣiro ti gbese alabapin), lẹhinna o tun tọ lati san ifojusi si awọn irinṣẹ ti yoo dinku awọn eewu ti o dide nitori awọn ẹya ti DBMS. Fun apẹẹrẹ, lo ohun elo nodesync (Datastax), ti ṣe agbekalẹ ilana ti o dara julọ fun lilo rẹ ni ibere fun awọn nitori ti aitasera, ma ko ṣẹda nmu fifuye lori Cassandra ati ki o lo o nikan fun awọn tabili ni kan awọn akoko.

Kini yoo ṣẹlẹ si Cassandra lẹhin oṣu mẹfa ti igbesi aye? Ni gbogbogbo, ko si awọn iṣoro ti a ko yanju. A tun ko gba laaye eyikeyi ijamba pataki tabi pipadanu data. Bẹẹni, a ni lati ronu nipa isanpada fun diẹ ninu awọn iṣoro ti ko ti dide tẹlẹ, ṣugbọn ni ipari eyi ko ṣe awọsanma pupọju ojutu ayaworan wa. Ti o ba fẹ ati pe ko bẹru lati gbiyanju nkan titun, ati ni akoko kanna ko fẹ lati ni ibanujẹ pupọ, lẹhinna ṣetan fun otitọ pe ko si nkan ti o jẹ ọfẹ. Iwọ yoo ni lati loye, ṣawari sinu iwe naa ki o ṣajọ rake kọọkan ti ara rẹ diẹ sii ju ninu ojutu ohun-ini atijọ, ati pe ko si imọ-jinlẹ ti yoo sọ fun ọ tẹlẹ iru rake ti n duro de ọ.

orisun: www.habr.com

Fi ọrọìwòye kun