MongoDB በአጠቃላይ ትክክለኛው ምርጫ ነበር?

በቅርብ ጊዜ ያንን አውቄያለሁ ቀይ ኮፍያ የሞንጎዲቢ ድጋፍን ከሳተላይት ያስወግዳል (በፍቃድ ለውጦች ምክንያት ይላሉ). ይህ እንዳስብ አድርጎኛል ምክንያቱም ባለፉት ጥቂት አመታት ውስጥ MongoDB ምን ያህል አስከፊ እንደሆነ እና ማንም ሰው እንዴት ሊጠቀምበት እንደማይችል ብዙ ጽሁፎችን አይቻለሁ። ነገር ግን በዚህ ጊዜ ውስጥ, MongoDB በጣም የበሰለ ምርት ሆኗል. ምን ሆነ? ሁሉም ጥላቻ በእውነቱ በአዲስ ዲቢኤምኤስ መጀመሪያ ግብይት ላይ በተደረጉ ስህተቶች ምክንያት ነው? ወይስ ሰዎች ሞንጎዲቢን በተሳሳተ ቦታ እየተጠቀሙ ነው?

MongoDBን እየተከላከልኩ እንደሆነ ከተሰማዎት እባክዎ ያንብቡ ማስተባበያ በአንቀጹ መጨረሻ ላይ.

አዲስ አዝማሚያ

በሶፍትዌር ኢንደስትሪ ውስጥ ከምንለው በላይ በመስራት ላይ ነኝ፣ነገር ግን አሁንም የተጋለጥኩት ለኢንደስትሪያችን ላደረሱት አዝማሚያዎች ትንሽ ክፍል ብቻ ነው። የ 4GL፣ AOP፣ Agile፣ SOA፣ Web 2.0፣ AJAX፣ Blockchain... ዝርዝሩ ማለቂያ የለውም። በየአመቱ አዳዲስ አዝማሚያዎች ይታያሉ. አንዳንዶቹ በፍጥነት ይጠፋሉ, ሌሎች ደግሞ በመሠረቱ የሶፍትዌር አሰራርን ይለውጣሉ.

እያንዳንዱ አዲስ አዝማሚያ አጠቃላይ ደስታን ይፈጥራል፡ ሰዎች ወይ በመርከቡ ላይ ይዝለሉ፣ ወይም በሌሎች የተፈጠረውን ጫጫታ አይተው ህዝቡን ይከተላሉ። ይህ ሂደት በጋርትነር ኢን የተስተካከለ ነው። የጅብ ዑደት. ምንም እንኳን አወዛጋቢ ቢሆንም፣ ይህ የጊዜ መስመር ቴክኖሎጂዎች ከጊዜ በኋላ ጠቃሚ ከመሆናቸው በፊት ምን እንደሚሆኑ በዝርዝር ይገልጻል።

ነገር ግን ከጊዜ ወደ ጊዜ አዲስ ፈጠራ ብቅ ይላል (ወይም ሁለተኛ ምጽአት አለው, ልክ በዚህ ጉዳይ ላይ) በአንድ የተወሰነ አተገባበር ብቻ የሚመራ. በNoSQL ጉዳይ፣ ማበረታቻው በMongoDB መከሰት እና ሜትሮሪክ መነሳት የተነሳ ነበር። MongoDB ይህን አዝማሚያ አልጀመረም: በእርግጥ ትላልቅ የኢንተርኔት ኩባንያዎች ከፍተኛ መጠን ያለው መረጃን በማካሄድ ላይ ችግር ነበራቸው, ይህም ግንኙነት የሌላቸው የውሂብ ጎታዎች እንዲመለሱ አድርጓል. አጠቃላይ እንቅስቃሴው የተጀመረው እንደ Google's Bigtable እና Facebook's Cassandra ባሉ ፕሮጀክቶች ነው፣ ግን MongoDB በጣም ታዋቂ እና ተደራሽ የሆነው የNoSQL ዳታቤዝ አተገባበር አብዛኞቹ ገንቢዎች ሊደርሱበት የሚችል ነበር።

ማስታወሻ፡ የሰነድ ዳታቤዞችን ከአምድ ዳታቤዝ፣ ከቁልፍ/ዋጋ ማከማቻዎች፣ ወይም ከአጠቃላይ የNoSQL ትርጉም ስር ከሚወድቁ ሌሎች በርካታ የውሂብ ማከማቻ ዓይነቶች ግራ እያጋባሁ ነው ብለው ሊያስቡ ይችላሉ። እና ልክ ነህ። በዚያን ጊዜ ግን ትርምስ ነገሠ። ሁሉም ሰው በ NoSQL ተጠምዷል, ሁሉም ሰው ሆኗል በፍጹም አስፈላጊ, ምንም እንኳን ብዙዎቹ በተለያዩ ቴክኖሎጂዎች ውስጥ ያለውን ልዩነት አላዩም. ለብዙዎች MongoDB ሆኗል። ተመሳሳይ NoSQL

እና ገንቢዎቹ በላዩ ላይ ወጡ። ማንኛውንም ችግር ለመፍታት በአስማት የሚለካው ረቂቅ የሌለው የውሂብ ጎታ ሀሳብ በጣም አጓጊ ነበር። እ.ኤ.አ. በ2014 አካባቢ፣ ከዓመት በፊት እንደ MySQL፣ Postgres ወይም SQL አገልጋይ ያሉ ተዛማጅ ዳታቤዝ በተጠቀመባቸው ቦታዎች ሁሉ MongoDB የውሂብ ጎታዎችን ማሰማራት የጀመሩ ይመስላል። ለምን ተብሎ ሲጠየቁ፣ “ይህ የድሩ መጠን ነው” ከሚለው ባናል “የእኔ መረጃ በጣም ልቅ በሆነ መልኩ የተዋቀረ እና ያለ ንድፍ ወደ ዳታቤዝ ውስጥ በሚገባ የሚስማማ ነው” ወደሚል መልስ ሊያገኙ ይችላሉ።

MongoDB እና በአጠቃላይ የመረጃ ቋቶች ሰነድ በባህላዊ የመረጃ ቋቶች ላይ በርካታ ችግሮችን እንደሚፈታ ማስታወስ ጠቃሚ ነው።

  • ጥብቅ እቅድበተዛማጅ ዳታቤዝ፣ በተለዋዋጭ የመነጨ ውሂብ ካለህ ወይ ብዙ የዘፈቀደ "የተለያዩ" የውሂብ አምዶችን ለመፍጠር፣ የውሂብ ጎሎችን እዚያ ውስጥ ለማንሳት ወይም ውቅረት ለመጠቀም ትገደዳለህ። ኢአቪ... ይህ ሁሉ ጉልህ ድክመቶች አሉት.
  • የመለጠጥ ችግርበአንድ አገልጋይ ላይ የማይመጥን በጣም ብዙ ውሂብ ካለ MongoDB በበርካታ ማሽኖች ላይ እንዲመዘን የሚያስችሉ ዘዴዎችን አቅርቧል።
  • ውስብስብ የወረዳ ማሻሻያዎች: ስደት የለም! በተዛማጅ ዳታቤዝ ውስጥ የውሂብ ጎታውን መዋቅር መለወጥ ትልቅ ችግር ሊሆን ይችላል (በተለይ ብዙ መረጃ በሚኖርበት ጊዜ)። MongoDB ሂደቱን በእጅጉ ማቃለል ችሏል። እና ሲሄዱ እና በጣም በፍጥነት በሚቀጥሉበት ጊዜ ወረዳውን ማዘመን እንዲችሉ በጣም ቀላል አድርጎታል።
  • የመቅዳት አፈጻጸምMongoDB አፈጻጸም ጥሩ ነበር፣በተለይ በአግባቡ ሲዋቀር። ብዙ ጊዜ የተተቸበት የሞንጎዲቢ ከሳጥን ውጪ ያለው ውቅር እንኳን አንዳንድ አስደናቂ የአፈጻጸም ቁጥሮች አሳይቷል።

ሁሉም አደጋዎች በእርስዎ ላይ ናቸው።

የMongoDB ሊሆኑ የሚችሉ ጥቅሞች እጅግ በጣም ብዙ ነበሩ፣በተለይ ለተወሰኑ የችግር ክፍሎች። ከላይ ያለውን ዝርዝር አውድ ሳይረዱ እና ያለ ልምድ ካነበቡ፣ MongoDB በእውነት አብዮታዊ ዲቢኤምኤስ ነው የሚል ስሜት ሊሰማዎት ይችላል። ብቸኛው ችግር ከላይ የተዘረዘሩት ጥቅማጥቅሞች ከብዙ ማስጠንቀቂያዎች ጋር መምጣታቸው ሲሆን አንዳንዶቹም ከዚህ በታች ተዘርዝረዋል.

በትክክል ለመናገር፣ ማንም በ10gen/MongoDB Inc. የሚከተለው እውነት አይደለም አይልም፣ እነዚህ ስምምነቶች ብቻ ናቸው።

  • የጠፉ ግብይቶችግብይቶች የበርካታ ተዛማጅ የውሂብ ጎታዎች ዋና ባህሪ ናቸው (ሁሉም አይደሉም፣ ግን አብዛኞቹ)። ግብይት ማለት ብዙ ክንዋኔዎችን በአቶሚክ ማከናወን ይችላሉ እና ውሂቡ ወጥነት ያለው መሆኑን ማረጋገጥ ይችላል። እርግጥ ነው፣ በNoSQL ዳታቤዝ፣ ግብይቱ በአንድ ሰነድ ውስጥ ሊሆን ይችላል፣ ወይም የግብይት ትርጉሞችን ለማግኘት ባለሁለት ደረጃ ቁርጠኝነትን መጠቀም ይችላሉ። ነገር ግን ይህን ተግባር እራስዎ መተግበር ይኖርብዎታል... ከባድ እና ጊዜ የሚወስድ ስራ ነው። ብዙውን ጊዜ በመረጃ ቋቱ ውስጥ ያለው መረጃ ልክ ባልሆኑ ግዛቶች ውስጥ እስኪያልቅ ድረስ ችግር እንዳለ አይገነዘቡም ምክንያቱም የኦፕሬሽኖች አተያይነት ዋስትና ሊሰጥ አይችልም። ማስታወሻ፡ ብዙ ሰዎች MongoDB 4.0 ባለፈው አመት ግብይቶችን እንዳስተዋወቀ ነግረውኛል፣ ግን ከተወሰነ ገደቦች ጋር። ከጽሁፉ የተወሰደው እርምጃ ተመሳሳይ ነው፡ ቴክኖሎጂው ምን ያህል ፍላጎቶችዎን እንደሚያሟላ ይገምግሙ።
  • የግንኙነት ታማኝነት ማጣት (የውጭ ቁልፎች)ውሂብዎ ግንኙነቶች ካሉት በመተግበሪያው ውስጥ መተግበር ይኖርብዎታል። እነዚህን ግንኙነቶች የሚያከብር የውሂብ ጎታ መኖሩ ከመተግበሪያው ብዙ ስራዎችን ይወስዳል እና ስለዚህ ፕሮግራመሮችዎ።
  • የውሂብ መዋቅርን የመተግበር ችሎታ ማጣትጥብቅ ንድፎች አንዳንድ ጊዜ ትልቅ ችግር ሊሆኑ ይችላሉ, ነገር ግን በጥበብ ከተጠቀሙ ጥሩ መረጃን ለማዋቀር ኃይለኛ ዘዴ ናቸው. እንደ MongoDB ያሉ የሰነድ ዳታቤዝዎች አስገራሚ የሼማ ተለዋዋጭነት ይሰጣሉ፣ነገር ግን ይህ ተለዋዋጭነት ውሂቡን ንፁህ የመጠበቅን ሀላፊነት ያስወግዳል። እነሱን ካልተንከባከቧቸው፣ በምትጠብቀው ፎርም ውስጥ ያልተከማቸ ውሂብ ለማግኘት በማመልከቻህ ውስጥ ብዙ ኮድ መፃፍ ትችላለህ። በኩባንያችን ውስጥ ብዙ ጊዜ እንደምንለው ቀላል ክር ... አፕሊኬሽኑ አንድ ቀን እንደገና ይፃፋል ፣ ግን ውሂቡ ለዘላለም ይኖራል። ማሳሰቢያ፡ MongoDB ሼማ ማረጋገጥን ይደግፋል፡ ጠቃሚ ነው ነገር ግን በተዛማጅ ዳታቤዝ ውስጥ እንዳለው አይነት ዋስትና አይሰጥም። በመጀመሪያ ደረጃ የሼማ ቼክ ማከል ወይም መቀየር በስብስቡ ውስጥ ያለውን መረጃ አይጎዳውም. በአዲሱ እቅድ መሰረት ውሂቡን ማዘመንዎን ማረጋገጥ የእርስዎ ምርጫ ነው። ይህ ለፍላጎትዎ በቂ መሆኑን ለራስዎ ይወስኑ.
  • ቤተኛ መጠይቅ ቋንቋ/የመሳሪያ ምህዳር ማጣትየ SQL መምጣት ፍፁም አብዮት ነበር እና ከዚያን ጊዜ ጀምሮ ምንም የተለወጠ ነገር የለም። በጣም ኃይለኛ ቋንቋ ነው፣ ግን ደግሞ በጣም ውስብስብ። የJSON ፍርስራሾችን ባካተተ አዲስ ቋንቋ የውሂብ ጎታ መጠይቆችን የመገንባት አስፈላጊነት ከSQL ጋር የመስራት ልምድ ባላቸው ሰዎች እንደ ትልቅ እርምጃ ይቆጠራል። ከ SQL ዳታቤዝ ጋር ከአይዲኢዎች እስከ የሪፖርት ማድረጊያ መሳሪያዎች ድረስ የሚገናኙ አጠቃላይ መሳሪያዎች አሉ። SQLን ወደማይደግፍ የውሂብ ጎታ መሄድ ማለት ከእነዚህ መሳሪያዎች ውስጥ አብዛኛዎቹን መጠቀም አይችሉም ወይም እነሱን ለመጠቀም መረጃውን ወደ SQL መተርጎም አለብዎት ይህም እርስዎ ከሚያስቡት በላይ ከባድ ሊሆን ይችላል.

ወደ MongoDB የዞሩ ብዙ ገንቢዎች የንግድ ልውውጦቹን በትክክል አልተረዱም እና ብዙውን ጊዜ እንደ ዋና የመረጃ ማከማቻቸው አድርገው ለመጫን በመጀመሪያ ጠልቀው ገቡ። ከዚህ በኋላ ተመልሶ መምጣት በሚያስደንቅ ሁኔታ አስቸጋሪ ነበር።

ከዚህ የተለየ ምን ሊደረግ ይችል ነበር?

ሁሉም በጭንቅላቱ ዘልለው ወደ ታች አልመታም። ነገር ግን ብዙ ፕሮጀክቶች MongoDB በቀላሉ በማይመጥንባቸው ቦታዎች ላይ ጭነዋል - እና ለብዙ አመታት አብረው መኖር አለባቸው። እነዚህ ድርጅቶች ጥቂት ጊዜ አሳልፈው በቴክኖሎጂ ምርጫቸው ዘዴ ቢያስቡ ኖሮ ብዙዎች የተለያዩ ምርጫዎችን ባደረጉ ነበር።

ትክክለኛውን ቴክኖሎጂ እንዴት መምረጥ ይቻላል? ለቴክኖሎጂ ግምገማ ስልታዊ ማዕቀፍ ለመፍጠር ብዙ ሙከራዎች ተደርገዋል፣ ለምሳሌ "ቴክኖሎጅዎችን ወደ ሶፍትዌር ድርጅቶች የማስተዋወቅ ማዕቀፍ" и "የሶፍትዌር ቴክኖሎጂዎችን ለመገምገም ማዕቀፍ", ግን ለእኔ ይህ አላስፈላጊ ውስብስብነት ይመስለኛል.

ሁለት መሰረታዊ ጥያቄዎችን በመጠየቅ ብዙ ቴክኖሎጂዎችን በብልህነት መገምገም ይቻላል። ችግሩ በኃላፊነት ስሜት ሊመልሱላቸው የሚችሉ ሰዎችን ማፈላለግ፣ ጊዜ ወስዶ መልሶቹን ለማግኘት እና ያለ አድልዎ ነው።

ምንም አይነት ችግር ካላጋጠመዎት, አዲስ መሳሪያ አያስፈልግዎትም. ነጥብ

ጥያቄ 1፡ የትኞቹን ችግሮች ለመፍታት እየሞከርኩ ነው?

ምንም አይነት ችግር ካላጋጠመዎት, አዲስ መሳሪያ አያስፈልግዎትም. ነጥብ መፍትሄ መፈለግ እና ከዚያም ችግር መፍጠር አያስፈልግም. አዲሱ ቴክኖሎጂ ካለህ ቴክኖሎጂ በተሻለ ሁኔታ የሚፈታው ችግር ካላጋጠመህ በስተቀር፣ እዚህ ምንም የምትወያይበት ነገር የለም። ይህን ቴክኖሎጂ ለመጠቀም ካሰብክ ሌሎች ሲጠቀሙበት ስላየሃቸው ምን ችግሮች እንደሚገጥሟቸው አስብ እና እነዚህ ችግሮች ካጋጠሙህ ጠይቅ። ቴክኖሎጂን መቀበል ቀላል ነው ምክንያቱም ሌሎች እየተጠቀሙበት ነው፣ ተግዳሮቱ እርስዎ ተመሳሳይ ችግሮች ያጋጥሙዎት እንደሆነ መረዳት ነው።

ጥያቄ 2፡ ምን ይጎድለኛል?

ይህ በእርግጠኝነት የበለጠ ከባድ ጥያቄ ነው ምክንያቱም ወደ ውስጥ መቆፈር እና ስለ አሮጌው እና አዲሱ ቴክኖሎጂ ጥሩ ግንዛቤ ሊኖርዎት ይችላል። አንዳንድ ጊዜ አዲስ ነገር እስካልገነቡ ድረስ ወይም ያ ልምድ ያለው ሰው እስካልተገኘዎት ድረስ በትክክል ሊረዱት አይችሉም።

አንዳቸውም ከሌሉዎት, የዚህን መሳሪያ ዋጋ ለመወሰን ስለሚችለው አነስተኛ ኢንቨስትመንት ማሰብ ምክንያታዊ ነው. እና አንዴ ኢንቬስት ካደረጉ, ውሳኔውን መቀልበስ ምን ያህል ከባድ ይሆናል?

ሰዎች ሁል ጊዜ ሁሉንም ነገር ያበላሻሉ

እነዚህን ጥያቄዎች በተቻለ መጠን በገለልተኝነት ለመመለስ ስትሞክር አንድ ነገር አስታውስ፡ የሰውን ተፈጥሮ መዋጋት አለብህ። ቴክኖሎጂን በብቃት ለመገምገም መሸነፍ ያለባቸው በርካታ የግንዛቤ አድልዎዎች አሉ። ጥቂቶቹን ብቻ እነሆ፡-

  • ብዙሃኑን የመቀላቀል ውጤት - ሁሉም ሰው ስለ እሱ ያውቃል ፣ ግን እሱን መዋጋት አሁንም ከባድ ነው። ቴክኖሎጂው በትክክል ከፍላጎቶችዎ ጋር የሚዛመድ መሆኑን ያረጋግጡ።
  • አዲስነት ውጤት - ብዙ ገንቢዎች ለረጅም ጊዜ ሲሠሩባቸው የቆዩትን ቴክኖሎጂዎች አቅልለው የመመልከት አዝማሚያ እና የአዲሱን ቴክኖሎጂ ጥቅሞች ግምት ውስጥ ያስገባሉ። ፕሮግራመሮች ብቻ አይደሉም፣ ሁሉም ሰው ለዚህ የግንዛቤ አድልዎ የተጋለጠ ነው።
  • የአዎንታዊ ባህሪያት ውጤት - ያለውን ለማየት እና የጎደለውን እናጣለን. እርስዎ በተፈጥሮው ለአዳዲስ ቴክኖሎጂዎች ከመጠን በላይ ዋጋ ስለሰጡ ብቻ ሳይሆን ጉድለቶቹንም ችላ ስለሚሉ ይህ ከአዲሱ ውጤት ጋር ሲጣመር ትርምስ ያስከትላል።.

የዓላማ ግምገማ ቀላል አይደለም፣ ነገር ግን ከስር ያለውን የግንዛቤ አድልዎ መረዳቱ የበለጠ ምክንያታዊ ውሳኔዎችን ለማድረግ ይረዳዎታል።

ማጠቃለያ

አዲስ ነገር በመጣ ቁጥር ሁለት ጥያቄዎች በታላቅ ጥንቃቄ መመለስ አለባቸው፡-

  • ይህ መሣሪያ እውነተኛ ችግር ይፈታል?
  • ንግዱን በደንብ ተረድተናል?

እነዚህን ሁለት ጥያቄዎች በልበ ሙሉነት መመለስ ካልቻላችሁ ጥቂት እርምጃዎችን ወደ ኋላ ወስደህ አስብ።

ስለዚህ MongoDB ትክክለኛው ምርጫ ነበር? በእርግጥ አዎ; እንደ አብዛኛዎቹ የምህንድስና ቴክኖሎጂዎች, ይህ በብዙ ሁኔታዎች ላይ የተመሰረተ ነው. እነዚህን ሁለት ጥያቄዎች ከመለሱት መካከል ብዙዎች ከMongoDB ተጠቃሚ ሆነዋል እና አሁንም እየሰሩ ነው። ላላደረጉት፣ በሂፕ ዑደቱ ውስጥ ስለመንቀሳቀስ ጠቃሚ እና በጣም የሚያሠቃይ ትምህርት እንደተማሩ ተስፋ አደርጋለሁ።

ማስተባበያ

ከMongoDB ጋር ፍቅርም ሆነ የጥላቻ ግንኙነት እንደሌለኝ ግልጽ ማድረግ እፈልጋለሁ። MongoDB ለመፍታት በጣም የሚስማማው ዓይነት ችግሮች አጋጥሞን አያውቅም። እኔ አውቃለሁ 10gen/MongoDB Inc. መጀመሪያ ላይ በጣም ደፋር ነበር፣ደህንነታቸው ያልተጠበቁ ነባሪዎችን በማዘጋጀት እና MongoDB በሁሉም ቦታ (በተለይ በ hackathons) ከማንኛውም ውሂብ ጋር ለመስራት እንደ ሁለንተናዊ መፍትሄ በማስተዋወቅ ነበር። ምናልባት መጥፎ ውሳኔ ነበር. ነገር ግን እዚህ የተገለጸውን አካሄድ ያረጋግጣል፡ እነዚህ ችግሮች በቴክኖሎጂው ላይ ላዩን ግምገማ ቢደረግም በፍጥነት ሊገኙ ይችላሉ።

ምንጭ: hab.com

አስተያየት ያክሉ