Arbh é MongoDB an rogha cheart go ginearálta?

Fuair ​​​​mé amach le déanaí go Baineann Red Hat tacaíocht MongoDB as Satailít (a deir siad mar gheall ar athruithe ceadúnais). Chuir sé seo ag smaoineamh mé mar gheall le cúpla bliain anuas tá ton altanna feicthe agam faoi cé chomh uafásach is atá MongoDB agus conas nár cheart d'aon duine é a úsáid riamh. Ach le linn an ama seo, tá MongoDB tar éis éirí ina tháirge i bhfad níos aibí. Cad a tharla? An bhfuil an fuath ar fad i ndáiríre mar gheall ar bhotúin i margaíocht luath DBMS nua? Nó an bhfuil daoine ag úsáid MongoDB sna háiteanna míchearta?

Má bhraitheann tú go bhfuil mé ag cosaint MongoDB, léigh le do thoil séanadh ag deireadh an ailt.

Treocht nua

Tá mé ag obair i dtionscal na bogearraí ar feadh níos mó blianta ná mar is féidir liom a rá, ach ní raibh mé fós faoi lé ach cuid bheag de na treochtaí a bhuail ár dtionscal. Chonaic mé ardú 4GL, AOP, Agile, SOA, Web 2.0, AJAX, Blockchain ... tá an liosta gan teorainn. Gach bliain feictear treochtaí nua. Téann cuid acu i léig go tapa, agus athraíonn cuid eile go bunúsach an bealach a fhorbraítear bogearraí.

Cruthaíonn gach treocht nua sceitimíní ginearálta: léimeann daoine ar bord, nó féachann siad an torann a ghineann daoine eile agus leanann siad an slua. Tá an próiseas seo códaithe ag Gartner i timthriall hype. Cé go bhfuil sé conspóideach, déanann an amlíne seo cur síos go garbh ar a dtarlaíonn do theicneolaíochtaí sula n-éiríonn siad úsáideach ar deireadh.

Ach ó am go chéile tagann nuálaíocht nua (nó tá an dara teacht chun cinn, mar atá sa chás seo) á thiomáint ag cur chun feidhme sonrach amháin. I gcás NoSQL, bhí an hype á thiomáint go mór ag teacht chun cinn agus ardú meitéarach MongoDB. Níor thosaigh MongoDB an treocht seo: go deimhin, thosaigh cuideachtaí móra Idirlín fadhbanna ag próiseáil méideanna móra sonraí, rud a d'eascair bunachair shonraí neamhghaolmhara ar ais. Thosaigh an ghluaiseacht iomlán le tionscadail mar Google's Bigtable agus Facebook's Cassandra, ach ba é MongoDB an cur i bhfeidhm bunachar sonraí NoSQL is cáiliúla agus is inrochtana a raibh rochtain ag formhór na bhforbróirí air.

Nóta: B'fhéidir go gceapfá go bhfuil mearbhall orm idir bunachair shonraí doiciméad agus bunachair shonraí cholúin, stórtha eochair/luacha, nó aon cheann de na cineálacha iomadúla stórais sonraí eile a thagann faoin sainmhíniú ginearálta NoSQL. Agus tá an ceart agat. Ach ag an am sin reigned chaos. Tá gach duine obsessed le NoSQL, tá sé anois gach duine go hiomlán riachtanach, cé nach bhfaca go leor na difríochtaí i dteicneolaíochtaí éagsúla. I gcás go leor, tá MongoDB anois comhchiallach le UimhSQL.

Agus na forbróirí pounced ar sé. Bhí an smaoineamh ar bhunachar sonraí gan scéimre a dhéanann scálaí draíochta chun fadhb ar bith a réiteach tempting go leor. Timpeall 2014, ba chosúil gur thosaigh bunachar sonraí coibhneasta ar nós MySQL, Postgres nó SQL Server i ngach áit a d’úsáid bliain ó shin bunachair shonraí MongoDB a imscaradh. Nuair a fiafraítear de cén fáth, d’fhéadfá freagra a fháil ón mbanal “is é seo scála an ghréasáin” go dtí an ceann is tuisceanach “tá mo shonraí struchtúrtha an-scaoilte agus luíonn siad go maith le bunachar sonraí gan scéimre.”

Tá sé tábhachtach a mheabhrú go réitíonn MongoDB, agus bunachair shonraí doiciméad go ginearálta, roinnt fadhbanna le bunachair shonraí choibhneasa traidisiúnta:

  • Scéim dhian: Le bunachar sonraí gaolmhar, má tá sonraí ginte agat go dinimiciúil, tá iallach ort braon de cholúin "ilghnéitheacha" de shonraí a chruthú, blógaí sonraí a bhrú isteach ann, nó cumraíocht a úsáid EAV...tá míbhuntáistí suntasacha ag baint leis seo ar fad.
  • Deacracht scálú: Má tá an oiread sin sonraí ann nach n-oireann sé ar fhreastalaí amháin, thairg MongoDB meicníochtaí chun ligean dó scála ar fud meaisíní iolracha.
  • Modhnuithe ciorcad casta: gan aon imirce! I mbunachar sonraí coibhneasta, is féidir fadhb ollmhór a bheith ag athrú struchtúr an bhunachair sonraí (go háirithe nuair a bhíonn go leor sonraí ann). Bhí MongoDB in ann an próiseas a shimpliú go mór. Agus rinne sé chomh héasca sin gur féidir leat an ciorcad a nuashonrú de réir mar a théann tú ar aghaidh agus bogadh ar aghaidh go han-tapa.
  • Feidhmíocht a thaifeadadh: Bhí feidhmíocht MongoDB go maith, go háirithe nuair a bhí sé cumraithe i gceart. Léirigh fiú cumraíocht lasmuigh den bhosca MongoDB, ar cháineadh go minic é, roinnt uimhreacha feidhmíochta suntasacha.

Tá gach riosca ort

Ba mhór an tairbhe a d’fhéadfadh a bheith ag MongoDB, go háirithe i gcás aicmí áirithe fadhbanna. Má léann tú an liosta thuas gan an comhthéacs a thuiscint agus gan taithí, b'fhéidir go bhfaighidh tú an tuiscint gur fíor-réabhlóideach DBMS é MongoDB. Ba í an t-aon fhadhb a bhí ann ná gur tháinig na sochair a liostaítear thuas le roinnt caveat, agus tá cuid acu liostaithe thíos.

Le bheith cothrom, níl aon duine ag 10gen/MongoDB Inc. Ní bheidh a rá nach bhfuil an méid seo a leanas fíor, tá siad seo ach comhréiteach.

  • Idirbhearta caillte: Is gné lárnach de go leor bunachair shonraí choibhneasta iad na hidirbhearta (ní léir, ach an chuid is mó). Ciallaíonn idirbheartaíocht gur féidir leat iloibríochtaí a dhéanamh go adamhach agus is féidir a chinntiú go bhfanann na sonraí comhsheasmhach. Ar ndóigh, le bunachar sonraí NoSQL, is féidir le hidirbheartaíocht a bheith laistigh de dhoiciméad amháin, nó is féidir leat gealltanais dhá chéim a úsáid chun semantics idirbheartaíochta a fháil. Ach beidh ort an fheidhmiúlacht seo a chur i bhfeidhm tú féin... is féidir a bheith ina thasc deacair agus am-íditheach. Go minic ní thuigeann tú go bhfuil fadhb ann go dtí go bhfeiceann tú go bhfuil na sonraí sa bhunachar sonraí i riocht neamhbhailí toisc nach féidir adamhacht na n-oibríochtaí a chinntiú. Nóta: Dúirt go leor daoine liom gur thug MongoDB 4.0 idirbhearta isteach anuraidh, ach le roinnt teorainneacha. Fanann an beir leat ón alt mar a chéile: déan measúnú ar cé chomh maith agus a shásaíonn an teicneolaíocht do chuid riachtanas.
  • Cailliúint sláine choibhneasta (eochracha eachtracha): Má tá caidrimh ag do shonraí, ansin beidh ort iad a chur i bhfeidhm san iarratas. Má tá bunachar sonraí agat a thugann meas ar na caidrimh seo, bainfidh sé go leor den obair ón bhfeidhmchlár agus mar sin de do ríomhchláraitheoirí.
  • Easpa cumais struchtúr sonraí a chur i bhfeidhm: Uaireanta is fadhb mhór iad scéimrí dochta, ach is meicníocht chumhachtach iad freisin le haghaidh dea-struchtúrú sonraí má úsáidtear iad go ciallmhar. Soláthraíonn bunachair shonraí doiciméad cosúil le MongoDB solúbthacht scéimre dochreidte, ach baineann an tsolúbthacht seo an fhreagracht as na sonraí a choinneáil glan. Mura dtugann tú aire dóibh, scríobhfaidh tú go leor cód i d’iarratas ar deireadh le cuntas a thabhairt ar shonraí nach bhfuil stóráilte san fhoirm a bhfuil súil agat léi. Mar a deirimid go minic ag ár gcuideachta Snáithe Simplí ... déanfar an feidhmchlár a athscríobh lá éigin, ach beidh na sonraí beo go deo. Nóta: Tacaíonn MongoDB le seiceáil scéimre: tá sé úsáideach, ach ní sholáthraíonn sé na ráthaíochtaí céanna agus atá i mbunachar sonraí coibhneasta. Ar an gcéad dul síos, ní chuireann sé isteach ar sheic scéimre trí sheiceáil scéimre a chur leis nó a athrú ar na sonraí atá sa bhailiúchán cheana féin. Fút féin atá sé a chinntiú go ndéanann tú na sonraí a nuashonrú de réir na scéime nua. Déan cinneadh duit féin an leor é seo do do chuid riachtanas.
  • Teanga cheistiúcháin dhúchais / caillteanas éiceachóras uirlisí: Ba réabhlóid iomlán é teacht SQL agus níor athraigh rud ar bith ó shin i leith. Is teanga thar a bheith cumhachtach í, ach freisin casta go leor. Féachann daoine a bhfuil taithí acu ag obair le SQL ar an ngá atá le fiosruithe bunachar sonraí a thógáil i dteanga nua ina bhfuil blúirí JSON mar chéim mhór ar gcúl. Tá cruinne iomlán uirlisí ann a idirghníomhaíonn le bunachair shonraí SQL, ó IDEanna go huirlisí tuairiscithe. Nuair a bhogann tú chuig bunachar sonraí nach dtacaíonn SQL leis, ní féidir leat an chuid is mó de na huirlisí seo a úsáid nó caithfidh tú na sonraí a aistriú go SQL chun iad a úsáid, rud a d'fhéadfadh a bheith níos deacra ná mar a cheapann tú.

Níor thuig go leor forbróirí a d'iompaigh chuig MongoDB na comhbhabhtálacha i ndáiríre, agus is minic a d'fhéach siad ar dtús chun é a shuiteáil mar phríomhstór sonraí. Ina dhiaidh seo bhí sé thar a bheith deacair go minic teacht ar ais.

Cad a d’fhéadfaí a dhéanamh ar bhealach difriúil?

Níor léim gach duine ar an gcéad dul síos agus bhuail siad an bun. Ach tá MongoDB suiteáilte ag go leor tionscadal in áiteanna nach raibh oiriúnach dóibh - agus beidh orthu maireachtáil leis ar feadh blianta fada le teacht. Dá mbeadh roinnt ama caite ag na heagraíochtaí seo agus smaoineamh go modheolaíoch faoina roghanna teicneolaíochta, bheadh ​​roghanna éagsúla déanta ag go leor acu.

Conas an teicneolaíocht cheart a roghnú? Rinneadh roinnt iarrachtaí creat córasach a chruthú do mheasúnú teicneolaíochta, mar shampla "Creat chun teicneolaíochtaí a thabhairt isteach in eagraíochtaí bogearraí" и "Creat chun teicneolaíochtaí bogearraí a mheasúnú", ach feictear dom gur castacht gan ghá é seo.

Is féidir go leor teicneolaíochtaí a mheas go cliste trí dhá cheist bhunúsacha a chur. Is í an fhadhb atá ann ná daoine a aimsiú atá in ann iad a fhreagairt go freagrach, ag tógáil an ama chun na freagraí a fháil agus gan chlaonadh.

Mura bhfuil tú ag tabhairt aghaidh ar aon fhadhb, ní gá duit uirlis nua. Ponc.

Ceist 1: Cad iad na fadhbanna atáim ag iarraidh a réiteach?

Mura bhfuil tú ag tabhairt aghaidh ar aon fhadhb, ní gá duit uirlis nua. Ponc. Ní gá réiteach a lorg agus fadhb a chumadh ansin. Mura bhfuil tú tar éis teacht ar fhadhb a réitíonn an teicneolaíocht nua i bhfad níos fearr ná an teicneolaíocht atá agat faoi láthair, níl aon rud le plé anseo. Má tá tú ag smaoineamh ar an teicneolaíocht seo a úsáid toisc go bhfaca tú daoine eile ag baint úsáide as, smaoinigh ar na fadhbanna atá rompu agus fiafraigh an bhfuil na fadhbanna sin agat. Tá sé éasca glacadh le teicneolaíocht mar go bhfuil daoine eile ag baint úsáide as, is é an dúshlán a thuiscint an bhfuil tú ag tabhairt aghaidh ar na fadhbanna céanna.

Ceist 2: Cad atá mé ag iarraidh?

Is cinnte gur ceist níos deacra í seo mar beidh ort tochailt isteach agus tuiscint mhaith a bheith agat ar an sean agus ar an nuatheicneolaíocht. Uaireanta ní féidir leat ceann nua a thuiscint i ndáiríre go dtí go bhfuil rud éigin tógtha agat leis nó go bhfuil duine éigin leis an taithí sin agat.

Mura bhfuil ceachtar acu, is fiú smaoineamh ar an infheistíocht íosta is féidir chun luach na hionstraime seo a chinneadh. Agus nuair a dhéanann tú an infheistíocht, cé chomh deacair a bheidh sé an cinneadh a fhreaschur?

Scriosann daoine gach rud i gcónaí

Agus tú ag iarraidh na ceisteanna seo a fhreagairt chomh neamhchlaonta agus is féidir, cuimhnigh ar rud amháin: beidh ort dul i ngleic leis an dúlra daonna. Tá roinnt laofachtaí cognaíocha ann nach mór a shárú chun an teicneolaíocht a mheas go héifeachtach. Níl anseo ach cúpla:

  • An éifeacht a cheanglaíonn an tromlach - tá a fhios ag gach duine mar gheall air, ach tá sé deacair fós troid leis. Cinntigh go bhfuil an teicneolaíocht ag teacht le do riachtanais iarbhír.
  • Éifeacht úrnuachta — Is gnách le go leor forbróirí gannmheas a dhéanamh ar na teicneolaíochtaí ar oibrigh siad leo le fada an lá agus buntáistí na teicneolaíochta nua a rómheastachán. Ní ríomhchláraitheoirí amháin é, tá gach duine so-ghabhálach don chlaonadh cognaíoch seo.
  • Éifeacht tréithe dearfacha - Is gnách linn a fheiceáil cad atá ann agus radharc a chailleadh ar cad atá in easnamh. D'fhéadfadh sé seo a bheith mar thoradh ar chaos nuair a chomhcheanglaítear é leis an éifeacht úrnuachta, mar ní hamháin go dtugann tú luach ró-mhór do theicneolaíocht nua, ach freisin neamhaird a dhéanamh ar a heasnaimh..

Níl sé éasca measúnú oibiachtúil, ach cabhróidh tuiscint ar na laofachtaí cognaíocha bunúsacha leat chun cinntí níos réasúnaí a dhéanamh.

Achoimre

Nuair a thagann nuálaíocht chun cinn, ní mór dhá cheist a fhreagairt go han-chúramach:

  • An réitíonn an uirlis seo fíorfhadhb?
  • An dtuigeann muid na comhbhabhtálacha go maith?

Murar féidir leat an dá cheist seo a fhreagairt go muiníneach, tóg cúpla céim siar agus smaoinigh.

Mar sin, an raibh MongoDB fiú an rogha ceart? Ar ndóigh tá; Mar is amhlaidh le formhór na dteicneolaíochtaí innealtóireachta, braitheann sé seo ar go leor fachtóirí. Ina measc siúd a d'fhreagair an dá cheist seo, bhain go leor leas as MongoDB agus leanann siad ag déanamh amhlaidh. Dóibh siúd nach ndearna, tá súil agam gur fhoghlaim tú ceacht luachmhar agus nach raibh ró-phianmhar maidir le bogadh tríd an timthriall hype.

Séanadh

Ba mhaith liom a shoiléiriú nach bhfuil gaol ná fuath agam le MongoDB. Ní raibh na cineálacha fadhbanna is fearr a oireann MongoDB le réiteach againn. Tá a fhios agam go bhfuil 10gen/MongoDB Inc. Bhí sé an-dána ar dtús, ag socrú mainneachtainí neamhchinnte agus ag cur MongoDB chun cinn i ngach áit (go háirithe ag hackathons) mar réiteach uilíoch chun oibriú le haon sonraí. Is dócha gur drochchinneadh a bhí ann. Ach deimhníonn sé an cur chuige a thuairiscítear anseo: d'fhéadfaí na fadhbanna seo a bhrath go han-tapa fiú le measúnú superficial ar an teicneolaíocht.

Foinse: will.com

Add a comment