Maitiro ekutarisa mumeso aCassandra pasina kurasikirwa nedata, kugadzikana uye kutenda muNoSQL

Maitiro ekutarisa mumeso aCassandra pasina kurasikirwa nedata, kugadzikana uye kutenda muNoSQL

Vanoti zvinhu zvose muupenyu zvakafanira kuedza kamwechete. Uye kana iwe wakajaira kushanda nehukama DBMSs, saka zvakakodzera kuti uzive neNoSQL mukuita, kutanga kune zvese, zvirinani kusimudzira. Iye zvino, nekuda kwekukurumidza kukura kwekombiyuta iyi, kune maonero akawanda anopikisana uye nharo dzinopisa pamusoro penyaya iyi, iyo inonyanya kukonzera kufarira.
Kana iwe ukapinda mukati meiyo chaiyo yemakakatanwa ese aya, unogona kuona kuti anomuka nekuda kwenzira isiriyo. Avo vanoshandisa NoSQL dhatabhesi chaipo pavanenge vachidiwa vanogutsikana uye vanogashira zvese zvakanakira kubva pane iyi mhinduro. Uye vanoedza vanovimba neiyi tekinoroji sepanacea iyo isingashande zvachose vanoodzwa mwoyo, varasikirwa nemasimba ehukama dhatabhesi pasina kuwana zvakakosha.

Ini ndichakuudza nezve chiitiko chedu mukushandisa mhinduro yakavakirwa paCassandra DBMS: zvataifanira kutarisana nazvo, kuti takabuda sei mumamiriro ezvinhu akaoma, kana takakwanisa kubatsirwa nekushandisa NoSQL uye kwataifanira kuisa mari yakawedzerwa / mari. .
Basa rekutanga nderekuvaka sisitimu inorekodha mafoni mune imwe mhando yekuchengetedza.

Nheyo yekushanda yehurongwa ndeyotevera. Iko kupinza kunosanganisira mafaera ane chaiyo chimiro chinotsanangura chimiro chekufona. Chishandiso chinobva chaona kuti chimiro ichi chinochengetwa mumakoramu akakodzera. Mune ramangwana, mafoni akachengetwa anoshandiswa kuratidza ruzivo rwekushandisa traffic kune vanyoreri (macharge, mafoni, chiyero nhoroondo).

Maitiro ekutarisa mumeso aCassandra pasina kurasikirwa nedata, kugadzikana uye kutenda muNoSQL

Zvakanyatsojeka kuti sei vakasarudza Cassandra - anonyora sepfuti yemuchina, ari nyore scalable, uye anoshivirira kukanganisa.

Saka, izvi ndizvo zvakatipa chiitiko

Hongu, node yakakundikana haisi nhamo. Ichi ndicho musimboti wekushivirira mhosva kwaCassandra. Asi node inogona kuva mupenyu uye panguva imwechete inotanga kutambura mukushanda. Sezvazvakazoitika, izvi zvinokanganisa pakarepo kushanda kweboka rose.

Cassandra haizokudzivirira iwe uko Oracle yakakununura nezvipingamupinyi zvayo. Uye kana munyori wechikumbiro asina kunzwisisa izvi pachine nguva, saka iyo yakapetwa kaviri yakasvika kuCassandra haina kuipa kupfuura yekutanga. Kana yasvika, tinoiisa.

IB yakavenga zvakanyanya Cassandra yemahara kunze kwebhokisi: Iko hakuna kutema kwezviito zvevashandisi, hapana kusiyanisa kwekodzero. Ruzivo rwekufona runoonekwa seyako pachako data, zvinoreva kuti kuyedza kwese kuikumbira / kuishandura nenzira ipi neipi kunofanirwa kunyorerwa paine mukana wekuzotevera kuongororwa. Zvakare, iwe unofanirwa kuziva kukosha kwekuparadzanisa kodzero pamatanho akasiyana evashandisi vakasiyana. Injiniya yekushanda yakapusa uye super admin anogona kudzima zvakasununguka nzvimbo yese yekiyi mabasa akasiyana, mabasa akasiyana, uye kugona. Pasina mutsauko wakadaro wekodzero dzekuwana, kukosha uye kutendeseka kweiyo data kunobva kwauya mubvunzo nekukurumidza kupfuura neiyo ANY kuenderana level.

Hatina kufunga kuti mafoni anoda zvese zvakakomba analytics uye periodic sampling yeakasiyana mamiriro. Sezvo zvinyorwa zvakasarudzwa zvinozofanirwa kubviswa uye kunyorwazve (sechikamu chebasa, isu tinofanirwa kutsigira maitiro ekuvandudza data kana data rakatanga kupinda muchiuno chedu zvisizvo), Cassandra haisi shamwari yedu pano. Cassandra yakafanana nebhangi renguruve - zviri nyore kuisa zvinhu, asi haugone kuverenga mairi.

Tasangana nedambudziko rekuendesa data kunzvimbo dzekuyedza (5 nodes muyedzo maringe ne20 muprom). Muchiitiko ichi, marara haigoni kushandiswa.

Dambudziko nekugadzirisa iyo data schema yekunyorera application kuCassandra. Kudzoreredza kunoburitsa matombo akawanda emakuva, ayo anogona kutungamira mukurasikirwa kwechigadzirwa nenzira dzisingafungidzirwe.. Cassandra yakagadziridzwa kurekodha, uye haafunge zvakanyanya isati yanyora.Chero mashandiro ane data riripo mairi zvakarekodha. Ndiko kuti, nekudzima zvisingakodzeri, isu tichangoburitsa mamwe marekodhi, uye mamwe acho chete anozonyorwa nematombo emakuva.

Nguva dzekupedza kana kuisa. Cassandra akanaka mukurekodha, asi dzimwe nguva kuyerera kuri kuuya kunogona kumushamisa zvakanyanya. Izvi zvinoitika kana application inotanga kutenderera ichitenderedza akati wandei marekodhi asingagone kuiswa pane chimwe chikonzero. Uye isu tichada DBA chaiyo inozotarisa gc.log, system uye debug matanda emibvunzo inononoka, metrics pane compaction yakamirira.

Mazhinji data centers ari musumbu. Ndekupi kwekuverenga kubva uye kupi kwekunyora?
Zvichida zvakakamukana mukurava nokunyora? Uye kana zvirizvo, panofanira kunge paine DC padyo nechikumbiro chekunyora kana kuverenga? Uye isu hatizopedzisira tave nehuropi chaihwo hwakapatsanurwa kana tikasarudza iyo isiriyo yekuenderana nhanho? Pane mibvunzo yakawanda, yakawanda isingazivikanwe marongero, mikana yaunonyatsoda kuita nayo.

Kuti takasarudza sei

Kudzivirira node kuti isanyura, SWAP yakadzimwa. Uye zvino, kana paine kushaikwa kwendangariro, iyo node inofanira kudzika uye kwete kugadzira yakakura gc kumbomira.

Saka, isu hatisisiri kutsamira pane logic mu database. Vagadziri vezvishandiso vari kuzvidzidzisazve uye vari kutanga kutora matanho ekuzvidzivirira mune yavo kodhi. Yakanakira kuparadzaniswa kwakajeka kwekuchengetedza data uye kugadzirisa.

Takatenga rutsigiro kubva kuDataStax. Iko kusimudzira kwebhokisi Cassandra kwatomira (yekupedzisira kuzvipira yaive muna Kukadzi 2018). Panguva imwecheteyo, Datastax inopa sevhisi yakanakisa uye nhamba huru yakagadziridzwa uye yakagadziridzwa mhinduro kune iripo IP mhinduro.

Ini zvakare ndinoda kuziva kuti Cassandra haina kunyatso kurongeka pamibvunzo yekusarudza. Ehe, CQL inhanho hombe yekumberi kune vashandisi (ichienzaniswa neTrift). Asi kana iwe uine madhipatimendi akazara akajaira kujoinha kwakaringana, kusefa kwemahara nechero munda uye kubvunza optimization kugona, uye aya madhipatimendi ari kushanda kugadzirisa zvichemo netsaona, ipapo mhinduro paCassandra inoita kunge ine hutsinye uye benzi kwavari. Uye takatanga kusarudza kuti vatinoshanda navo vanofanira kuita sei masampuli.

Takafunga nzira mbiri.Musarudzo yekutanga, tinonyora nhare kwete muC* chete, asiwo mudura reOracle rakachengetwa. Chete, kusiyana neC *, iyi dhatabhesi inochengeta inongoda kumwedzi wazvino (yakakwana yekudzika yekuchengetera kudzika kwemakesi ekuchaja). Pano isu takabva taona dambudziko rinotevera: kana tikanyora zvinoenderana, tobva tarasikirwa nemabhenefiti ese eC * ane chekuita nekukasira kuisa; kana tikanyora asynchronously, hapana vimbiso yekuti ese anodiwa mafoni apinda muOracle zvachose. Paive nekuwedzera, asi hombe: yekushandisa yakafanana yakajairwa PL/SQL Developer inosara, i.e. isu tinongoita iyo "Facade" pateni. Imwe sarudzo. Isu tinoshandisa nzira inoburitsa mafoni kubva kuC *, inodhonza imwe dhata yekupfumisa kubva kumatafura anoenderana muOracle, inojoinha mhedzisiro masampuli uye inotipa mhedzisiro, yatinozoshandisa neimwe nzira (kudzosera kumashure, dzokorora, kuongorora, kuyemura). Cons: maitiro acho akati wandei-nhanho, uye nekuwedzera, hapana chimiro chevashandi vekushanda.

Pakupedzisira, takagara pane yechipiri sarudzo. Apache Spark yakashandiswa kuenzanisa kubva kumagaba akasiyana. Iyo yakakosha yemashini yakaderedzwa kusvika kuJava kodhi, iyo, uchishandisa makiyi akatsanangurwa (munyoreri, nguva yekufona - chikamu makiyi), inoburitsa data kubva kuC *, pamwe neiyo data inodiwa yekupfumisa kubva kune chero imwe dhatabhesi. Mushure mezvo inovabatanidza mundangariro dzayo uye inoratidza mhedzisiro mune inoguma tafura. Takadhirowa chiso chewebhu pamusoro pe spark uye zvakazoshanda.

Maitiro ekutarisa mumeso aCassandra pasina kurasikirwa nedata, kugadzikana uye kutenda muNoSQL

Pakugadzirisa dambudziko rekuvandudza maindasitiri ebvunzo data, isu takafunga zvakare akati wandei mhinduro. Dzese kuendesa kuburikidza neSsloader uye sarudzo yekutsemura sumbu munzvimbo yekuyedza kuita zvikamu zviviri, chimwe nechimwe chazvo chiri cheboka rimwechete nerekusimudzira, nekudaro richifambiswa naro. Pakugadziridza bvunzo, zvakarongwa kuvachinjanisa: chikamu chakashanda muyedzo chinocheneswa uye chakapinzwa mukugadzira, uye imwe inotanga kushanda nedata zvakasiyana. Nekudaro, mushure mekufunga zvakare, isu takawedzera zvine hungwaru kuongorora iyo data yaifanirwa kutamiswa, uye tikaona kuti iwo mafoni pachawo inhengo isingaenderane yebvunzo, inokurumidza kugadzirwa kana zvichidikanwa, uye ndiyo yekushambadzira data seti isina kukosha kwekuendeswa kune iyo. test. Kune akati wandei ekuchengetedza zvinhu zvakakodzera kufamba, asi aya chaiwo akati wandei ematafura, uye kwete anorema zvakanyanya. Naizvozvo isu semhinduro, Spark akauya zvakare kuzonunura, nerubatsiro rwatakanyora ndokutanga kushingaira kushandisa script yekuendesa data pakati pematafura, prom-test.

Yedu yazvino mutemo wekutumira inotitendera kuti tishande tisina rollbacks. Pamberi peiyo promo, pane inosungirwa bvunzo kumhanya, uko kukanganisa hakuna kudhura zvakanyanya. Kana ukatadza, iwe unogona kugara uchidonhedza iyo casespace uye kutenderedza iyo yese chirongwa kubva pakutanga.

Kuti uve nechokwadi chekuenderera mberi kweCassandra, unoda dba uye kwete iye chete. Wese anoshanda nechishandiso anofanira kunzwisisa kupi uye sei kutarisa mamiriro aripo uye maitiro ekuongorora matambudziko nenguva. Kuti tiite izvi, isu tinoshingairira kushandisa DataStax OpsCenter (Kutonga uye kutarisa kwemabasa), Cassandra Driver system metrics (nhamba yenguva yekubuda kwekunyorera kuC *, nhamba yenguva yekubuda kwekuverenga kubva kuC *, yakanyanya latency, nezvimwewo), tarisa kushanda. yeapp yacho pachayo, ichishanda naCassandra.

Pataifunga nezvemubvunzo wapfuura, takaona kuti njodzi yedu huru ingave iri papi. Aya ndiwo mafomu ekuratidzira data anoratidza data kubva kune akati wandei akazvimirira mibvunzo kune yekuchengetedza. Nenzira iyi tinogona kuwana ruzivo rusingawirirani. Asi dambudziko iri raizove rakakosha kana tikashanda nedata imwe chete. Saka chinhu chinonyanya kunzwisisika pano ndechekuti, kugadzira batch basa rekuverenga data pane yechitatu-bato application, iyo inova nechokwadi chekuti data inogamuchirwa munguva imwe chete yenguva. Kana iri kupatsanurwa kwekuverenga nekunyora maererano nekushanda, pano isu takamiswa nenjodzi yekuti nekumwe kurasikirwa kwekubatana pakati peDCs, tinogona kuguma nemasumbu maviri asingaenderane zvachose.

Nekuda kweizvozvo, ikozvino yakamira pachiyero chekunyora EACH_QUORUM, pakuverenga - LOCAL_QUORUM

Mhedziso pfupi uye mhedziso

Kuti tiongorore mhinduro kubva pakuona kwerutsigiro rwekushanda uye tarisiro yeimwe budiriro, takasarudza kufunga kuti kumwe kusimudzirwa kwakadaro kungashandiswe kupi.

Kubva ipapo, ipapo data rekuverengera zvirongwa zvakaita sekuti "Bhadhara kana zvave nyore" (tinoisa ruzivo muC *, kuverenga tichishandisa Spark zvinyorwa), kuverengera zvichemo nekuunganidzwa nenzvimbo, kuchengetedza mabasa uye kuverenga kodzero dzekuwana mushandisi zvichienderana nebasa. matrix.

Sezvauri kuona, iyo repertoire yakakura uye yakasiyana. Uye kana tikasarudza musasa wevatsigiri / vapikisi veNoSQL, saka tichabatana nevatsigiri, sezvo takagamuchira zvakanakira, uye chaizvo kwataitarisira.

Kunyangwe iyo Cassandra sarudzo kunze kwebhokisi inobvumira yakatwasuka kuyera munguva chaiyo, zvachose isingarwadze kugadzirisa nyaya yekuwedzera data muhurongwa. Isu takakwanisa kufambisa yakakwira-mutoro meshini yekuverenga ma call aggregates mune yakaparadzana dunhu, uye zvakare kupatsanura application schema uye pfungwa, kubvisa tsika yakaipa yekunyora tsika mabasa uye zvinhu zviri mudhatabhesi pachayo. Isu takawana mukana wekusarudza nekugadzirisa, kuti tikurumidze, maDC atichaita kuverenga paari uye ndeapi aticharekodha data paari, takazvipa inishuwarenzi pachedu nekuputsika kwemanodhi ese ega uye DC yese.

Kushandisa dhizaini yedu kumapurojekiti matsva, uye ndatova neruzivo, ndinoda kukurumidza kufunga nezve nuances yakatsanangurwa pamusoro, uye kudzivirira kumwe kukanganisa, gadzirisa mamwe makona akapinza aisakwanisa kudzivirirwa pakutanga.

Somuenzaniso, chengeta zvinyorwa zveCassandra munguva yakakodzeranekuti akati wandei ematambudziko atakawana aitozivikanwa uye akagadziriswa.

Usaise ese ari maviri dhatabhesi pachayo uye Spark pane imwechete node (kana kunyatso patsanura nehuwandu hwezvinotenderwa zviwanikwa zvekushandisa), sezvo Spark inogona kudya yakawanda OP pane yaitarisirwa, uye isu tichakurumidza kuwana dambudziko nhamba 1 kubva pane yedu runyorwa.

Kuvandudza kutarisa uye kugona kushanda padanho rekuyedza chirongwa. Pakutanga, funga zvakanyanya sezvinobvira vese vangangove vatengi vemhinduro yedu, nekuti izvi ndizvo izvo dhizaini dhizaini inozopedzisira yatsamira.

Tenderedza dunhu rinobuda kakawanda kuti zvigone optimization. Sarudza kuti ndeapi minda anogona serialized. Nzwisisa kuti ndeapi mamwe matafura atinofanira kugadzira kuitira kuti tinyatso funga nezvake, uye tozopa ruzivo rwunodiwa pakukumbira (semuenzaniso, nekufungidzira kuti tinogona kuchengeta data rimwechete mumatafura akasiyana, tichifunga nezvekuputsika kwakasiyana maererano ne maitiro akasiyana, tinogona kuchengetedza zvakanyanya CPU nguva yekuverenga zvikumbiro).

Kusaipa Ipa nekukasira yekubatanidza TTL uye yekuchenesa yekare data.

Kana uchirodha data kubva kuCassandra Iyo yekushandisa logic inofanirwa kushanda pane iyo FETCH musimboti, kuitira kuti isiri mitsetse yese inotakurwa mundangariro kamwechete, asi inosarudzwa mumabhechi.

Zvinokurudzirwa usati waendesa purojekiti kune yakatsanangurwa mhinduro tarisa kukanganisa kushivirira kweiyo system nekuita nhevedzano yekuputsika bvunzo, sekurasikirwa kwedata mune imwe data data, kudzoreredzwa kwe data rakakuvadzwa pane imwe nguva, network inodonha pakati pe data data. Miedzo yakadaro haingobvumiri munhu kuongorora zvakanakira nezvayakaipira zvezvivakwa zvakarongwa, asi zvakare zvinopa yakanaka yekudziya-yekudzidzira maitiro kune mainjiniya anoaitisa, uye hunyanzvi hunowanikwa hunenge huri kure nekunyanyisa kana kutadza kwehurongwa kuchigadzirwazve mukugadzira.

Kana tikashanda neruzivo rwakakosha (senge data rekubhadhara, kuverenga kwechikwereti chevanyoreri), saka zvakakoshawo kutarisisa kune zvishandiso zvinoderedza njodzi dzinomuka nekuda kwezvimiro zveDBMS. Semuenzaniso, shandisa iyo nodesync utility (Datastax), wakagadzira yakakwana zano rekushandisa kwayo mukurongeka. nekuda kwekuenderana, usagadzira mutoro wakawandisa paCassandra uye shandisa chete kune mamwe matafura mune imwe nguva.

Chii chinoitika kuna Cassandra pashure pemwedzi mitanhatu youpenyu? Kazhinji, hapana matambudziko asina kugadziriswa. Hatina kubvumirawo tsaona dzakakomba kana kurasikirwa nedata. Hongu, taifanira kufunga nezvekubhadhara mamwe matambudziko akange asati amuka, asi pakupedzisira izvi hazvina kuvhara zvakanyanya mhinduro yedu yekuvaka. Kana iwe uchida uye usingatyi kuedza chimwe chinhu chitsva, uye panguva imwechete usingadi kuodzwa mwoyo zvakanyanya, saka gadzirira chokwadi chokuti hapana chakasununguka. Iwe uchafanirwa kunzwisisa, kuongorora mune zvinyorwa uye kuunganidza yako wega reki kupfuura mune yekare legacy mhinduro, uye hapana dzidziso ichakuudza pamberi kuti ndeipi reki yakakumirira iwe.

Source: www.habr.com

Voeg