Numberly has been using both ScyllaDB and MongoDB in production for 5+ years. Learn which NoSQL database they rely on for different use cases and why. NoSQL დომინაში, ScyllaDB და MongoDB ორი განსხვავებული ცხოველები. MongoDB არ სჭირდება ინვესტიციას. მისი მარტივი მიღება და ფართო საზოგადოება / ეკოსიზმი გააკეთეს de facto სტანდარტი დაიწყოს ScyllaDB- ის უახლოეს მეტალი არქიტექტურა საშუალებას გაძლევთ შეუზღუდავი დაბალი თხევადი სიჩქარით მაღალი წვდომის დროს. ეს იძლევა აღდგენა გუნდები, როგორიცაა: და და ბევრი სხვები, რომლებიც გააგრძელებენ და დაეხმარებათ, რომ გაუზიაროთ მათი ხელმისაწვდომი მონაცემთა ბაზები. ნომერი კონტაქტი TRACTIAN Data Intensive პროგრამები რა თქმა უნდა, გთხოვთ, იხილეთ, თუ როგორ ეს ორი განსხვავებული მონაცემთა ბაზები შეიძლება ერთობლივი იყოს იგივე ტექნოლოგიური stack - როგორ ისინი ძირითადად განსხვავდება, და საუკეთესო გამოყენების შემთხვევაში თითოეული. ისევე, როგორც განსხვავებული ფეხსაცმელი მუშაობს უკეთესი იღებს მარტონი vs. scaling Mount Everest vs. შეესაბამება თქვენი ქარი, განსხვავებული მონაცემთა ბაზები მუშაობს უკეთესი განსხვავებული გამოყენების შემთხვევაში განსხვავებული სამუშაო სიჩქარები და განსხვავებული თხევადი / გადაღების მოთხოვნები. ასე რომ, როდესაც თქვენ უნდა გამოიყენოთ ScyllaDB vs. MongoDB და რატომ? ვიდრე უზრუნველყოფს მწარმოებლის perspective, ჩვენ გთავაზობთ შეტყობინებები open source მოყვანილი, რომელიც აქვს ფართო გამოცდილება გამოყენებით ScyllaDB და MongoDB წარმოების: Alexys Jacob, CTO Numberly. Alexys შეტყობინება მისი perspective at ScyllaDB Summit 2019, და ვიდეო იყო ტენდენცია მას შემდეგ. აქ არის სამი ძირითადი მიმოხილვა მისი დეტალური ტექნოლოგიური საუბარი: Scaling Writes უფრო რთულია MongoDB- ზე MongoDB ტოპოლოგია არის რეპლიკური კომპლექტი, რომელიც შედგება ერთი ძირითადი ღილაკს და ზოგადად მრავალფეროვანი წამყვანი ღილაკს (თუ ვფიქრობ, თხევადი რეპლიკები). მხოლოდ ძირითადი ღილაკს შეუძლია მონაცემები წაიკითხოთ. მას შემდეგ, რაც MongoDB- ზე მაქსიმალურად გააუმჯობესებთ vertical writing scaling, თქვენი მხოლოდ ვარიანტი გააუმჯობესოს ღილაკს იქნება, რაც გამოიყენება sharded cluster. ეს მოითხოვს ახალი რეპლიკების კომპლექტი დაამატოთ, რადგან ერთი რეპლიკების კომპლექტიში არ შეუძლია გაუმჯობესოს მრავალფეროვანი primaries. MongoDB- ის რეპლიკაციის კომპლექტიში მონაცემების გაზიარება მოითხოვს სპეციალური კლიენტების გამოყენება, რათა დააყენოთ მონაცემები, რომლებიც თითოეული რეპლიკაციის კომპლექტი არის პასუხისმგებელი, ისევე როგორც შექმნა მეტატარეის რეპლიკაციის კომპლექტი, რომელიც შეამოწმებს, რა მონაცემების კომპლექტი ცხოვრობს თითოეული რეპლიკაციის კომპლექტიში (დაწვრილებით, ქვემოთ გრაფიკაში ჩართული Blue Triangle). გარდა ამისა, კლიენტებს, რომლებიც MongoDB cluster- ს დაკავშირებულია, უნდა დაგეხმაროთ აირჩიოთ, რა ნომერი უნდა დააყენოთ და შენარჩუნოთ MongoDB- ის Smart Router- ის ინტენსიები (დაწვრილებით რეპლი MongoDB- ში წერილის ფართო ზრდა ყველა ამ ღონისძიებების მიღება იწვევს მაღალი ოპერაციული და შენარჩუნების ღირებულება, ისევე როგორც რესურსების გაქირავება, რადგან თქვენ არ შეგიძლიათ დააჭიროთ რეპლიკაციის ღონისძიებების IO- ს, რაც გაქირავებული MongoDB კლასის ყველაზე ძალისხმევა თქვენი საერთო ქონების ღირებულება, როგორც Alexys აჩვენა. ScyllaDB- სთვის, scaling წერილები უფრო მარტივია. მან გააჩნია, "ს ScyllaDB- ის მხარეს, თუ გსურთ დამატოს მეტი გადაცემა, თქვენ უბრალოდ დაამატოთ nodes. End of story". Alexys დააყენა ამ scaling thread: "მცდილობთ, რომ არ შექმნათ MongoDB კლასის, გთხოვთ! მე შეუძლიათ წაიკითხოთ წიგნი, რომელიც შეიცავს საფრანგეთის ისტორიები ამ საკითხზე. ძირითადი მიზეზი, რომ MongoDB არ შეუერთებს სამუშაო სიჩქარე CPUs. და sharding, მონაცემთა გაზიარება რეპლიკური კომპლექტი კლასის შორის გააკეთა ფართო სამუშაო (ბალანზერი). ეს balancer ყოველთვის მუშაობს, ყოველთვის ეძებს, თუ როგორ უნდა გაქვთ sharding, და ყოველთვის უზრუნველყოს, რომ მონაცემები გაზიარებულია და შეესაბამება კლასის მასშტაბით. ეს არ არის ბუნებრივი, რადგან ეს არ არის დაფუძნებული მუდმივი hashing. ეს არის რაღაც, რომელიც უნდა გაქვთ განკუთვნილია MongoDB უპირატესობა ფართო სიჩქარეზე, ხოლო ScyllaDB უპირატესობა მუდმივი სიჩქარეზე ფართო სიჩქარეზე ScyllaDB და MongoDB აქვს განსხვავებული Priorities when it comes to flexibility and performance. მონაცემთა მოდელიზაციის front-end- ში, MongoDB ჩვეულებრივ მხარს უჭერს geospatial კითხვებს, ტექსტური კითხვებს, შედუღების pipelines, გრაფიკულ კითხვებს და ცვლილებების ხაზებს. მიუხედავად იმისა, რომ ScyllaDB- ის – ფართო კოლადის მაღაზია (მაგ. key-value) – მხარს უჭერს მომხმარებლის განკუთვნილია ტიპის, counters და lightweight სავაჭრო, მონაცემთა მოდელიზაციის ვარიანტები უფრო შეზღუდულია, ვიდრე MongoDB- ში. Alexys აცხადებს, “მუშავების პერსპექტიულში, JSON- ის მოვლენით ინტერაქტაცია უბრალოდ უფრო ბუნებრივია, ვიდრე კონ ScyllaDB- ის მონაცემთა შეფუთვა, ScyllaDB- ის მონაცემთა შეფუთვა ეს მონაცემები შეესაბამება განკუთვნილია schema. ვარიანტი მოთხოვნები MongoDB- სთან ერთად კითხვები უფრო მარტივია, რადგან თქვენ უბრალოდ ფირფიტაცია და ინტეგრირება JSON- სთან ერთად. ეს ასევე უფრო ფართოა, უკეთესი ან უკეთესი. MongoDB- ს საშუალებას გაძლევთ გაძლევთ ნებისმიერი სახის კითხვები, მათ შორის კითხვები, რომლებიც წარმოების სამუშაო სიჩქარით suboptimal შესრულებას იწვევს. ScyllaDB- ს არ საშუალებას გაძლევთ. თუ თქვენ ცდილობენ, ScyllaDB- ს გაითვალისწინებს თქვენ. თუ თქვენ აირჩიეთ, რომ გააკეთოთ საკუთარი რისკით, შეგიძლიათ დააწკაპუნოთ კვალიფიკატორი, რომელიც ნიშნავს, რომ თქვენ ნამდვილად იცით, რა თქვენ გაქვთ. Alexys შეამციროს ძირითადი განსხვავებები განვითარებისა პრაქტიკაში: “MongoDB უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირატესობას უპირ მნიშვნელოვანია, რომ მაშინაც კი კითხვები, რომლებიც შეესაბამება შესრულების საუკეთესო პრაქტიკებს, MongoDB- ში განსხვავდება, ვიდრე ScyllaDB- ში. მიუხედავად იმისა, რომ თქვენ ხართ უარყოფითი, თქვენ არ მიიღებთ შესრულების ფანჯარა, რომელიც იწვევს ძირითადი სტრუქტურული განსხვავებები. ერთად, ScyllaDB და MongoDB არის დიდი NoSQL Combo ეს არ არის სიკვდილის მოთამაშე; ჩვენ ვართ ბედნიერი მომხმარებლები ორივე MongoDB და ScyllaDB, "დაწვრილებით Alexys. Numberly აირჩიოს საუკეთესო მონაცემთა ბაზა თითოეული გამოყენების შემთხვევაში ტექნიკური მოთხოვნებს. Numerly- ში, MongoDB- ს გამოიყენება ორი ტიპის გამოყენების შემთხვევაში: Web backend ერთად REST API და possibly მოქნილი გრაფიკები. რეალურ დროში კითხვები უპირატესობრივი ქცევის მონაცემების შესახებ. მაგალითად, ზოგიერთი Numberly- ის აპლიკაციები შეშფოთებულია ვებ-პრეტაციის მონაცემებით, რომელიც მათი კლიენტები იკავებს და გადაცემს (თუ კლიენტებს აქვს საკუთარი ინტენსიურად განვითარებული პროგრამები). Numberly- ს არ აქვს გზა, რომ ამ მონაცემებს მკაცრი გრაფიკას დააყენოთ, მაგრამ მას უნდა იყოს შეუძლიათ კითხვას და დამუშავებას. Alexys- ის სიტყვა, "MongoDB აქ არის საკმარისი; მისი მოქნილობა არის უპირატესობა, რადგან ეს საშუალებას გაძლევთ უბრალოდ შეინახოთ მონაცემებს გარშემო და კითხვას ადვილად." ScyllaDB გამოიყენება სამი ტიპის გამოყენების შემთხვევაში Numberly: Real-time latency-sensitive მონაცემთა pipelines. ეს მოიცავს ბევრი მონაცემთა გაფართოებას, სადაც არსებობს მრავალჯერადი მონაცემთა წყაროები, რომლებსაც საჭიროა რეალურ დროში მონაცემთა pipelines- ში შეესაბამება. Alexys- ს თქმით, "მაგავს, რომ ეს რთულია ... და თქვენ საჭიროა ძლიერი latency გარანტიები, რათა არ შეცვალონ SLAs [ფართო მომსახურების დონეზე შეესაბამება] პროგრამები და მონაცემთა პროცესები, რომ თქვენი კლიენტები დამოკიდებულია down the pipe." ნომერილი ასევე შეიცავს ბევრი ნომერილი და რეალური დროის სამუშაო სიჩქარით ScyllaDB- ში, რადგან ეს უზრუნველყოფს ორივე მსოფლიოს საუკეთესო (მაგალითად, როგორც ნომერილი ადრე გაუზიაროსა). "მართ Hive- ს ერთი გზა და MongoDB- ს სხვა. ჩვენ ყველაფერს ScyllaDB- ში და მისი მხარდაჭერად Hadoop- ის სახის ნომერიული სამუშაო სიჩქარით და რეალური დროის მილის სამუშაო სიჩქარით. " Web backends გამოიყენოს GraphQL, რომელიც მოიცავს მკაცრი schema. ზოგიერთი Numberly's web backends განახლებულია GraphQL. როდესაც მუშაობა schema-based APIs, ეს არის სრულყოფილი მნიშვნელობა აქვს schema-based მონაცემთა ბაზარზე დაბალი თარიღი და მაღალი ხელმისაწვდომობა. Alexys დასრულდა: "სამრავი ჩვენი backend ინჟინერი და frontend ინჟინერი, ასევე, აღიარებს ScyllaDB. ჩვენ ვხედავთ ტენდენცია ხალხი აღიარებს ScyllaDB, უფრო მეტი და უფრო ტექნიკური ხალხი კითხვებს, 'მე აქვს ამ გამოყენების შემთხვევაში, იქნება ScyllaDB კარგი შეესაბამება?' ყველაზე ხშირად, პასუხი არის 'და'. ასე რომ, ScyllaDB აღიარება იზრდება. MongoDB აღიარება ფართოა, მაგრამ MongoDB რა თქმა უნდა აქ იყოს, რადგან მას აქვს ზოგიერთი ნამდვილად საინტერესო ფუნქციები. უბრალოდ არ წავიდეთ, რომ შექმნათ MongoDB sharded cluster, გთხოვთ!" ბონუს: More Insights from Alexys Jacob Alexys არის უპირატესობად უპირატესობად დაეხმარება open source საზოგადოებებს, როგორც კოდი და კონფერენციის საუბარი. იხილეთ უფრო მეტი მისი შეტყობინებები at https://ultrabug.fr/ შესახებ ჩინეთი Dunlop Cynthia არის ScyllaDB- ს კონტაქტის სტრატეგიის წამყვანი დირექტორი და 20+ წლის განმავლობაში პროგრამული უზრუნველყოფის განვითარება და ხარისხის ინჟინერია.