An e MongoDB an roghainn cheart san fharsaingeachd?

Fhuair mi a-mach sin o chionn ghoirid Bidh Red Hat a’ toirt air falbh taic MongoDB bho saideal (can, mar thoradh air atharrachaidhean ceadachais). Thug e orm smaoineachadh anns na beagan bhliadhnaichean a dh’ fhalbh gu bheil mi air dòrlach de artaigilean fhaicinn mu cho uamhasach sa tha MongoDB agus nach bu chòir do dhuine sam bith a chleachdadh a-riamh. Ach rè na h-ùine seo, tha MongoDB air fàs gu bhith na thoradh tòrr nas aibidh. Dè a thachair? A bheil a h-uile fuath dha-rìribh mar thoradh air mearachdan aig toiseach margaidheachd an DBMS ùr? No a bheil daoine dìreach a’ cleachdadh MongoDB san àite cheàrr?

Ma tha thu gu h-obann a’ faireachdainn gu bheil mi a’ dìon MongoDB, feuch an leugh thu àicheadh aig deireadh an artaigil.

Gluasad ùr

Tha mi air a bhith ann an gnìomhachas bathar-bog airson barrachd bhliadhnaichean na tha e cothromach a ràdh, ach fhathast cha robh mi ach mar phàirt de na gluasadan a bhuail ar gnìomhachas. Tha mi air àrdachadh fhaicinn de 4GL, AOP, Agile, SOA, Web 2.0, AJAX, blockchain… tha an liosta gun chrìoch. Gach bliadhna tha gluasadan ùra ann. Tha cuid a’ seargadh gu luath, agus cuid eile ag atharrachadh gu bunaiteach mar a thèid bathar-bog a leasachadh.

Timcheall air gach gluasad ùr, thathas a’ cruthachadh toileachas coitcheann sònraichte: bidh daoine an dàrna cuid a’ leum a-steach don bhàta iad fhèin, no a’ faicinn am fuaim a thig bho chàch - agus a’ leantainn an t-sluaigh. Chaidh am pròiseas seo a chòdachadh le Gartner a-steach Cearcall hype. Ged a tha deasbad ann, tha an graf seo a’ toirt cunntas garbh air na thachras do theicneòlasan mus bi iad feumail airson an cleachdadh aig a’ cheann thall.

Ach bho àm gu àm tha (no tha dàrna tighinn, mar a tha sa chùis seo) ùr-ghnàthachadh ùr, air a stiùireadh le dìreach aon bhuileachadh sònraichte. A thaobh NoSQL, bha an hype air a stiùireadh gu mòr le teachd agus àrdachadh meteoric MongoDB. Cha do thòisich MongoDB an gluasad seo: gu dearbh, thòisich companaidhean mòra eadar-lìn a 'faighinn duilgheadasan le bhith a' giullachd mòran dàta, a thug air ais stòran-dàta neo-dàimheach. Thòisich an gluasad coitcheann le pròiseactan leithid Google's Bigtable agus Facebook's Cassandra, ach b 'e MongoDB a thàinig gu bhith na bhuileachadh as ainmeil agus as ruigsinneach de stòr-dàta NoSQL a bha cothrom aig a' mhòr-chuid de luchd-leasachaidh.

Nota: Is dòcha gu bheil thu a’ smaoineachadh gu bheil mi a’ cuir troimh-chèile stòran-dàta sgrìobhainnean le stòran-dàta colbh, stòran prìomh / luach, no gin den iomadh seòrsa stòr dàta eile a tha fon mhìneachadh coitcheann air NoSQL. Agus tha thu ceart. Ach aig an àm, bha caos a’ riaghladh. Tha a h-uile duine trom le NoSQL, tha e air a thighinn gu bhith na h-uile gu tur riatanach, ged nach robh mòran a 'faicinn nan eadar-dhealachaidhean ann an diofar theicneòlasan. Dha mòran, tha MongoDB air fàs ciallach le NoSQL.

Agus leum an luchd-leasachaidh air. Bha am beachd air stòr-dàta gun sgeama a bhios a’ sgèileadh gu draoidheil gus fuasgladh fhaighinn air duilgheadas sam bith gu math tarraingeach. Timcheall air 2014, bha e coltach gun deach stòr-dàta dàimh leithid MySQL, Postgres no SQL Server a chleachdadh bliadhna air ais, bha stòran-dàta MongoDB gan cleachdadh. Nuair a thèid faighneachd dhut carson, gheibheadh ​​​​tu freagairtean bhon banal “is e seo sgèile an lìn” chun an fheadhainn a tha nas smaoineachail “tha an dàta agam le structar gu math sgaoilte agus a’ freagairt gu math ann an stòr-dàta gun sgeama. ”

Tha e cudromach cuimhneachadh gu bheil MongoDB, agus stòran-dàta sgrìobhainnean san fharsaingeachd, a’ fuasgladh grunn dhuilgheadasan le stòran-dàta traidiseanta:

  • Sgeama teann: le stòr-dàta dàimh, ma tha thu air dàta a chruthachadh gu dinamach, feumaidh tu an dàrna cuid dòrlach de cholbhan dàta “eadar-dhealaichte” a chruthachadh, putadh bloban dàta a-steach an sin, no rèiteachadh a chleachdadh EAV... tha eas-bhuannachdan mòra aig seo uile.
  • Duilgheadas le sgèileadh: Ma tha uimhir de dhàta ann nach eil e a’ freagairt air aon fhrithealaiche, thairg MongoDB uidheamachdan gus leigeil leis sgèileadh thairis air iomadh inneal.
  • Mion-atharrachaidhean cuairteachaidh iom-fhillte: gun imrich! Ann an stòr-dàta dàimh, faodaidh atharrachadh structar an stòr-dàta a bhith na dhuilgheadas mòr (gu sònraichte nuair a tha tòrr dàta ann). Tha MongoDB air a bhith comasach air am pròiseas a dhèanamh nas sìmplidhe. Agus rinn e cho furasta is gun urrainn dhut dìreach an sgeama ùrachadh nuair a thig thu agus gluasad air adhart gu math luath.
  • Sgrìobh coileanadh: Bha coileanadh MongoDB math, gu sònraichte nuair a bha e ceart. Sheall eadhon an rèiteachadh taobh a-muigh a’ bhogsa de MongoDB, airson an deach a chàineadh gu tric, figearan coileanaidh drùidhteach.

Tha na cunnartan uile ort

Bha na buannachdan a dh’ fhaodadh a bhith aig MongoDB fìor mhòr, gu sònraichte airson cuid de chlasaichean de dhuilgheadasan. Ma leugh thu an liosta gu h-àrd gun a bhith a 'tuigsinn a' cho-theacsa agus gun eòlas sam bith agad, is dòcha gum faigh thu a 'bheachd gur e DBMS rèabhlaideach a th' ann am MongoDB. B’ e an aon dhuilgheadas gun tàinig na buannachdan a tha air an liostadh gu h-àrd le grunn uaimhean, cuid dhiubh air an liostadh gu h-ìosal.

Gus a bhith cothromach, chan eil duine aig 10gen/MongoDB Inc. chan abair nach eil na leanas fìor, chan eil annta seo ach co-rèiteachadh.

  • A 'call gnothaicheanF: Tha gnothaichean nam prìomh fheart ann an iomadh stòr-dàta co-cheangailte (chan eil iad uile, ach a’ mhòr-chuid). Tha malairt a’ ciallachadh gun urrainn dhut iomadh gnìomh a dhèanamh gu atamach agus gun urrainn dhut dèanamh cinnteach gum fuirich an dàta cunbhalach. Gu dearbh, le stòr-dàta NoSQL, faodaidh gnìomhachd a bhith taobh a-staigh aon sgrìobhainn, no faodaidh tu geallaidhean dà-ìre a chleachdadh gus semantics gnìomhachd fhaighinn. Ach feumaidh tu an gnìomh seo a chuir an gnìomh thu fhèin ... a dh’ fhaodadh a bhith na obair dhoirbh agus ùineail. Gu tric cha tuig thu an duilgheadas gus am faic thu gu bheil an dàta san stòr-dàta a’ dol a-steach do stàitean neo-dhligheach leis gu bheil e do-dhèanta a bhith cinnteach à atomachd nan gnìomhan. Nota: Tha mòran air innse dhomh gun deach gnothaichean a thoirt a-steach ann am MongoDB 4.0 an-uiridh, ach le cuid de chuingealachaidhean. Tha co-dhùnadh an artaigil fhathast mar a tha e: dèan measadh air mar a tha an teicneòlas a’ freagairt air na feumalachdan agad.
  • Call ionracas dàimh (iuchraichean cèin): ma tha dàimhean aig an dàta agad, feumaidh tu an cur an sàs san tagradh. Le bhith a’ faighinn stòr-dàta a bheir spèis do na dàimhean sin bheir e tòrr obrach far an tagradh agus mar sin air do phrògramadairean.
  • Neo-chomas structar dàta a chuir an sàs: Uaireannan faodaidh sgeamaichean teann a bhith na dhuilgheadas mòr, ach tha iad cuideachd nan inneal cumhachdach airson deagh structar dàta ma thèid an cleachdadh gu ciallach. Tha stòran-dàta sgrìobhainnean mar MongoDB a’ toirt seachad sùbailteachd sgeama iongantach, ach tha an sùbailteachd sin a’ toirt air falbh uallach an dàta a chumail glan. Mura toir thu aire dhaibh, bidh thu mu dheireadh a’ sgrìobhadh tòrr chòd san tagradh agad gus cunntas a thoirt air dàta nach eil air a stòradh san fhoirm ris a bheil dùil agad. Mar a chanas iad gu tric anns a’ chompanaidh againn Simple Thread… thèid an tagradh ath-sgrìobhadh uaireigin, ach bidh an dàta beò gu bràth. Nota: Tha MongoDB a’ toirt taic do dhearbhadh sgeamaichean, a tha feumail ach nach eil a’ toirt seachad na h-aon gheallaidhean ri stòr-dàta dàimh. An toiseach, chan eil cur ris no atharrachadh dearbhadh sgeama a’ toirt buaidh air an dàta a tha sa chruinneachadh mu thràth. Feumaidh tu dèanamh cinnteach gun ùraich thu an dàta a rèir an sgeama ùr. Dèan co-dhùnadh dhut fhèin a bheil seo gu leòr airson na feumalachdan agad.
  • Cànan ceiste fhèin / call eag-shiostam innealan: bha teachd SQL na fhìor tionndadh, agus chan eil dad air atharrachadh bhon uairsin. 'S e cànan air leth cumhachdach a th' ann, ach cuideachd gu math toinnte. Tha an fheum air ceistean stòr-dàta a thogail ann an cànan ùr, anns a bheil pìosan JSON, air fhaicinn mar cheum mòr air ais le daoine aig a bheil eòlas air SQL. Tha cruinne-cruinne de dh’ innealan ann a bhios ag eadar-obrachadh le stòran-dàta SQL, bho IDEs gu innealan aithris. Le bhith a’ gluasad gu stòr-dàta nach eil a’ toirt taic do SQL tha sin a’ ciallachadh nach urrainn dhut a’ mhòr-chuid de na h-innealan sin a chleachdadh, no feumaidh tu an dàta a thionndadh gu SQL gus an cleachdadh, rud a dh’ fhaodadh a bhith nas duilghe na tha thu a’ smaoineachadh.

Cha robh mòran de luchd-leasachaidh a thionndaidh gu MongoDB dha-rìribh a’ tuigsinn na malairtidhean, agus gu tric bhiodh iad a’ dàibheadh ​​​​an toiseach gus a stèidheachadh mar am prìomh stòr dàta aca. Às deidh sin, gu tric bha e uamhasach duilich a dhol air ais.

Dè dh’ fhaodadh a bhith air a dhèanamh ann an dòigh eadar-dhealaichte?

Cha do leum a h-uile duine an ceann an toiseach agus bhuail iad a-steach don bhonn. Ach tha grunn phròiseactan air bunait MongoDB a chuir a-steach far nach robh e iomchaidh - agus feumaidh iad a bhith beò leis airson grunn bhliadhnaichean eile. Nam biodh na buidhnean sin air beagan ùine a ghabhail gus beachdachadh gu rianail air na roghainnean teicneòlais aca, bhiodh mòran air roghainn eadar-dhealaichte a dhèanamh.

Ciamar a roghnaicheas tu an teicneòlas ceart? Chaidh grunn oidhirpean a dhèanamh gus frèam rianail a chruthachadh airson measadh teicneòlais, leithid "Frèam airson buileachadh theicneòlasan ann am buidhnean bathar-bog" и "Framefork airson teicneòlasan bathar-bog a mheasadh", ach tha e coltach riumsa gur e iom-fhillteachd neo-riatanach a tha seo.

Faodar luach a chuir air mòran theicneòlasan le bhith a’ faighneachd dìreach dà cheist bhunaiteach. Tha an duilgheadas ann a bhith a’ lorg dhaoine as urrainn am freagairt gu ciallach, a’ gabhail ùine airson freagairtean a lorg agus gun chlaonadh.

Mura h-eil duilgheadas agad, chan fheum thu inneal ùr. Dot.

Ceist 1: Dè na duilgheadasan a tha mi a’ feuchainn ri fuasgladh?

Mura h-eil duilgheadas agad, chan fheum thu inneal ùr. Dot. Chan eil feum a bhith a 'coimhead airson fuasgladh agus an uair sin a' tighinn suas le duilgheadas. Mura h-eil duilgheadas agad nach bi an teicneòlas ùr a’ fuasgladh mòran nas fheàrr na an teicneòlas a th’ agad mu thràth, chan eil dad ri dheasbad an seo. Ma tha thu a’ beachdachadh air an teicneòlas seo a chleachdadh leis gu bheil thu air daoine eile fhaicinn ga chleachdadh, smaoinich air na duilgheadasan a th’ aca agus faighnich a bheil na duilgheadasan sin agad. Tha e furasta gabhail ri teicneòlas oir tha cuid eile ga chleachdadh, is e an duilgheadas fios a bhith agad a bheil na h-aon chùisean agad.

Ceist 2: Dè tha mi a dhìth?

Tha seo gu cinnteach na cheist nas duilghe, oir feumaidh tu an dà chuid an t-seann agus an teicneòlas ùr a chladhach agus a thuigsinn gu math. Aig amannan chan urrainn dhut fear ùr a thuigsinn gus am bi thu air rudeigin a thogail leis no gus am bi co-obraiche agad leis an eòlas sin.

Mura h-eil an dàrna cuid agad, tha e ciallach smaoineachadh air an ìre as lugha de thasgadh gus luach an ionnstramaid seo a dhearbhadh. Agus ma nì thu tasgadh, dè cho duilich ‘s a bhios e an co-dhùnadh a thionndadh air ais?

Bidh daoine an-còmhnaidh a’ sgrios a h-uile càil

Ann a bhith a 'feuchainn ris na ceistean sin a fhreagairt cho neo-chlaon' sa ghabhas, cuimhnich air aon rud: feumaidh tu a bhith a 'sabaid ri nàdar daonna. Tha grunn chlaonaidhean inntinneil ann ris am feumar faighinn seachad air gus teicneòlas a mheasadh gu h-èifeachdach. Seo dìreach beagan:

  • A 'bhuaidh a bhith a' tighinn còmhla ris a 'mhòr-chuid Tha fios aig a h-uile duine mu dheidhinn, ach tha e fhathast doirbh a bhith a 'sabaid ris. Dìreach dèan cinnteach gu bheil an teicneòlas dha-rìribh a’ freagairt air na fìor fheumalachdan agad.
  • buaidh nuadh Tha mòran de luchd-leasachaidh buailteach a bhith a’ dèanamh dì-meas air na teicneòlasan leis a bheil iad air a bhith ag obair o chionn fhada agus a’ dèanamh cus tuairmse air buannachdan teicneòlas ùr. Chan e a-mhàin luchd-prògramaidh, tha a h-uile duine fo ùmhlachd a’ chlaonadh inntinneil seo.
  • Buaidh Feart Deimhinneach Tha sinn buailteach a bhith a 'faicinn dè a th' ann agus a 'call sealladh air dè nach eil. Faodaidh seo leantainn gu mì-riaghailt, còmhla ris a’ bhuaidh ùr-nodha, leis gu bheil thu chan ann a-mhàin a’ faighinn cus luach air an teicneòlas ùr, ach cuideachd a’ seachnadh nan easbhaidhean aige..

Chan eil e furasta measadh amas, ach cuidichidh tuigse air na claonaidhean inntinneil bunaiteach thu gus co-dhùnaidhean nas reusanta a dhèanamh.

Geàrr-chunntas

Nuair a nochdas ùr-ghnàthachadh, feumar dà cheist a fhreagairt le cùram:

  • A bheil an inneal seo a’ fuasgladh fìor dhuilgheadas?
  • A bheil sinn math air tuigse fhaighinn air malairtidhean?

Mura h-urrainn dhut an dà cheist seo a fhreagairt le misneachd, gabh beagan cheumannan air ais agus smaoinich.

Mar sin an e la MongoDB an roghainn cheart san fharsaingeachd? Gu dearbh tha; mar a tha sa mhòr-chuid de theicneòlasan innleadaireachd, tha e an urra ri mòran fhactaran. Am measg an fheadhainn a fhreagair an dà cheist seo, tha mòran air buannachd fhaighinn bho MongoDB agus a 'leantainn orra a' dèanamh sin. Dhaibhsan agaibhse nach do rinn, tha mi an dòchas gu bheil sibh air leasan luachmhor agus nach eil ro dhona ionnsachadh mu bhith a’ gluasad tron ​​chearcall hype.

Àicheadh

Tha mi airson soilleireachadh nach eil gaol no gràin agam air MongoDB. Cha robh dìreach an seòrsa dhuilgheadasan againn a tha MongoDB as freagarraiche airson fuasgladh. Tha fios agam air 10gen/MongoDB Inc. gnìomh gu dàna an toiseach, a’ suidheachadh easbhaidhean mì-chinnteach agus a’ brosnachadh MongoDB anns a h-uile àite (gu sònraichte aig hackathons) mar fhuasgladh aon-stad airson obrachadh le dàta sam bith. Is dòcha gur e droch cho-dhùnadh a bh’ ann. Ach tha e a 'dearbhadh an dòigh-obrach a tha air a mhìneachadh an seo: dh' fhaodadh na duilgheadasan sin a bhith air an lorg gu math luath eadhon le measadh air an teicneòlas.

Source: www.habr.com

Cuir beachd ann