ایا MongoDB عموما سم انتخاب و؟

ما پدې وروستیو کې دا وموندله Red Hat د سپوږمکۍ څخه د MongoDB ملاتړ لیرې کوي (وایې، د جواز بدلونونو له امله). دا ما فکر کولو ته اړ کړ چې په تیرو څو کلونو کې ما د مقالو یوه ډله لیدلې چې د MongoDB څومره خطرناک دی او هیڅوک باید هیڅکله ونه کاروي. مګر د دې وخت په جریان کې، MongoDB یو ډیر بالغ محصول شو. څه شوي دي؟ ایا ټول نفرت په حقیقت کې د نوي DBMS بازار موندنې په پیل کې د غلطیو له امله دی؟ یا خلک یوازې په غلط ځای کې MongoDB کاروي؟

که تاسو ناڅاپه احساس کوئ چې زه د MongoDB دفاع کوم، مهرباني وکړئ ولولئ اعلان د مقالې په پای کې.

نوی رجحان

زه د ډیرو کلونو لپاره د سافټویر صنعت کې یم د دې په پرتله چې ویل یې مناسب وي، مګر بیا هم زه یوازې د هغو رجحاناتو برخه یم چې زموږ صنعت ته زیان رسوي. ما د 4GL، AOP، Agile، SOA، Web 2.0، AJAX، بلاکچین زیاتوالی لیدلی دی ... لیست نه ختمیدونکی دی. هر کال نوي رجحانات شتون لري. ځینې ​​​​یې په چټکۍ سره له مینځه ځي، پداسې حال کې چې نور په بنسټیز ډول د سافټویر رامینځته کولو طریقه بدلوي.

د هر نوي رجحان په شاوخوا کې، یو ځانګړی عمومي جوش رامینځته کیږي: خلک یا پخپله کښتۍ ته ځي، یا د نورو لخوا رامینځته شوی شور ګوري - او د خلکو پیروي کوي. دا پروسه د ګارټینر لخوا کوډ شوې ده د هایپ سایکل. که څه هم د بحث وړ، دا ګراف تقریبا تشریح کوي چې د ټیکنالوژیو سره څه پیښیږي مخکې لدې چې دوی د کارولو لپاره ګټور شي.

مګر د وخت په تیریدو سره دلته شتون لري (یا دوهم راځي، لکه څنګه چې پدې حالت کې) یو نوی نوښت، یوازې د یو ځانګړي پلي کولو لخوا پرمخ وړل کیږي. د NoSQL په قضیه کې، هایپ په پراخه کچه د MongoDB د راتګ او هوا لوړوالي لخوا پرمخ وړل شوی و. MongoDB دا رجحان نه دی پیل کړی: په حقیقت کې، لوی انټرنیټ شرکتونو د لوی مقدار ډیټا پروسس کولو سره ستونزې پیل کړې، کوم چې د غیر اړونده ډیټابیسونو بیرته راستنیدو المل شو. عمومي حرکت د پروژو سره پیل شو لکه د ګوګل د Bigtable او د فیسبوک کیسندرا، مګر دا MongoDB و چې د NoSQL ډیټابیس خورا مشهور او د لاسرسي وړ تطبیق شو چې ډیری پراختیا کونکي ورته لاسرسی درلود.

یادونه: تاسو شاید فکر وکړئ چې زه د سند ډیټابیسونه د کالم ډیټابیسونو ، کلیدي / ارزښت پلورنځیو ، یا د ډیټا پلورنځیو کوم نورو ډولونو سره ګډوډ کوم چې د NoSQL عمومي تعریف لاندې راځي. او تاسو حق یاست. خو په هغه وخت کې ګډوډي حاکمه وه. هرڅوک د NoSQL سره مینه لري، دا هرڅه شوي په بشپړ ډول اړینه ده، که څه هم ډیری په مختلفو ټیکنالوژیو کې توپیرونه نه لیدل. د ډیری لپاره، MongoDB شوی دی سره مترادف دی NoSQL.

او پراختیا کونکي پدې باندې کود شوي. د سکیم بې ډیټابیس نظر چې په جادویی ډول د هرې ستونزې حل کولو لپاره اندازه کوي خورا زړه راښکونکی و. د 2014 په شاوخوا کې، داسې بریښي چې هرچیرې یو اړونده ډیټابیس لکه MySQL، Postgres یا SQL Server یو کال دمخه کارول شوی و، د MongoDB ډیټابیسونه ځای پرځای شوي. کله چې وپوښتل شول چې ولې، تاسو کولی شئ د بندیز څخه ځوابونه ترلاسه کړئ "دا د ویب پیمانه ده" تر ډیر فکري "زما ډاټا خورا نرم جوړښت لري او د سکیما پرته په ډیټابیس کې ښه فټ کوي."

دا مهمه ده چې په یاد ولرئ چې MongoDB، او په عمومي توګه د اسنادو ډیټابیسونه، د دودیزو اړیکو ډیټابیسونو سره یو شمیر ستونزې حل کوي:

  • سخت سکیم: د اړونده ډیټابیس سره، که تاسو په متحرک ډول تولید شوي ډاټا لرئ، تاسو مجبور یاست چې یا د تصادفي "مختلف" ډیټا کالمونو یوه ډله جوړه کړئ، هلته د ډیټا بلبونه فشار ورکړئ، یا یو ترتیب وکاروئ. EAV… دا ټول د پام وړ نیمګړتیاوې لري.
  • په اندازه کولو کې مشکل: که چیرې دومره ډیر معلومات شتون ولري چې دا په یو سرور کې مناسب نه وي، MongoDB میکانیزم وړاندیز کړی ترڅو دا په ډیری ماشینونو کې اندازه کړي.
  • پیچلي سرکټ تعدیلات: نه مهاجرتونه! په اړونده ډیټابیس کې، د ډیټابیس جوړښت بدلول یوه لویه ستونزه کیدی شي (په ځانګړې توګه کله چې ډیری ډاټا وي). MongoDB توانیدلی چې پروسه خورا ساده کړي. او دا یې دومره اسانه کړې چې تاسو کولی شئ یوازې د تګ پرمهال سکیما تازه کړئ او واقعیا ګړندي حرکت وکړئ.
  • فعالیت ولیکئ: د MongoDB فعالیت ښه و، په ځانګړې توګه کله چې په سمه توګه تنظیم شوی. حتی د MongoDB د بکس څخه بهر ترتیب، د کوم لپاره چې دا ډیری وخت نیوکه شوې، د فعالیت ځینې اغیزمن ارقام وښودل.

ټول خطرونه په تاسو دي

د MongoDB احتمالي ګټې خورا ډیرې وې، په ځانګړې توګه د ستونزو د ځینو طبقو لپاره. که تاسو پورتني لیست ولولئ پرته لدې چې شرایط درک کړئ او تجربه ونه لرئ ، نو تاسو ممکن دا تاثر ترلاسه کړئ چې MongoDB واقعیا یو انقلابي DBMS دی. یوازینۍ ستونزه دا وه چې پورته لست شوي ګټې د یو شمیر احتیاطونو سره راغلې چې ځینې یې لاندې لیست شوي دي.

د عادلانه کیدو لپاره، هیڅوک په 10gen/MongoDB Inc. دا به ونه ویل شي چې لاندې ریښتیا ندي، دا یوازې جوړجاړی دي.

  • د راکړې ورکړې له لاسه ورکولځواب: راکړې ورکړې د ډیری ارتباطي ډیټابیسونو اصلي ځانګړتیا ده (ټول نه، مګر ډیری). د لیږد معنی دا ده چې تاسو کولی شئ په اټومي ډول ډیری عملیات ترسره کړئ او ډاډ ترلاسه کړئ چې ډاټا ثابت پاتې کیږي. البته، د NoSQL ډیټابیس سره، لیږد کولی شي په یو سند کې وي، یا تاسو کولی شئ د لیږد سیمانټیک ترلاسه کولو لپاره دوه مرحلې ژمنې وکاروئ. مګر تاسو باید دا فعالیت پخپله پلي کړئ ... کوم چې کیدی شي یو ستونزمن او د وخت اخیستلو کار وي. ډیری وختونه تاسو ستونزه نه پوهیږئ تر هغه چې تاسو ونه ګورئ چې په ډیټابیس کې ډاټا غلط حالتونو ته ځي ځکه چې د عملیاتو اټوميیت تضمین کول ناممکن دي. یادونه: ما ته د ډیری لخوا ویل شوي چې تیر کال په MongoDB 4.0 کې لیږدونه معرفي شوي، مګر د ځینو محدودیتونو سره. د مقالې پایله ورته پاتې ده: ارزونه وکړئ چې ټیکنالوژي ستاسو اړتیاو سره څنګه سمون لري.
  • د اړیکو بشپړتیا له لاسه ورکول (بهرني کلیدونه): که ستاسو ډاټا اړیکې ولري، نو تاسو به یې په غوښتنلیک کې پلي کړئ. د ډیټابیس درلودل چې دې اړیکو ته درناوی کوي به د غوښتنلیک څخه ډیر کار واخلي او له همدې امله ستاسو په برنامو کې.
  • د معلوماتو جوړښت پلي کولو کې پاتې راتلل: سخت سکیمونه کله ناکله لویه ستونزه کیدی شي، مګر دا د ښه معلوماتو جوړښت لپاره یو پیاوړی میکانیزم هم دی که چیرې په هوښیارۍ سره وکارول شي. د سند ډیټابیسونه لکه MongoDB د نه منلو وړ سکیما انعطاف چمتو کوي ، مګر دا انعطاف د ډیټا پاک ساتلو مسؤلیت په غاړه اخلي. که تاسو د دوی پاملرنه ونکړئ، نو تاسو به په خپل غوښتنلیک کې ډیری کوډ ولیکئ ترڅو د ډیټا حساب لپاره چې تاسو یې تمه لرئ په هغه فارم کې زیرمه شوي ندي. لکه څنګه چې دوی ډیری وختونه زموږ په شرکت کې وايي ساده تار ... غوښتنلیک به یوه ورځ بیا لیکل شي، مګر ډاټا به د تل لپاره ژوند وکړي. یادونه: MongoDB د سکیما تایید ملاتړ کوي، کوم چې ګټور دی مګر د اړونده ډیټابیس په څیر ورته تضمین نه وړاندې کوي. تر ټولو لومړی، د سکیما اعتبار زیاتول یا بدلول په ټولګه کې موجوده ډاټا اغیزه نه کوي. تاسو باید ډاډ ترلاسه کړئ چې تاسو د نوي سکیما مطابق ډاټا تازه کړئ. د ځان لپاره پریکړه وکړئ که دا ستاسو د اړتیاو لپاره کافي وي.
  • د خپلې پوښتنې ژبه / د وسیلې اکوسیستم له لاسه ورکول: د SQL راتګ یو مطلق انقلاب و، او له هغه وخت راهیسې هیڅ بدلون نه دی راغلی. دا یوه په زړه پورې پیاوړې ژبه ده، مګر خورا پیچلې هم ده. په نوې ژبه کې د ډیټابیس پوښتنو رامینځته کولو اړتیا چې د JSON ټوټې لري، د هغو خلکو لخوا یو لوی ګام ګڼل کیږي چې د SQL سره تجربه لري. د وسیلو یو بشپړ کائنات شتون لري چې د SQL ډیټابیسونو سره متقابل عمل کوي ، له IDEs څخه د راپور ورکولو وسیلو پورې. ډیټابیس ته تلل چې د SQL ملاتړ نه کوي پدې معنی چې تاسو نشئ کولی دا ډیری وسیلې وکاروئ ، یا تاسو اړتیا لرئ د کارولو لپاره ډیټا SQL ته واړوئ ، کوم چې ستاسو فکر کولو څخه ډیر ستونزمن کیدی شي.

ډیری پراختیا کونکي چې مونګو ډی بی ته یې مخه کړې واقعیا د سوداګرۍ بندونو نه پوهیدل ، او ډیری وختونه یې د دوی د لومړني ډیټا پلورنځي په توګه تنظیم کولو لپاره سر په سر کړي. له هغې وروسته، دا ډیری وختونه د بیرته ستنیدلو لپاره خورا ستونزمن کار و.

څه توپیر کولی شو؟

نه هرڅوک لومړی سر وخوځاوه او لاندې ته وغورځید. مګر یو څو پروژو د MongoDB بیس نصب کړی چیرې چې دا مناسب نه و - او دوی به د ډیرو کلونو لپاره ورسره ژوند وکړي. که دغو سازمانونو یو څه وخت نیولی وای چې په میتودیک ډول د دوی ټیکنالوژۍ انتخابونه په پام کې ونیسو، ډیری به یو بل انتخاب کړی وای.

څنګه سمه ټیکنالوژي غوره کړئ؟ د ټیکنالوژۍ ارزونې لپاره د سیسټمیک چوکاټ رامینځته کولو لپاره ډیری هڅې شوي، لکه "د سافټویر سازمانونو کې د ټیکنالوژیو پلي کولو لپاره چوکاټ" и "د سافټویر ټیکنالوژیو ارزولو لپاره چوکاټ"، مګر ماته داسې ښکاري چې دا یو غیر ضروري پیچلتیا ده.

ډیری ټیکنالوژۍ یوازې د دوه اساسي پوښتنو په کولو سره په هوښیارۍ سره ارزښت کیدی شي. ستونزه د خلکو په موندلو کې ده چې کولی شي دوی ته په مسؤلیت سره ځواب ووایی، د ځوابونو موندلو لپاره وخت نیسي او له تعصب پرته.

که تاسو د کومې ستونزې سره مخ نه یاست، تاسو نوي وسیلې ته اړتیا نلرئ. ډاټ.

1 پوښتنه: زه د کومې ستونزې حل کولو هڅه کوم؟

که تاسو د کومې ستونزې سره مخ نه یاست، تاسو نوي وسیلې ته اړتیا نلرئ. ډاټ. اړتیا نشته چې د حل په لټه کې شئ او بیا د ستونزې سره مخ شئ. پرته لدې چې تاسو د یوې ستونزې سره مخ یاست چې نوې ټیکنالوژي ستاسو د موجوده ټیکنالوژۍ څخه د پام وړ ښه حل نه کوي ، نو دلته د بحث کولو لپاره هیڅ شی شتون نلري. که تاسو د دې ټیکنالوژۍ کارولو په اړه فکر کوئ ځکه چې تاسو لیدلي چې نور یې کاروي، د هغو ستونزو په اړه فکر وکړئ چې دوی یې لري او پوښتنه وکړئ چې ایا تاسو دا ستونزې لرئ. د ټیکنالوژۍ منل اسانه دي ځکه چې نور یې کاروي، مشکل دا دی چې پوه شئ که تاسو ورته مسلو سره مخ یاست.

2 پوښتنه: زه څه له لاسه ورکوم؟

دا یقینا یوه ډیره ستونزمنه پوښتنه ده، ځکه چې تاسو باید زاړه او نوې ټیکنالوژي دواړه ښه وخورئ او پوه شئ. ځینې ​​​​وختونه تاسو په ریښتیا نه شئ کولی په یو نوي پوه شئ تر هغه چې تاسو د هغې سره یو څه جوړ کړی یا د دې تجربې سره همکار نه وي.

که تاسو یو هم نه لرئ، نو دا د دې معنی لري چې د دې وسیلې ارزښت ټاکلو لپاره د لږترلږه احتمالي پانګوونې په اړه فکر وکړئ. او که تاسو پانګه اچونه وکړئ، نو دا به څومره ستونزمن وي چې پریکړه بیرته واخلي؟

خلک تل هرڅه خرابوي

د امکان تر حده د دې پوښتنو د ځوابولو په هڅه کې، یو شی په یاد ولرئ: تاسو باید د انساني فطرت سره مبارزه وکړئ. یو شمیر ادراکي تعصبونه شتون لري چې باید د ټیکنالوژۍ مؤثره ارزونه کولو لپاره له مینځه ویسي. دلته یوازې یو څو دي:

  • د اکثریت سره یوځای کیدو اغیزه هرڅوک د هغه په ​​​​اړه پوهیږي، مګر بیا هم د هغه سره مبارزه سخته ده. یوازې ډاډ ترلاسه کړئ چې ټیکنالوژي واقعیا ستاسو اصلي اړتیاو سره سمون لري.
  • د نوښت اغیز ډیری پراختیا کونکي د ټیکنالوژیو کم ارزوي چې دوی د اوږدې مودې لپاره کار کوي او د نوي ټیکنالوژۍ ګټې ډیر ارزوي. نه یوازې پروګرام کونکي، هرڅوک د دې ادراکي تعصب تابع دي.
  • مثبت خاصیت اغیزه موږ د څه شی لیدلو ته لیوالتیا لرو او هغه څه چې نه دي له لاسه ورکوو. دا کولی شي د ګډوډۍ لامل شي، د نوښت اغیز سره یوځای، ځکه چې تاسو نه یوازې په طبیعي توګه نوې ټیکنالوژۍ ته ارزښت ورکوئ، بلکې د هغې نیمګړتیاوې هم له پامه غورځوئ..

د هدف ارزونه اسانه نه ده، مګر د اصلي ادراکي تعصبونو پوهیدل به تاسو سره د لا منطقي پریکړې کولو کې مرسته وکړي.

لنډیز

کله چې یو نوښت څرګند شي، دوه پوښتنې باید په ډیر احتیاط سره ځواب شي:

  • ایا دا وسیله ریښتینې ستونزه حل کوي؟
  • ایا موږ د سوداګرۍ بندونو په پوهیدو کې ښه یاست؟

که تاسو په ډاډه توګه دغو دوو پوښتنو ته ځواب نشئ کولی، یو څو ګامونه بیرته واخلئ او فکر وکړئ.

نو ایا لا مونګو ډی بی عموما سم انتخاب و؟ البته چې هو؛ لکه څنګه چې د ډیری انجینرۍ ټیکنالوژیو سره ، دا په ډیری فاکتورونو پورې اړه لري. د هغو کسانو په منځ کې چې دغو دوو پوښتنو ته یې ځواب ورکړی، ډیری یې د MongoDB څخه ګټه پورته کړې او دې کار ته دوام ورکوي. ستاسو د هغو کسانو لپاره چې نه یې دي، زه هیله لرم چې تاسو د هایپ دورې څخه د حرکت کولو په اړه یو ارزښتناک او ډیر دردناک درس زده کړی وي.

ردول

زه غواړم روښانه کړم چې زه نه د MongoDB سره مینه لرم او نه نفرت. موږ یوازې هغه ډول ستونزې نه درلودې چې مونګو ډی بی د حل کولو لپاره غوره دی. زه پوهیږم 10gen/MongoDB Inc. په لومړي سر کې په خورا زړورتیا سره عمل وکړ، د ناامنه ډیفالټ تنظیم کول او د هر ډیټا سره کار کولو لپاره د یو بند حل په توګه هرچیرې (په ځانګړې توګه په هیکاتون کې) مونګو ډی بی ته وده ورکول. دا شاید یوه بده پریکړه وه. مګر دا دلته تشریح شوي چلند تاییدوي: دا ستونزې حتی د ټیکنالوژۍ سطحې ارزونې سره خورا ګړندي کشف کیدی شي.

سرچینه: www.habr.com

Add a comment