Διατίθεται DBMS MongoDB 5.0 με προσανατολισμό εγγράφων

Παρουσιάζεται η κυκλοφορία του DBMS MongoDB 5.0 με προσανατολισμό εγγράφων, το οποίο καταλαμβάνει μια θέση μεταξύ γρήγορων και επεκτάσιμων συστημάτων που λειτουργούν δεδομένα σε μορφή κλειδιού/τιμής και σχεσιακών DBMS που είναι λειτουργικά και εύκολα στη διαμόρφωση ερωτημάτων. Ο κώδικας MongoDB είναι γραμμένος σε C++ και διανέμεται με την άδεια SSPL, η οποία βασίζεται στην άδεια AGPLv3, αλλά δεν είναι ανοιχτός, καθώς περιέχει μια μεροληπτική απαίτηση να παρέχεται υπό την άδεια SSPL όχι μόνο ο ίδιος ο κώδικας της εφαρμογής, αλλά και η πηγή κωδικός όλων των στοιχείων που εμπλέκονται στην παροχή της υπηρεσίας cloud.

Το MongoDB υποστηρίζει την αποθήκευση εγγράφων σε μορφή JSON, έχει μια αρκετά ευέλικτη γλώσσα για τη δημιουργία ερωτημάτων, μπορεί να δημιουργήσει ευρετήρια για διάφορα αποθηκευμένα χαρακτηριστικά, παρέχει αποτελεσματικά αποθήκευση μεγάλων δυαδικών αντικειμένων, υποστηρίζει την καταγραφή λειτουργιών για αλλαγή και προσθήκη δεδομένων στη βάση δεδομένων, μπορεί λειτουργεί σύμφωνα με το παράδειγμα Map/Reduce, υποστηρίζει την αναπαραγωγή και την κατασκευή διαμορφώσεων με ανοχή σε σφάλματα.

Το MongoDB διαθέτει ενσωματωμένα εργαλεία για την παροχή διαμοιρασμού (διανομή ενός συνόλου δεδομένων σε διακομιστές με βάση ένα συγκεκριμένο κλειδί), σε συνδυασμό με αναπαραγωγή, επιτρέποντάς σας να δημιουργήσετε ένα οριζόντια κλιμακούμενο σύμπλεγμα αποθήκευσης στο οποίο δεν υπάρχει ένα μόνο σημείο αποτυχίας (η αποτυχία οποιουδήποτε κόμβου δεν επηρεάζει τη λειτουργία της βάσης δεδομένων), αυτόματη ανάκτηση μετά από αποτυχία και μεταφορά φορτίου από αποτυχημένο κόμβο. Η επέκταση ενός συμπλέγματος ή η μετατροπή ενός διακομιστή σε ένα σύμπλεγμα γίνεται χωρίς διακοπή της βάσης δεδομένων με απλή προσθήκη νέων μηχανημάτων.

Χαρακτηριστικά της νέας έκδοσης:

  • Προστέθηκαν συλλογές για δεδομένα με τη μορφή χρονοσειρών (συλλογές χρονοσειρών), βελτιστοποιημένες για αποθήκευση τμημάτων τιμών παραμέτρων που καταγράφονται σε συγκεκριμένα διαστήματα (χρόνος και ένα σύνολο τιμών που αντιστοιχούν σε αυτόν τον χρόνο). Η ανάγκη αποθήκευσης τέτοιων δεδομένων προκύπτει σε συστήματα παρακολούθησης, οικονομικές πλατφόρμες και συστήματα για καταστάσεις αισθητήρων δημοσκόπησης. Η εργασία με δεδομένα χρονοσειρών πραγματοποιείται όπως συμβαίνει με τις συνηθισμένες συλλογές εγγράφων, αλλά τα ευρετήρια και η μέθοδος αποθήκευσης για αυτά βελτιστοποιούνται λαμβάνοντας υπόψη τη χρονική αναφορά, η οποία μπορεί να μειώσει σημαντικά την κατανάλωση χώρου στο δίσκο, να μειώσει τις καθυστερήσεις στην εκτέλεση ερωτημάτων και να ενεργοποιήσει δεδομένα σε πραγματικό χρόνο ανάλυση.

    Το MongoDB αντιμετωπίζει αυτές τις συλλογές ως εγγράψιμες, μη υλοποιημένες προβολές που βασίζονται σε εσωτερικές συλλογές που, όταν εισάγονται, ομαδοποιούν αυτόματα δεδομένα χρονοσειρών σε μια βελτιστοποιημένη μορφή αποθήκευσης. Σε αυτήν την περίπτωση, κάθε εγγραφή βάσει χρόνου αντιμετωπίζεται ως ξεχωριστό έγγραφο όταν ζητηθεί. Τα δεδομένα ταξινομούνται αυτόματα και ευρετηριάζονται ανά ώρα (δεν χρειάζεται να δημιουργηθούν ρητά χρονικά ευρετήρια).

  • Προστέθηκε υποστήριξη για τελεστές παραθύρων (αναλυτικές λειτουργίες) που σας επιτρέπουν να εκτελείτε ενέργειες με ένα συγκεκριμένο σύνολο εγγράφων στη συλλογή. Σε αντίθεση με τις συγκεντρωτικές συναρτήσεις, οι συναρτήσεις παραθύρου δεν συμπτύσσουν το ομαδοποιημένο σύνολο, αλλά μάλλον συγκεντρώνουν με βάση τα περιεχόμενα ενός "παραθύρου" που περιλαμβάνει ένα ή περισσότερα έγγραφα από το σύνολο αποτελεσμάτων. Για να χειριστείτε ένα υποσύνολο εγγράφων, προτείνεται ένα νέο στάδιο $setWindowFields, με το οποίο μπορείτε, για παράδειγμα, να προσδιορίσετε τις διαφορές μεταξύ δύο εγγράφων σε μια συλλογή, να υπολογίσετε τις ταξινομήσεις πωλήσεων και να αναλύσετε πληροφορίες σε σύνθετες χρονοσειρές.
  • Προστέθηκε υποστήριξη για εκδόσεις API, η οποία σας επιτρέπει να συνδέετε μια εφαρμογή σε μια συγκεκριμένη κατάσταση API και να εξαλείφετε τους κινδύνους που σχετίζονται με πιθανή παραβίαση της συμβατότητας προς τα πίσω κατά τη μετεγκατάσταση σε νέες εκδόσεις DBMS. Η έκδοση API διαχωρίζει τον κύκλο ζωής της εφαρμογής από τον κύκλο ζωής του DBMS και επιτρέπει στους προγραμματιστές να κάνουν αλλαγές στην εφαρμογή όταν υπάρχει ανάγκη χρήσης νέων λειτουργιών και όχι κατά τη μετεγκατάσταση σε μια νέα έκδοση του DBMS.
  • Προστέθηκε υποστήριξη για τον μηχανισμό Live Resharding, ο οποίος σας επιτρέπει να αλλάζετε τα πλήκτρα θραυσμάτων που χρησιμοποιούνται για την τμηματοποίηση εν κινήσει χωρίς να σταματήσετε το DBMS.
  • Οι δυνατότητες κρυπτογράφησης πεδίων στην πλευρά του πελάτη έχουν επεκταθεί (Κρυπτογράφηση επιπέδου πεδίου από πλευράς πελάτη). Είναι πλέον δυνατή η εκ νέου διαμόρφωση των φίλτρων ελέγχου και η περιστροφή των πιστοποιητικών x509 χωρίς διακοπή του DBMS. Προστέθηκε υποστήριξη για τη διαμόρφωση της σουίτας κρυπτογράφησης για TLS 1.3.
  • Προτείνεται ένα νέο κέλυφος γραμμής εντολών, το MongoDB Shell (mongosh), το οποίο αναπτύσσεται ως ξεχωριστό έργο, γραμμένο σε JavaScript χρησιμοποιώντας την πλατφόρμα Node.js και διανέμεται με την άδεια Apache 2.0. Το MongoDB Shell καθιστά δυνατή τη σύνδεση στο DBMS, την αλλαγή ρυθμίσεων και την αποστολή ερωτημάτων. Υποστηρίζει την έξυπνη αυτόματη συμπλήρωση για την εισαγωγή μεθόδων, εντολών και εκφράσεων MQL, επισήμανση σύνταξης, βοήθεια με βάση τα συμφραζόμενα, ανάλυση μηνυμάτων σφάλματος και τη δυνατότητα επέκτασης της λειτουργικότητας μέσω πρόσθετων. Το παλιό περιτύλιγμα CLI "mongo" έχει καταργηθεί και θα αφαιρεθεί σε μελλοντική κυκλοφορία.
    Διατίθεται DBMS MongoDB 5.0 με προσανατολισμό εγγράφων
  • Έχουν προστεθεί νέοι τελεστές: $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate και $rand.
  • Διασφαλίζει ότι χρησιμοποιούνται ευρετήρια κατά τη χρήση των τελεστών $eq, $lt, $lte, $gt και $gte στην έκφραση $expr.
  • Οι εντολές aggregate, find, findAndModify, update, delete και οι μέθοδοι db.collection.aggregate(), db.collection.findAndModify(), db.collection.update() και db.collection.remove() υποστηρίζουν πλέον το "let ” επιλογή για να ορίσετε μια λίστα μεταβλητών που κάνουν τις εντολές πιο ευανάγνωστες διαχωρίζοντας τις μεταβλητές από το σώμα του αιτήματος.
  • Οι λειτουργίες Εύρεση, μέτρηση, διακριτή, συγκεντρωτική, mapReduce, listCollections και listIndexes δεν αποκλείονται πλέον εάν εκτελείται παράλληλα μια λειτουργία που κλειδώνει αποκλειστικό σε μια συλλογή εγγράφων.
  • Ως μέρος μιας πρωτοβουλίας για την κατάργηση πολιτικά εσφαλμένων όρων, η εντολή isMaster και η μέθοδος db.isMaster() μετονομάστηκαν hello και db.hello().
  • Το σχήμα αρίθμησης των εκδόσεων έχει αλλάξει και έχει γίνει μετάβαση σε ένα προβλέψιμο πρόγραμμα κυκλοφορίας. Μία φορά το χρόνο θα υπάρχει μια σημαντική έκδοση (5.0, 6.0, 7.0), κάθε τρεις μήνες ενδιάμεσες εκδόσεις με νέες δυνατότητες (5.1, 5.2, 5.3) και, όπως απαιτείται, διορθωτικές ενημερώσεις με διορθώσεις σφαλμάτων και ευπάθειες (5.1.1, 5.1.2 .5.1.3, 5.1). Οι ενδιάμεσες εκδόσεις θα δημιουργήσουν λειτουργικότητα για την επόμενη μεγάλη έκδοση, π.χ. Τα MongoDB 5.2, 5.3 και 6.0 θα παρέχουν νέες δυνατότητες για την κυκλοφορία του MongoDB XNUMX.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο