Ma MongoDB bi gelemperî bijareya rast bû?

Min vê dawiyê pê hesiya Red Hat piştgiriya MongoDB ji Satellite radike (ew ji ber guhertinên lîsansê dibêjin). Vê yekê ez hiştim ku ez bifikirim ji ber ku di van çend salên dawî de min ton gotar dît ku MongoDB çiqasî tirsnak e û meriv çu carî nabe ku wê bikar bîne. Lê di vê demê de, MongoDB bûye hilberek pir mazintir. Çi qewimî? Ma hemî nefret bi rastî ji ber xeletiyên di kirrûbirra zû ya DBMSek nû de ye? An jî mirov tenê MongoDB li cîhên xelet bikar tînin?

Ger hûn hîs dikin ku ez MongoDB diparêzim, ji kerema xwe bixwînin disclaimer di dawiya gotarê de.

Trendek nû

Ez bi salan zêdetir di pîşesaziya nermalavê de dixebitim ji ya ku ez dikarim bibêjim, lê ez hîn jî tenê li ber beşek piçûk a meylên ku li pîşesaziya me xistine derdikevim. Ez bûm şahidê bilindbûna 4GL, AOP, Agile, SOA, Web 2.0, AJAX, Blockchain ... navnîş bêdawî ye. Her sal meylên nû derdikevin holê. Hin bi lez diherikin, hinên din bi bingehîn awayê pêşkeftina nermalavê diguhezînin.

Her meyleke nû heyecanek giştî diafirîne: mirov an xwe davêjin ser sifrê, an jî dengê ku ji hêla kesên din ve hatî çêkirin dibînin û girseyê dişopînin. Ev pêvajo ji hêla Gartner ve tê kod kirin cycle hype. Her çend nakokî be jî, ev xêz bi hûrgulî diyar dike ka çi diqewime teknolojiyên berî ku ew di dawiyê de bikêr bibin.

Lê dem bi dem nûbûnek nû xuya dibe (an jî hatinek duyemîn heye, wekî vê rewşê) tenê ji hêla yek pêkanînek taybetî ve tê rêve kirin. Di doza NoSQL de, hîpe bi giranî ji derketin û rabûna meteorîkî ya MongoDB-ê ve hate rêve kirin. MongoDB dest bi vê meylê nekir: di rastiyê de, pargîdaniyên mezin ên Înternetê dest pê kirin ku di hilberandina mîqdarên mezin ên daneyê de pirsgirêk derketin, ku bû sedema vegerandina databasên ne-girêdayî. Tevgera giştî bi projeyên mîna Google's Bigtable û Facebook's Cassandra dest pê kir, lê ew MongoDB bû ku bû pêkanîna databasa NoSQL ya herî naskirî û gihîştî ya ku piraniya pêşdebiran gihîştina wê.

Nîşe: Hûn dikarin bifikirin ku ez databasên belgeyê bi databasên stûnî, firotgehên sereke / nirx, an yek ji gelek celebên dikanên daneyê yên ku di bin pênase NoSQL ya gelemperî de ne tevlihev dikim. Û tu rast dibêjî. Lê wê demê kaos serdest bû. Her kes bi NoSQL re mijûl e, ew bûye her kes tevahî pêdivî ye, her çend gelekan di teknolojiyên cihêreng de cûdahiyan nedîtin. Ji bo gelekan, MongoDB bûye hevwate NoSQL.

Û pêşdebiran li ser wê hejandin. Fikra databasek bê şemal ku bi efsûnî ji bo çareserkirina her pirsgirêkê dipîve pir ceribandî bû. Nêzîkî 2014-an, wusa dixuye ku li her deverê ku salek berê databasek pêwendiyek wekî MySQL, Postgres an SQL Server bikar anîbû dest bi danîna databasên MongoDB kir. Gava ku jê tê pirsîn çima, hûn dikarin bersivek ji "ev pîvana tevneyê ye" ya bihizirtir bistînin "daneyên min pir bi şeklekî avakirî ne û baş di nav databasek bê şema de cih digirin."

Girîng e ku ji bîr mekin ku MongoDB, û databasên belgeyê bi gelemperî, çend pirsgirêkan bi databasên pêwendiya kevneşopî re çareser dikin:

  • Plana hişk: Digel databasek pêwendiyê, heke we daneya dînamîkî hilberandiye, hûn neçar in ku an komek stûnên daneyan ên "cuda" yên birêkûpêk biafirînin, pelikên daneyan têxin hundurê wir, an jî veavakirinê bikar bînin. EAV... ev hemû kêmasiyên girîng hene.
  • Zehmetiya pîvandinê: Ger ew qas dane hene ku ew li ser yek serverê cîh nagire, MongoDB mekanîzmayên pêşkêşî dike da ku destûrê bide ku ew di nav gelek makîneyan de pîvandin.
  • Guherandinên circuit Complex: koçkirin tune! Di databasek pêwendiyê de, guhartina strukturên databasê dikare pirsgirêkek mezin be (bi taybetî dema ku gelek dane hene). MongoDB karibû ku pêvajoyê pir hêsan bike. Û wê ew qas hêsan kir ku hûn tenê dikarin çerxa ku hûn diçin û pir zû bi pêş ve biçin nûve bikin.
  • Performansa tomarkirinê: Performansa MongoDB baş bû, nemaze dema ku bi rêkûpêk hatî mîheng kirin. Tewra veavakirina derveyî ya MongoDB-ê, ji bo ku ew pir caran hate rexne kirin, hin hejmarên performansa balkêş nîşan da.

Hemû rîsk li ser we ne

Feydeyên potansiyel ên MongoDB pir mezin bûn, nemaze ji bo hin çînên pirsgirêkan. Ger hûn navnîşa jorîn bêyî têgihîştina çarçovê û bê ezmûn bixwînin, dibe ku hûn têgihîştin ku MongoDB bi rastî DBMSek şoreşger e. Pirsgirêk tenê ev bû ku feydeyên ku li jor hatine destnîşan kirin bi çend hişyariyan re hatine, ku hin ji wan li jêr têne navnîş kirin.

Dadperwer be, kes li 10gen / MongoDB Inc. dê nebêje ku ya jêrîn ne rast e, ev tenê lihevkirin in.

  • Danûstandinên winda kirin: Danûstandin taybetmendiyek bingehîn a gelek databasên têkildar in (ne hemî, lê piran). Danûstandin tê vê wateyê ku hûn dikarin gelek operasyonan bi atomî pêk bînin û dikarin pê ewle bibin ku danehev domdar bimînin. Bê guman, bi databasek NoSQL re, danûstendin dikare di nav yek belgeyek de be, an jî hûn dikarin peywirên du qonax bikar bînin da ku semantîkên danûstendinê bistînin. Lê hûn ê neçar in ku vê fonksiyonê bi xwe bicîh bikin ... ku dikare bibe karekî dijwar û demdirêj. Pir caran hûn pê nizanin ku pirsgirêkek heye heya ku hûn nebînin ku daneyên di databasê de di rewşên nederbasdar de diqede ji ber ku atomîbûna operasyonan nayê garantî kirin. Nîşe: Gelek kesan ji min re gotin ku MongoDB 4.0 sala borî danûstendinan danî, lê bi hin sînoran. Derketina ji gotarê heman dimîne: binirxînin ka teknolojî çiqas hewcedariyên we bicîh tîne.
  • Wendabûna yekbûna pêwendiyê (bişkojkên biyanî): Ger têkiliyên daneyên we hebin, wê hingê hûn neçar in ku wan di serîlêdanê de bicîh bikin. Hebûna databasek ku ji van têkiliyan re rêz digire dê gelek xebata ji serîlêdanê û ji ber vê yekê bernamenûsên we bigire.
  • Nebûna şiyana sepandina avahiya daneyê: Şêmên hişk carinan dibe ku pirsgirêkek mezin be, lê ew di heman demê de mekanîzmayek hêzdar in ji bo avakirina daneya baş heke bi aqilmendî were bikar anîn. Databasên belgeyê yên mîna MongoDB nermbûnek nexşeya bêhempa peyda dikin, lê ev nermbûn berpirsiyariya paqijkirina daneyan radike. Ger hûn wan guh nedin wan, hûn ê di serîlêdana xwe de gelek kodan binivîsin da ku daneyên ku di forma ku hûn hêvî dikin de nehatine hilanîn hesab bikin. Wekî ku em pir caran li pargîdaniya xwe ya Simple Thread dibêjin ... serîlêdan dê rojek ji nû ve were nivîsandin, lê data dê her û her bijî. Nîşe: MongoDB kontrolkirina şemayê piştgirî dike: ew bikêr e, lê heman garantiyan nade ku di databasa pêwendiyê de ye. Berî her tiştî, lê zêdekirin an guheztina kontrolek şemayê bandorê li daneyên heyî yên di berhevokê de nake. Ji we re ye ku hûn pê ewle bibin ku hûn daneyan li gorî nexşeya nû nûve bikin. Ji xwe re biryar bidin ka ev ji bo hewcedariyên we bes e.
  • Zimanê pirsê yê xwemal / windakirina ekosîstema amûrê: Hatina SQL şoreşek mutleq bû û ji wê demê ve tiştek neguherî. Ew zimanek pir bi hêz e, lê di heman demê de pir tevlihev e. Pêdiviya avakirina pirsên databasê bi zimanek nû ku ji perçeyên JSON pêk tê, ji hêla mirovên ku ezmûna xebata bi SQL re heye wekî gavek mezin paşve tê hesibandin. Tevahiya gerdûnek amûran heye ku bi databasên SQL re têkildar in, ji IDE-yan bigire heya amûrên raporkirinê. Veguhastina danegehek ku SQL piştgirî nake tê vê wateyê ku hûn nikanin piraniya van amûran bikar bînin an jî hûn neçar in ku daneyan li SQL wergerînin da ku wan bikar bînin, ev ji ya ku hûn difikirin dijwartir dibe.

Gelek pêşdebirên ku berê xwe dane MongoDB-ê bi rastî ji bazirganiyê fam nekirine, û pir caran serî li ber xwe didin ku wê wekî dikana daneya xweya bingehîn saz bikin. Piştî vê yekê gelek caran veger pir dijwar bû.

Çi dikaribû cuda bihata kirin?

Ne her kes bi serê xwe bazda û neket binê. Lê gelek projeyan MongoDB li cîhên ku ew bi hêsanî lê nedihat saz kirin - û ew ê neçar bimînin ku gelek salên pêş de bi wê re bijîn. Ger van rêxistinan hin dem derbas bikirana û bi rêgez bi vebijarkên teknolojiya xwe ve bifikirîn, dê gelekan hilbijartinên cihêreng bikirana.

Meriv çawa teknolojiya rast hilbijêrin? Ji bo nirxandina teknolojiyê gelek hewildan çêbûn ku çarçoveyek birêkûpêk biafirînin, wek mînak "Çarçoveya ji bo danasîna teknolojiyên di nav rêxistinên nermalavê de" и "Çarçoveya ji bo nirxandina teknolojiyên nermalavê", lê ji min re xuya dike ku ev tevliheviyek nepêwist e.

Pir teknolojiyên tenê bi pirskirina du pirsên bingehîn dikarin bi aqilmendî bêne nirxandin. Pirsgirêk peydakirina mirovên ku dikarin bi berpirsiyarî bersivê bidin wan e, wextê xwe ji bo dîtina bersivan û bê alîgiriyê digirin.

Heke hûn bi pirsgirêkek re rûbirû nebin, hûn ne hewce ne amûrek nû. Dot.

Pirs 1: Ez hewl didim ku çi pirsgirêkan çareser bikim?

Heke hûn bi pirsgirêkek re rûbirû nebin, hûn ne hewce ne amûrek nû. Dot. Ne hewce ye ku meriv li çareseriyekê bigere û dûv re pirsgirêkek îcad bike. Heya ku hûn rastî pirsgirêkek ku teknolojiya nû ji teknolojiya weya heyî çêtir çareser dike, li vir tiştek tune ku hûn nîqaş bikin. Heke hûn difikirin ku vê teknolojiyê bikar bînin ji ber ku we dît ku kesên din wê bikar tînin, bifikirin ka ew bi kîjan pirsgirêkan re rû bi rû ne û bipirsin ka we wan pirsgirêkan hene. Qebûlkirina teknolojiyê hêsan e ji ber ku yên din wê bikar tînin, kêşe ev e ku hûn fêm bikin ka hûn bi heman pirsgirêkan re rû bi rû ne.

Pirs 2: Ma ez çi winda dikim?

Ev bê guman pirsek dijwartir e ji ber ku hûn ê neçar bin ku hem teknolojiya kevn û hem jî ya nû têgihîştinek baş bikin. Carinan hûn nikarin yekî nû bi rastî fêm bikin heya ku hûn tiştek pê re ava nekin an kesek xwedî wê ezmûnê nebin.

Ger we yek jî tune be, wê hingê maqûl e ku hûn li ser veberhênana hindiktirîn gengaz bifikirin da ku nirxa vê amûrê diyar bikin. Û gava ku hûn veberhênanê bikin, dê çiqas dijwar be ku hûn biryarê paşde bikin?

Mirov her tim her tiştî xera dike

Gava ku hûn hewl didin ku bi qasî ku pêkan bêalî bersiva van pirsan bidin, tiştek ji bîr nekin: hûn ê neçar bimînin ku şerê xwezaya mirovî bikin. Ji bo ku teknolojiyê bi bandor binirxînin, hejmarek pêşbîniyên cognitive hene ku divê werin derbas kirin. Li vir tenê çend hene:

  • Bandora tevlîbûna piraniyê - Her kes bi wî dizane, lê hîn jî dijwar e ku bi wî re şer bikin. Tenê pê ewle bine ku teknolojî bi rastî hewcedariyên weyên rastîn li hev dike.
  • Bandora nûbûnê - Gelek pêşdebiran meyl dikin ku teknolojiyên ku ji bo demek dirêj pê re xebitîne kêm binirxînin û feydeyên teknolojiya nû zêde texmîn bikin. Ew ne tenê bernameçêker in, her kes ji vê pêşbaziya cognitive re têkildar e.
  • Bandora taybetmendiyên erênî - Em mêl dikin ku tiştê li wir heye bibînin û tiştê ku winda ye ji ber çavan winda bikin. Ev dikare bibe sedema kaosê dema ku bi bandora nûbûnê re were hev kirin, ji ber ku hûn ne tenê bi xwezayî teknolojiya nû zêde nirx dikin, lê di heman demê de kêmasiyên wê jî paşguh dikin..

Nirxandina objektîf ne hêsan e, lê têgihîştina pêşbaziyên naskirî yên bingehîn dê ji we re bibe alîkar ku hûn biryarên maqûltir bidin.

Nîqaş

Gava ku nûbûnek xuya dike, divê du pirs bi baldarî bêne bersivandin:

  • Ma ev amûr pirsgirêkek rastîn çareser dike?
  • Ma em danûstandinan baş fam dikin?

Ger hûn nikaribin bi ewlehî bersiva van her du pirsan bidin, çend gavan paşde bavêjin û bifikirin.

Ji ber vê yekê MongoDB tewra bijareya rast bû? Helbet erê; Wekî piraniya teknolojiyên endezyariyê, ev bi gelek faktoran ve girêdayî ye. Di nav wan kesên ku bersiva van her du pirsan dane, gelek ji MongoDB sûd wergirtine û wiya berdewam dikin. Ji bo yên ku nekirin, ez hêvî dikim ku we dersek hêja û ne pir bi êş fêrî derbasbûna çerxa hypeyê kir.

Disclaimer

Ez dixwazim zelal bikim ku min ne têkiliyek evîn û ne jî nefret bi MongoDB re heye. Pirsgirêkên me yên ku MongoDB çêtirîn e ku çareser bikin, nebûn. Ez dizanim ku 10gen / MongoDB Inc. di destpêkê de pir wêrek bû, pêşnumayên neewle danî û MongoDB li her deverê (bi taybetî di hackathonan de) wekî çareseriyek gerdûnî ji bo xebata bi her daneyê re pêşve xist. Dibe ku ew biryarek xirab bû. Lê ew nêzîkatiya ku li vir hatî diyar kirin piştrast dike: van pirsgirêkan bi nirxandinek serpêhatî ya teknolojiyê jî pir zû dikarin werin tespît kirin.

Source: www.habr.com

Add a comment