[Παίζει μουσική] RICK Houlihan: Εντάξει. Γεια σε όλους. Το όνομά μου είναι ο Rick Houlihan. Είμαι ένας ανώτερος κύρια λύσεις αρχιτέκτονα στο AWS. Θα επικεντρωθεί στην NoSQL και Τεχνολογίες DynamoDB. Είμαι εδώ σήμερα για να μιλήσω για την Είσαι λίγο για εκείνους. Φόντο μου είναι κυρίως σε επίπεδο δεδομένων. Πέρασα μισή ανάπτυξή μου καριέρα γράφοντας βάση δεδομένων, πρόσβαση σε δεδομένα, λύσεις για διάφορες εφαρμογές. Έχω πάει σε Cloud virtualization για περίπου 20 χρόνια. Έτσι, πριν από το σύννεφο στο σύννεφο, συνηθίζαμε να αποκαλούμε πληροφορικής χρησιμότητας. Και η ιδέα ήταν, είναι σαν να PG & E, πληρώνετε για ό, τι χρησιμοποιείτε. Σήμερα λέμε το σύννεφο. Αλλά όλα αυτά τα χρόνια, έχω εργαστεί για μια-δυο εταιρείες δεν έχετε ίσως ακούσει. Αλλά έχω συντάξει έναν κατάλογο των τεχνικών επιτεύγματα, νομίζω ότι θα ήθελα να πω. Έχω οκτώ πατέντες στα συστήματα Cloud virtualization, το σχεδιασμό μικροεπεξεργαστή, πολύπλοκη επεξεργασία περίπτωση, και σε άλλους τομείς, όπως καλά. Έτσι, αυτές τις μέρες, έχω επικεντρωθεί κυρίως σε NoSQL τεχνολογίες και η επόμενη γενιά βάση δεδομένων. Και αυτό είναι γενικά τι Πάω να είναι εδώ να σου μιλάει σήμερα για. Έτσι τι μπορείτε να περιμένετε από αυτή τη σύνοδο, θα περάσουν από μια σύντομη Ιστορία της επεξεργασίας των δεδομένων. Είναι πάντα χρήσιμο να κατανοήσουν από πού ήρθαμε και γιατί είμαστε εδώ που είμαστε. Και θα μιλήσουμε λίγο bit για την τεχνολογία NoSQL από μια θεμελιώδη άποψη. Θα μπει σε κάποια από τα εσωτερικά DynamoDB. DynamoDB είναι AWS είναι χωρίς άρωμα. Είναι μια πλήρους διαχείρισης και φιλοξενείται λύση NoSQL. Και θα μιλήσουμε λίγο για το τραπέζι δομή, APIs, τύποι δεδομένων, δείκτες, και μερικά από τα εσωτερικά αυτής της τεχνολογίας DynamoDB. Θα μπει σε κάποια του σχεδιασμού πρότυπα και τις βέλτιστες πρακτικές. Θα μιλήσουμε για το πώς θα χρησιμοποιούν αυτή την τεχνολογία για μερικούς της σημερινής εφαρμογών. Και τότε θα μιλήσουμε λίγο σχετικά με την εξέλιξη ή την εμφάνιση ενός νέου προτύπου για τον προγραμματισμό που ονομάζεται event-driven εφαρμογές και πώς DynamoDB παίζει σε αυτό, καθώς και. Και θα σας αφήσει ένα μικρό κομμάτι της μια αρχιτεκτονική αναφορά συζήτηση ώστε να μπορούμε να μιλήσουμε για μερικά από οι τρόποι που μπορείτε να χρησιμοποιήσετε DynamoDB. Έτσι, η πρώτη off-- αυτό είναι ένα ερώτημα Ακούω πολλά είναι, τι είναι μια βάση δεδομένων. Πολλοί άνθρωποι νομίζουν ότι ξέρετε τι είναι μια βάση δεδομένων. Αν έχετε το Google, θα δείτε αυτό. Είναι ένα δομημένο σύνολο των δεδομένων που τηρούνται σε έναν υπολογιστή, ειδικά μια που είναι προσβάσιμη με διάφορους τρόπους. Υποθέτω ότι είναι μια καλή ορισμός ενός σύγχρονου βάσης δεδομένων. Αλλά δεν αρέσει, γιατί υπονοεί μια κάποια πράγματα. Συνεπάγεται δομή. Και αυτό σημαίνει ότι είναι σε έναν υπολογιστή. Και οι βάσεις δεδομένων δεν το έκανε υπάρχουν πάντα στους υπολογιστές. Βάσεις δεδομένων υπήρχαν στην πραγματικότητα με πολλούς τρόπους. Έτσι, ένας καλύτερος ορισμός της έννοιας της βάση δεδομένων είναι κάτι σαν αυτό. Μια βάση δεδομένων είναι μια οργανωμένη μηχανισμό για την αποθήκευση, τη διαχείριση, και ανάκτηση πληροφοριών. Αυτό είναι από το About.com. Έτσι μου αρέσει αυτό, γιατί πραγματικά συνομιλίες για μια βάση δεδομένων είναι μια αποθήκη, μια αποθήκη πληροφορίες, δεν είναι απαραίτητα κάτι που κάθεται σε έναν υπολογιστή. Και σε όλη την ιστορία, εμείς δεν είχαν πάντα τους υπολογιστές. Τώρα, αν ρωτήσετε τον μέσο όρο προγραμματιστής σήμερα τι είναι μια βάση δεδομένων, αυτή είναι η απάντηση που παίρνω. Κάπου μπορώ να κολλήσει τα πράγματα. Δικαίωμα? Και είναι αλήθεια. Αλλά είναι ατυχές. Επειδή η βάση δεδομένων είναι πραγματικά το θεμέλιο της σύγχρονης app. Είναι το θεμέλιο της κάθε εφαρμογής. Και πώς θα οικοδομήσουμε ότι βάση δεδομένων, πώς να δομήσετε ότι τα δεδομένα πρόκειται να υπαγορεύσει τον τρόπο που εφαρμογή εκτελεί όπως εσείς κλίμακα. Έτσι, πολλά από τη δουλειά μου σήμερα ασχολείται με ό, τι συμβαίνει όταν οι προγραμματιστές αυτή την προσέγγιση και ασχολείται με τα επακόλουθα μιας εφαρμογής που Τώρα κλιμάκωση πέρα ​​από το αρχικό πρόθεση και την ταλαιπωρία από το κακό σχεδιασμό. Έτσι, ελπίζουμε ότι, όταν τα πόδια και σήμερα, θα ένα ζευγάρι των εργαλείων τη ζώνη σας, που θα σας κρατήσει να κάνουν τα ίδια λάθη. Εντάξει. Ας μιλήσουμε για λίγο το χρονοδιάγραμμα της τεχνολογίας βάσεων δεδομένων. Νομίζω ότι διάβασα ένα το άρθρο δεν έχει περάσει πολύς καιρός και είπε κάτι για το lines-- είναι μια πολύ ποιητική δήλωση. Ανέφερε ότι η ιστορία της επεξεργασίας των δεδομένων είναι γεμάτο από υψηλής υδατογραφήματα της αφθονίας δεδομένων. ΕΝΤΆΞΕΙ. Τώρα, υποθέτω ότι είναι το είδος της αλήθεια. Αλλά εγώ πραγματικά να εξετάσουμε είναι η η ιστορία είναι πραγματικά γεμάτο με υψηλό υδατογράφημα της πίεσης δεδομένων. Επειδή ο ρυθμός δεδομένων του κατάποση δεν κατεβαίνει. Ανεβαίνει μόνο. Και η καινοτομία εμφανίζεται όταν βλέπουμε την πίεση των δεδομένων, η οποία είναι η ποσότητα των δεδομένων που είναι τώρα που έρχονται στο σύστημα. Και δεν μπορεί να επεξεργαστεί αποτελεσματικά, είτε σε χρόνο είτε σε κόστος. Και αυτό είναι όταν αρχίζουμε να εξετάσουμε τα δεδομένα πίεση. Έτσι, όταν εξετάζουμε το πρώτη βάση δεδομένων, αυτή η είναι αυτός που ήταν ανάμεσα στα αυτιά μας. Είμαστε όλοι γεννηθεί με αυτή. Είναι μια ωραία βάση δεδομένων. Έχει υψηλή διαθεσιμότητα. Είναι πάντα. Μπορείτε πάντα να το πάρετε. Αλλά είναι μόνο χρήστη. Δεν μπορώ να μοιραστώ τις σκέψεις μου μαζί σας. Δεν μπορείτε να πάρετε τις σκέψεις μου όταν τα θέλετε. Και abilitiy τους δεν είναι τόσο καλή. Ξεχνάμε τα πράγματα. Κάθε τώρα και τότε, ένας από εμάς φύλλα και κινείται προς μια άλλη ύπαρξη και χάνουμε τα πάντα ότι στην εν λόγω βάση δεδομένων. Έτσι, αυτό δεν είναι όλα αυτά καλά. Και αυτό λειτούργησε καλά την πάροδο του χρόνου όταν ήμασταν πίσω στην ημέρα όταν το μόνο που πραγματικά χρειάζεται να γνωρίζετε είναι όπου θα πάμε αύριο ή όπου μαζεύουμε το καλύτερο φαγητό. Αλλά όπως έχουμε αρχίσει να αναπτύσσεται ως πολιτισμός και κυβέρνηση άρχισε να τεθεί σε λειτουργία, και επιχειρήσεις άρχισαν να εξελίσσονται, αρχίσαμε να συνειδητοποιούμε ότι χρειάζονται λίγο περισσότερο από ό, τι θα μπορούσε να θέσει στο κεφάλι μας. Εντάξει? Χρειαζόμασταν συστήματα καταγραφής. Χρειαζόμασταν μέρη για να είναι σε θέση να αποθηκεύουν δεδομένα. Έτσι αρχίσαμε να γράψουν κείμενα, δημιουργώντας βιβλιοθήκες και αρχεία. Ξεκινήσαμε την ανάπτυξη μιας σύστημα ένα λογιστικό βιβλίο. Και αυτό το σύστημα καταμέτρησης καθολικού έτρεξε τον κόσμο για πολλούς αιώνες, και ίσως ακόμη και χιλιετίες ως έχουμε το είδος της μεγάλωσε μέχρι το σημείο όταν η φόρτωση των δεδομένων ξεπέρασε η ικανότητα των συστημάτων αυτών να είναι σε θέση να την συγκρατήσουν. Και αυτό ακριβώς συνέβη στη δεκαετία του 1880. Δικαίωμα? Στο 1880 Απογραφής των ΗΠΑ. Αυτό είναι πραγματικά όπου η στροφή σημείο σύγχρονη επεξεργασία δεδομένων. Αυτό είναι το σημείο στο την οποία η ποσότητα των δεδομένων ότι είχε εισπραχθεί από το Αμερικανική κυβέρνηση έφτασε στο σημείο όπου χρειάστηκε οκτώ χρόνια για να επεξεργαστεί. Τώρα, οκτώ years-- ως Ξέρετε, την απογραφή τρέχει κάθε 10 years-- έτσι είναι αρκετά προφανές ότι από την στιγμή που πήρε την απογραφή του 1890, η ποσότητα των δεδομένων που επρόκειτο να υποστούν επεξεργασία από την κυβέρνηση ήταν πρόκειται να υπερβεί τα 10 χρόνια που θα χρειαζόταν για να ξεκινήσει τη νέα απογραφή. Αυτό ήταν ένα πρόβλημα. Έτσι, ένας τύπος που ονομάζεται Herman Hollerith ήρθε μαζί και εφηύρε μονάδα διάτρησης ρεκόρ κάρτες, αναγνώστη καρτών γροθιά, κάρτα γροθιά πινακοποιητής, και η αντιπαραβολή των οι μηχανισμοί για την τεχνολογία αυτή. Και ότι η εταιρεία που δημιούργησε κατά τη ώρα, μαζί με ένα ζευγάρι των άλλων, πραγματικά έγινε ένας από τους πυλώνες μιας μικρή εταιρεία που γνωρίζουμε σήμερα ονομάζεται IBM. Άρα η IBM αρχικά ήταν σε η επιχείρηση της βάσης δεδομένων. Και αυτό είναι πραγματικά ό, τι έκαναν. Έκαναν την επεξεργασία των δεδομένων. Καθώς έτσι τον πολλαπλασιασμό του γροθιά κάρτες, ένα ευφυές μηχανισμούς να είναι σε θέση να μόχλευσης ότι τεχνολογία για την δημοσκόπηση ταξινομημένων συνόλων αποτελεσμάτων. Μπορείτε να δείτε σε αυτή την εικόνα εκεί έχουμε μια little-- είναι λίγο small--, αλλά μπορείτε να δείτε ένα πολύ έξυπνο μηχανικό μηχανισμό όπου έχουμε μια τράπουλα γροθιά. Και λήψη κάποιου ένα μικρό κατσαβίδι και να κολλήσει με το κουλοχέρηδες και ανασηκώνοντάς για να πάρει αυτό το ματς, ότι που ταξινομούνται αποτελέσματα. Αυτή είναι μια συνάθροιση. Το κάνουμε αυτό όλη την ώρα σήμερα στον υπολογιστή, όπου μπορείτε να το κάνετε στη βάση δεδομένων. Συνηθίζαμε να το κάνετε μόνοι σας, σωστά; Οι άνθρωποι βάλει αυτά τα πράγματα μαζί. Και ήταν η διάδοση από αυτές τις διάτρητες κάρτες σε αυτό που ονομάζεται τύμπανα δεδομένων και κυλίνδρους δεδομένα, χαρτοταινία. Η βιομηχανία επεξεργασίας των δεδομένων πραγματοποιήθηκε ένα μάθημα από τα πιάνα παίκτη. Παίκτης πιάνα πίσω το γύρισμα του αιώνα χρησιμοποιούσαν τροχούς χαρτί με εγκοπές για να το πω ποια κλειδιά για να παίξει. Έτσι ώστε η τεχνολογία προσαρμόστηκε τελικά για την αποθήκευση ψηφιακών δεδομένων, επειδή θα μπορούσε να θέσει αυτά τα δεδομένα σε αυτούς τους κυλίνδρους χαρτοταινία. Τώρα, ως αποτέλεσμα, τα δεδομένα ήταν πώς actually-- έχετε πρόσβαση σε αυτά τα δεδομένα ήταν άμεσα εξαρτάται από το πώς θα αποθηκεύονται. Έτσι, αν βάλω τα δεδομένα σε μια ταινία, Είχα αποκτήσει πρόσβαση στα δεδομένα γραμμικά. Έπρεπε να κυλήσει το σύνολο ταινία για να αποκτήσετε πρόσβαση σε όλα τα δεδομένα. Αν έβαλα τα δεδομένα σε γροθιά κάρτες, θα μπορούσε να έχει πρόσβαση σε λίγο περισσότερο τυχαίο μόδα, ίσως όχι τόσο γρήγορα. Αλλά υπήρχαν περιορισμοί στον τρόπο που θα πρόσβαση σε δεδομένα με βάση το πόσο φυλάχθηκε. Και έτσι αυτό ήταν ένα πρόβλημα υπεισέλθω σε τη δεκαετία του '50. Και πάλι, μπορούμε να αρχίσουμε να βλέπουμε ότι καθώς την ανάπτυξη νέων τεχνολογιών για την επεξεργασία τα δεδομένα, δεξιά, ανοίγει η πόρτα για νέες λύσεις, για τα νέα προγράμματα, νέες οι αιτήσεις για το εν λόγω δεδομένων. Και πραγματικά, η διακυβέρνηση μπορεί να ήταν η αιτία γιατί έχουμε αναπτύξει ορισμένα από αυτά τα συστήματα. Αλλά η δουλειά έγινε γρήγορα ο οδηγός πίσω από την εξέλιξη της σύγχρονης βάσης δεδομένων και Το σύγχρονο σύστημα αρχείων. Έτσι, το επόμενο πράγμα που ήρθε ήταν στη δεκαετία του '50 ήταν το σύστημα αρχείων και το ανάπτυξη της τυχαίας αποθήκευσης πρόσβασης. Αυτό ήταν όμορφη. Τώρα, όλοι ξαφνικά, μπορούμε να βάλουμε μας αρχεία οπουδήποτε στον αυτούς τους σκληρούς δίσκους και μπορούμε να έχουμε πρόσβαση αυτά τα δεδομένα τυχαία. Μπορούμε να αναλύσει ότι πληροφορίες εκτός των αρχείων. Και έχουμε λύσει όλα του κόσμου προβλήματα με την επεξεργασία των δεδομένων. Και αυτό διήρκεσε περίπου 20 ή 30 χρόνια έως ότου η εξέλιξη του σχεσιακή βάση δεδομένων, η οποία είναι όταν ο κόσμος που αποφάσισε τώρα Πρέπει να έχετε ένα αποθετήριο που νικά η εξάπλωση των δεδομένων σε αρχείο συστήματα που έχουμε χτίσει. Δικαίωμα? Πάρα πολλά δεδομένα διανέμονται σε πάρα πολλά θέσεις, ο de-επικάλυψη των δεδομένων, και το κόστος της αποθήκευσης ήταν τεράστια. Τη δεκαετία του '70, το πιο ακριβό πόρο ότι ένας υπολογιστής είχε ήταν η αποθήκευση. Ο επεξεργαστής ήταν θεωρηθεί ως ένα σταθερό κόστος. Όταν αγοράζετε το κουτί, η CPU κάνει κάποια εργασία. Είναι πρόκειται να περιστρέφεται κατά πόσον αυτό είναι πραγματικά εργάζονται ή όχι. Αυτό είναι πραγματικά ένα εφάπαξ κόστος. Αλλά αυτό που μου κοστίσει ως των επιχειρήσεων είναι η αποθήκευση. Αν έχω να αγοράσω περισσότερους δίσκους επόμενο μήνα, αυτό είναι ένα πραγματικό κόστος που πληρώνουν. Και αυτή η αποθήκευση είναι δαπανηρή. Τώρα fast forward 40 χρόνια και έχουμε ένα διαφορετικό πρόβλημα. Η υπολογιστική είναι τώρα η πιο ακριβό πόρο. Η αποθήκευση είναι φθηνή. Θέλω να πω, μπορούμε να πάμε οπουδήποτε για το σύννεφο και μπορούμε να βρούμε φτηνό αποθήκευσης. Αλλά αυτό δεν μπορώ να βρω είναι φθηνή υπολογιστική. Έτσι, η εξέλιξη της σημερινής τεχνολογίας, της τεχνολογίας των βάσεων δεδομένων, Είναι πραγματικά επικεντρώθηκε γύρω από κατανεμημένες βάσεις δεδομένων ότι δεν πάσχουν από το ίδιο είδος κλίμακας περιορισμούς των σχεσιακών βάσεων δεδομένων. Θα μιλήσουμε λίγο για τι σημαίνει αυτό στην πραγματικότητα. Αλλά ένας από τους λόγους και ο οδηγός πίσω από this-- μας μίλησε για την πίεση των δεδομένων. Δεδομένα πίεση είναι κάτι ότι κινεί την καινοτομία. Και αν κοιτάξετε πάνω τα τελευταία πέντε χρόνια, αυτό είναι ένα διάγραμμα του τι δεδομένων φορτίο σε όλη τη Γενική Διεύθυνση Επιχειρήσεων μοιάζει τα τελευταία πέντε χρόνια. Και ο γενικός κανόνας του αντίχειρα Αυτές οι days-- αν πάτε Google-- είναι το 90% των δεδομένων που αποθηκεύουμε σήμερα, και ήταν παράγεται εντός των δύο τελευταίων ετών. ΕΝΤΆΞΕΙ. Τώρα, αυτό δεν είναι μια τάση που είναι νέο. Αυτή είναι μια τάση που είναι ήδη βγείτε έξω για 100 χρόνια. Από τότε Herman Hollerith ανέπτυξε την κάρτα γροθιά, έχουμε χτίσει αποθήκες δεδομένων και τη συλλογή δεδομένων σε πρωτοφανή ποσοστά. Έτσι, τα τελευταία 100 χρόνια, έχουμε δει αυτή την τάση. Αυτό δεν πρόκειται να αλλάξει. Πηγαίνοντας προς τα εμπρός, θα πάμε να δούμε αυτό, αν όχι μια επιταχυνόμενη τάση. Και μπορείτε να δείτε τι μοιάζει. Εάν μια επιχείρηση το 2010 είχε ένα terabyte δεδομένων υπό διαχείριση, σήμερα, που σημαίνει ότι είναι 6.5 petabytes τη διαχείριση των δεδομένων. Αυτό είναι 6.500 φορές περισσότερα δεδομένα. Και το ξέρω αυτό. Δουλεύω με τις εν λόγω επιχειρήσεις κάθε μέρα. Πέντε χρόνια πριν, θα μιλήσει σε εταιρείες ο οποίος θα μιλήσει σε μένα σχετικά με το τι πόνο είναι να διαχειρίζεται terabytes δεδομένων. Και θα μιλούσαν μου για το πώς βλέπουμε ότι αυτό κατά πάσα πιθανότητα θα να είναι ένα ή δύο petabyte μέσα σε δύο χρόνια. Αυτές οι ίδιες οι εταιρείες Σήμερα είμαι συνάντηση με, και μιλάμε για μένα για το πρόβλημα έχουν εκεί τη διαχείριση δεκάδες, 20 petabytes δεδομένων. Έτσι, την έκρηξη της στοιχεία στη βιομηχανία είναι η κινητήρια δύναμη της τεράστιας ανάγκη για καλύτερες λύσεις. Και η σχεσιακή βάση δεδομένων είναι απλά δεν ζουν μέχρι και τη ζήτηση. Και έτσι υπάρχει μια γραμμική συσχέτιση μεταξύ της πίεσης δεδομένων και την τεχνολογική καινοτομία. Η Ιστορία μάς έχει δείξει αυτό, ότι το πέρασμα του χρόνου, όποτε ο όγκος των δεδομένων ότι θα πρέπει να υποβάλλονται σε επεξεργασία υπερβαίνει τη χωρητικότητα του συστήματος να επεξεργαστεί σε ένα εύλογο χρονικό διάστημα ή σε λογικό κόστος, Στη συνέχεια οι νέες τεχνολογίες Οι εφευρέθηκε για να λύσει αυτά τα προβλήματα. Αυτές οι νέες τεχνολογίες, με τη σειρά του, να ανοίξει την πόρτα σε ένα άλλο σύνολο των προβλημάτων, τα οποία συγκεντρώνει ακόμα περισσότερα δεδομένα. Τώρα, εμείς δεν πρόκειται να σταματήσει αυτό. Δικαίωμα? Εμείς δεν πρόκειται να σταματήσει αυτό. Γιατί; Επειδή δεν μπορείτε να ξέρετε τα πάντα υπάρχει να ξέρει στο σύμπαν. Και όσο ήμασταν ζωντανοί, σε όλη την ιστορία του ανθρώπου, έχουμε πάντα με γνώμονα να μάθετε περισσότερα. Φαίνεται λοιπόν ότι κάθε ίντσα κινούμαστε κάτω από την πορεία της επιστημονικής ανακάλυψης, είμαστε πολλαπλασιάζοντας την ποσότητα των δεδομένων ότι πρέπει να επεξεργαστούμε εκθετικά όπως έχουμε αποκαλύψει όλο και περισσότερο και πιο σχετικά με τις εσωτερικές λειτουργίες της ζωής, για το πώς λειτουργεί το σύμπαν, για οδηγώντας την επιστημονική ανακάλυψη, και η εφεύρεση που κάνουμε σήμερα. Ο όγκος των δεδομένων μόνο αυξάνεται συνεχώς. Έτσι είναι σε θέση να ασχοληθεί με Αυτό το πρόβλημα είναι τεράστιο. Έτσι ένα από τα πράγματα κοιτάξουμε το γιατί NoSQL; Πώς NoSQL λύσει αυτό το πρόβλημα; Λοιπόν, σχεσιακές βάσεις δεδομένων, Structured Query Language, SQL-- αυτό είναι πραγματικά ένα κατασκεύασμα της σχεσιακή database-- αυτά τα πράγματα είναι βελτιστοποιημένες για αποθήκευση. Επιστροφή στη δεκαετία του '70, και πάλι, δίσκος είναι ακριβό. Η άσκηση διαδικασία provisioning στην επιχείρηση δεν τελειώνει ποτέ. Ξέρω. Έχω ζήσει. Έγραψα προγράμματα οδήγησης αποθήκευσης για ένα enterprised εταιρεία superserver πίσω στη δεκαετία του '90. Και η κατώτατη γραμμή είναι στίβουν το άλλο συστοιχία αποθήκευσης ήταν απλά κάτι που συνέβη κάθε μέρα στην επιχείρηση. Και ποτέ δεν σταμάτησε. Υψηλότερες πυκνότητα αποθήκευσης, η ζήτηση για την υψηλή πυκνότητα αποθήκευσης, και για πιο αποτελεσματική αποθήκευση devices-- ποτέ δεν σταμάτησε. Και NoSQL είναι μια μεγάλη τεχνολογία επειδή ομαλοποιεί τα δεδομένα. De-αναπαράγει τα δεδομένα. Θα πρέπει να θέσει τα δεδομένα σε μια δομή που είναι αγνωστικιστής σε κάθε σχέδιο πρόσβασης. Πολλαπλές εφαρμογές μπορεί να χτυπήσει ότι Βάση δεδομένων SQL, εκτελέστε ad hoc ερωτήματα, και να πάρετε τα δεδομένα στο σχήμα, ώστε Πρέπει να επεξεργάζονται το φόρτο εργασίας τους. Αυτό ακούγεται φανταστικό. Αλλά η κατώτατη γραμμή είναι με οποιοδήποτε συστήματος, αν είναι αγνωστικιστής για τα πάντα, αυτό έχει βελτιστοποιηθεί για τίποτα. ΕΝΤΆΞΕΙ? Και αυτό είναι που έχουμε με η σχεσιακή βάση δεδομένων. Είναι βελτιστοποιημένο για την αποθήκευση. Είναι φυσιολογικά επίπεδα. Είναι σχεσιακή. Υποστηρίζει τα ad hoc ερωτήματα. Και αυτό και κλίμακες κατακόρυφα. Αν χρειαστεί να πάρετε μια μεγαλύτερη βάση δεδομένων SQL ή μια πιο ισχυρή βάση δεδομένων SQL, Έχω πάει να αγοράσει ένα μεγαλύτερο κομμάτι του σιδήρου. ΕΝΤΆΞΕΙ? Έχω δουλέψει με πολλούς πελάτες που έχουν περάσει από σημαντικές αναβαθμίσεις στις υποδομές τους SQL μόνο για να μάθετε έξι μήνες αργότερα, από όπου και αν χτυπήσει ξανά τον τοίχο. Και η απάντηση από την Oracle ή MSSQL ή οποιοσδήποτε άλλος είναι να πάρετε ένα μεγαλύτερο κουτί. Λοιπόν, αργά ή γρήγορα, δεν μπορείτε να αγοράσετε ένα μεγαλύτερο κουτί, και αυτό είναι πραγματικό πρόβλημα. Πρέπει να αλλάξει πραγματικά τα πράγματα. Έτσι, όταν κάνει αυτό το έργο; Λειτουργεί καλά για offline analytics, OLAP τύπου φόρτο εργασίας. Και αυτό είναι πραγματικά όπου ανήκει SQL. Τώρα, αυτό είναι που χρησιμοποιείται σήμερα σε πολλές σε απευθείας σύνδεση επεξεργασία τύπου συναλλαγής εφαρμογές. Και δουλεύει μια χαρά σε κάποιο επίπεδο αξιοποίησης, αλλά απλά δεν κλίμακα ο τρόπος που το κάνει NoSQL. Και θα μιλήσουμε λίγο bit για το γιατί συμβαίνει αυτό. Τώρα, NoSQL, από την άλλη πλευρά, είναι πιο βελτιστοποιημένο για υπολογίζουν. ΕΝΤΆΞΕΙ? Δεν είναι αγνωστικιστής να η συχνή πρόσβαση. Είναι αυτό που λέμε de-κανονικοποιημένη δομή ή μια ιεραρχική δομή. Τα δεδομένα σε μια σχεσιακή βάση δεδομένων είναι ενώνονται από πολλαπλούς πίνακες να παράγουν την άποψη ότι χρειάζεστε. Τα δεδομένα σε μία βάση δεδομένων NoSQL αποθηκεύεται σε ένα έγγραφο που περιέχει την ιεραρχική δομή. Όλα τα δεδομένα που θα ήταν κανονικά ενώθηκαν για να παράγουν αυτή την άποψη αποθηκεύεται σε ένα ενιαίο έγγραφο. Και θα μιλήσουμε λίγο για πώς αυτό λειτουργεί σε δύο διαγράμματα. Αλλά η ιδέα εδώ είναι ότι μπορείτε να αποθηκεύσετε τα δεδομένα σας, όπως αυτά τεκμηριώθηκε θέα. ΕΝΤΆΞΕΙ? Μπορείτε κλίμακα οριζόντια. Δικαίωμα? Αν θα πρέπει να αυξηθεί η το μέγεθος του συμπλέγματος μου NoSQL, Δεν πρέπει να πάρετε ένα μεγαλύτερο κουτί. Παίρνω ένα άλλο πλαίσιο. Και εγώ συμπλέγματος αυτά συνολικά, και μπορώ να θραύσμα αυτά τα δεδομένα. Θα μιλήσουμε λίγο για τι sharding είναι, να είναι σε θέση να επεκτείνουμε αυτή τη βάση δεδομένων σε πολλαπλές φυσικές συσκευές και αφαιρέστε το εμπόδιο που απαιτεί να αναβαθμίσουν κατακόρυφα. Έτσι, είναι πραγματικά κατασκευαστεί για online επεξεργασία των συναλλαγών και την κλίμακα. Υπάρχει μια μεγάλη διάκριση εδώ μεταξύ των εκθέσεων, έτσι δεν είναι; Αναφορά, δεν ξέρω το ερωτήσεις Πάω να ρωτήσω. Δικαίωμα? Reporting-- αν κάποιος από το τμήμα μάρκετινγκ μου θέλει να just-- πόσοι από τους πελάτες μου έχουν αυτό το ιδιαίτερο χαρακτηριστικό που αγόρασε σε αυτό το day-- Δεν ξέρω αυτό το ερώτημα που πρόκειται να ρωτήσω. Γι 'αυτό και πρέπει να είναι αγνωστικιστής. Τώρα, σε απευθείας σύνδεση συναλλαγής εφαρμογή, Ξέρω τι ερωτήσεις ρωτάω. Έφτιαξα την αίτηση μια πολύ συγκεκριμένη ροή εργασίας. ΕΝΤΆΞΕΙ? Έτσι, αν μπορώ να βελτιώσω τα δεδομένα αποθηκεύσετε για να υποστηρίξει ότι η ροή εργασίας, πρόκειται να είναι ταχύτερη. Και γι 'αυτό μπορεί να NoSQL πραγματικά να επιταχύνει την παράδοση από αυτούς τους τύπους των υπηρεσιών. Εντάξει. Έτσι θα πάμε να μπει σε ένα μικρό κομμάτι της θεωρίας εδώ. Και μερικοί από σας, τα μάτια σας μπορεί να κυλήσει λίγο πίσω. Αλλά εγώ θα προσπαθήσω να το κρατήσει τόσο υψηλό επίπεδο όσο μπορώ. Έτσι, εάν είστε στο έργο διαχείριση, υπάρχει ένα κατασκεύασμα που ονομάζεται τρίγωνο των περιορισμών. ΕΝΤΆΞΕΙ. Το τρίγωνο των περιορισμών προσταγές δεν μπορείτε να έχετε τα πάντα όλη την ώρα. Δεν μπορεί να έχει την πίτα σας και το σκύλο χορτάτο. Έτσι, στην διαχείριση του έργου, ότι το τρίγωνο περιορισμοί είναι μπορείτε να το φτηνό, μπορείτε να έχετε γρήγορα, ή μπορείτε να έχετε καλό. Διαλέξτε δύο. Επειδή δεν μπορείτε να έχετε και τα τρία. Δικαίωμα? ΕΝΤΆΞΕΙ. Έτσι έχετε ακούσει για αυτό το πολύ. Είναι ένα τριπλό περιορισμό, τρίγωνο της τριπλής περιορισμού, ή το τρίγωνο σιδήρου είναι oftentimes-- όταν μιλάτε σε διαχειριστές έργων, θα μιλήσουν για αυτό. Τώρα, βάσεις δεδομένων έχουν τη δική τους τρίγωνο σιδήρου. Και το τρίγωνο του σιδήρου των δεδομένων Είναι αυτό που λέμε το θεώρημα της ΚΓΠ. ΕΝΤΆΞΕΙ? ΚΓΠ υπαγορεύει το θεώρημα πώς λειτουργούν οι βάσεις δεδομένων κάτω από πολύ συγκεκριμένες συνθήκες. Και θα μιλήσουμε για τι κατάσταση είναι. Αλλά τα τρία σημεία του τριγώνου, να το πω έτσι, είναι C, η συνέπεια. ΕΝΤΆΞΕΙ? Έτσι στην ΚΓΠ, συνοχή σημαίνει ότι όλα τα οι πελάτες οι οποίοι μπορούν να έχουν πρόσβαση στη βάση δεδομένων Θα έχετε πάντα ένα πολύ συνεκτική εικόνα των δεδομένων. Θα Κανείς δούμε δύο διαφορετικά πράγματα. ΕΝΤΆΞΕΙ? Αν δω τη βάση δεδομένων, Βλέπω την ίδια άποψη ως συνεργάτης μου που βλέπει την ίδια βάση δεδομένων. Αυτή είναι η συνέπεια. Διαθεσιμότητα σημαίνει ότι αν ο ηλεκτρονική βάση δεδομένων, εφόσον αυτό μπορεί να επιτευχθεί, ότι όλοι οι πελάτες θα είναι πάντα να είναι σε θέση να διαβάζουν και να γράφουν. ΕΝΤΆΞΕΙ? Έτσι, κάθε πελάτης που μπορεί να διαβάσει τη βάση δεδομένων θα είναι πάντα σε θέση ανάγνωσης στοιχεία δεδομένων και να γράφουν. Και αν αυτή είναι η περίπτωση, Είναι ένα διαθέσιμο σύστημα. Και το τρίτο σημείο είναι αυτό που καλούμε την ανοχή διαμέρισμα. ΕΝΤΆΞΕΙ? Μέσα ανοχή κατανομής ότι το σύστημα λειτουργεί καλά παρά τη σωματική του δικτύου χωρίσματα μεταξύ των κόμβων. ΕΝΤΆΞΕΙ? Έτσι κόμβους του συμπλέγματος δεν μπορεί να να μιλούν μεταξύ τους, τι συμβαίνει; Εντάξει. Έτσι, σχεσιακές βάσεις δεδομένων choose-- μπορείτε να επιλέξετε δύο από αυτά. ΕΝΤΆΞΕΙ. Έτσι, σχεσιακές βάσεις δεδομένων επιλέξετε να είναι συνεπείς και διαθέσιμα. Εάν το διαμέρισμα συμβαίνει μεταξύ οι DataNodes του χώρου αποθήκευσης δεδομένων, η βάση δεδομένων διακόπτεται. Δικαίωμα? Πηγαίνει ακριβώς κάτω. ΕΝΤΆΞΕΙ. Και αυτός είναι ο λόγος που έχουν να αυξάνεται με μεγαλύτερο κουτιά. Δικαίωμα? Επειδή υπάρχει no-- συνήθως, ένα σύμπλεγμα βάση δεδομένων, δεν υπάρχει πάρα πολλοί από αυτούς ότι λειτουργούν με αυτόν τον τρόπο. Αλλά οι περισσότεροι κλίμακας βάσεις δεδομένων κατακόρυφα μέσα σε ένα μόνο κουτί. Επειδή πρέπει να είναι συνεπής και διαθέσιμη. Εάν ένα χώρισμα επρόκειτο να εγχυθεί, τότε θα πρέπει να κάνει μια επιλογή. Θα πρέπει να κάνει μια επιλογή μεταξύ να είναι συνεπής και διαθέσιμα. Και αυτό είναι που κάνει NoSQL βάσεις δεδομένων. Εντάξει. Έτσι, μια βάση δεδομένων NoSQL αυτό, έρχεται σε δύο γεύσεις. Εμείς have-- καλά, έρχεται σε πολλές γεύσεις, αλλά έρχεται με δύο βασικές characteristics-- τι θα λέγαμε βάση δεδομένων CP, ή συνεπείς και τη διχοτόμηση της ανοχής σύστημα. Αυτά τα παιδιά κάνουν την επιλογή ότι όταν οι κόμβοι χάνουν την επαφή με την άλλη, εμείς δεν πρόκειται να επιτρέψει οι άνθρωποι να γράψω πια. ΕΝΤΆΞΕΙ? Μέχρι αφαιρείται ότι η διχοτόμηση, write πρόσβαση είναι αποκλεισμένη. Αυτό σημαίνει ότι δεν είναι διαθέσιμοι. Είναι συνεπής. Όταν βλέπουμε ότι διαμέρισμα ίδια ένεση, τώρα είμαστε συνεπείς, γιατί εμείς δεν πρόκειται να καταστεί δυνατή η αλλαγή των δεδομένων σε δύο πλευρές του διαμερίσματος ανεξαρτήτως από την άλλη. Θα πρέπει να την αποκατάσταση της επικοινωνίας πριν από οποιαδήποτε ενημέρωση τα δεδομένα επιτρέπεται. ΕΝΤΆΞΕΙ? Η επόμενη γεύση θα ήταν ένα σύστημα AP, ή ένα διαθέσιμο και διαμοιράστηκε σύστημα ανοχή. Αυτά τα παιδιά δεν με νοιάζει. Δικαίωμα? Κάθε κόμβος που παίρνει ένα γράφουν, θα το πάρει. Έτσι είμαι αντιγραφή τα δεδομένα μου σε πολλούς κόμβους. Αυτοί οι κόμβοι να πάρει έναν πελάτη, ο πελάτης έρχεται σε, λέει, Πάω να γράψω κάποια δεδομένα. Κόμβος λέει, δεν υπάρχει πρόβλημα. Ο κόμβος δίπλα του παίρνει μια εγγραφή στο ίδιο αρχείο, ότι πρόκειται να πω κανένα πρόβλημα. Κάπου πίσω από την πλάτη τέλος, ότι τα δεδομένα που πρόκειται να αντιγραφεί. Και τότε κάποιος πρόκειται να πραγματοποιήσει, Ωχ, το σύστημα θα συνειδητοποιήσουν, Ωχ, έχει υπάρξει κάποια ενημέρωση για τις δύο πλευρές. Τι κάνουμε? Και αυτό που κάνουμε τότε είναι κάνουν κάτι το οποίο τους επιτρέπει να επιλύσει αυτή την κατάσταση τα δεδομένα. Και θα μιλήσουμε για ότι στο επόμενο γράφημα. Πράγμα που πρέπει να επισημάνω εδώ. Και εγώ δεν πρόκειται να πάρει πάρα πολύ πολύ σε αυτό, διότι αυτό μπαίνει σε βαθιά θεωρία δεδομένων. Αλλά υπάρχει μια συναλλαγής πλαισίου που τρέχει σε ένα σχεσιακό σύστημα ότι μου επιτρέπει να κάνετε ασφαλείς ενημερώσεις σε πολλαπλές οντότητες στη βάση δεδομένων. Και αυτές οι ενημερώσεις θα εμφανιστούν μονομιάς ή καθόλου. Και αυτό ονομάζεται συναλλαγών ΟΞΥ. ΕΝΤΆΞΕΙ? ΟΞΥ μας δίνει ατομικότητας, συνέπειας, απομόνωση, και αντοχή. ΕΝΤΆΞΕΙ? Αυτό σημαίνει ατομική, συναλλαγές, όλα ενημερώσεις μου, είτε συμβαίνουν ή δεν το κάνουν. Συνέπεια σημαίνει ότι Η βάση δεδομένων θα είναι πάντα να τίθεται σε συνεπή κατάσταση μετά από μια ενημέρωση. Ποτέ δεν θα αφήσει τη βάση δεδομένων σε ένα κακή κατάσταση μετά την εφαρμογή μιας ενημερωμένης έκδοσης. ΕΝΤΆΞΕΙ? Γι 'αυτό είναι λίγο διαφορετικό από τη συνοχή της ΚΓΠ. Συνοχή της ΚΑΠ σημαίνει όλα μου οι πελάτες μπορούν πάντα να δείτε τα δεδομένα. ΟΞΥ συνοχή σημαίνει ότι όταν μια συναλλαγή γίνει αυτό, τα δεδομένα είναι καλό. Οι σχέσεις μου είναι όλα καλά. Είμαι δεν πρόκειται να διαγράψετε ένα γονέα σειρά και να αφήσει μια δέσμη των ορφανών παιδιών σε κάποιο άλλο πίνακα. Αυτό δεν μπορεί να συμβεί αν είμαι συνεπής σε μια συναλλαγή οξύ. Απομόνωση σημαίνει ότι οι συναλλαγές θα συμβεί πάντα ένα μετά το άλλο. Το τελικό αποτέλεσμα των στοιχείων θα είναι η ίδια κατάσταση ως εάν αυτές οι συναλλαγές ότι εκδόθηκαν ταυτόχρονα εκτελέστηκαν διαδοχικά. Έτσι είναι συγχρονισμός ελέγχου στη βάση δεδομένων. Έτσι, βασικά, δεν μπορώ να αυξήσετε το ίδια τιμή δύο φορές με δύο πράξεις. Αλλά αν πω προσθέστε 1 σε αυτήν την τιμή, και δύο πράξεις έρχονται σε και να προσπαθήσουμε να το κάνουμε, είναι ένα πρόκειται να φτάσει εκεί πρώτη και η άλλη κάποιου πρόκειται να φτάσει εκεί μετά. Έτσι, στο τέλος, θα προστεθούν δύο. Βλέπετε τι εννοώ; ΕΝΤΆΞΕΙ. Ανθεκτικότητα είναι αρκετά απλή. Όταν η συναλλαγή αναγνωρίζεται, είναι πρόκειται να είναι εκεί ακόμη αν το σύστημα κολλάει. Όταν το σύστημα ανακτά, ότι συναλλαγή που διαπράχθηκε είναι πραγματικά πρόκειται να είναι εκεί. Έτσι ώστε να είναι οι εγγυήσεις των συναλλαγών ΟΞΥ. Αυτά είναι πολύ ωραίο εγγυήσεις να έχουν σε μια βάση δεδομένων, αλλά έρχονται σε αυτό το κόστος. Δικαίωμα? Επειδή το πρόβλημα με το πλαίσιο αυτό είναι εάν υπάρχει ένα διαμέρισμα στα δεδομένα σύνολο, πρέπει να πάρουν μια απόφαση. Πάω να πρέπει να επιτρέψει ενημερώσεις σχετικά με μια ή την άλλη πλευρά. Και αν συμβεί αυτό, τότε δεν πρόκειται πλέον είμαι να είναι σε θέση να διατηρήσει τα χαρακτηριστικά αυτά. Δεν θα είναι συνεπής. Δεν θα απομονωθεί. Αυτό είναι που διασπά για σχεσιακές βάσεις δεδομένων. Αυτός είναι ο λόγος σχεσιακή βάσεις δεδομένων κλίμακα κάθετα. Από την άλλη πλευρά, έχουμε ό, τι λέγεται τεχνολογική βάση. Και αυτά είναι NoSQL βάσεις δεδομένων σας. Εντάξει. Έτσι έχουμε CP μας, AP βάσεις δεδομένων. Και αυτά είναι αυτό που εσείς ονομάζετε βασικά διαθέσιμες, μαλακή κατάσταση, τελικά συνεπής. ΕΝΤΆΞΕΙ? Βασικά διαθέσιμη, επειδή ότι είναι ανεκτική διαμέρισμα. Αυτοί θα είναι πάντα εκεί, ακόμα κι αν υπάρχει Ένα διαμέρισμα δίκτυο μεταξύ των κόμβων. Αν μπορώ να μιλήσω σε έναν κόμβο, είμαι πρόκειται να είναι σε θέση να διαβάσει τα δεδομένα. ΕΝΤΆΞΕΙ? Μπορεί να μην είναι πάντοτε σε θέση να γράψει δεδομένων, αν είμαι συνεπής πλατφόρμα. Αλλά θα είμαι σε θέση να διαβάσει τα δεδομένα. Η μαλακή κατάσταση δείχνει ότι όταν διάβασα αυτά τα δεδομένα, μπορεί να μην είναι το ίδιο όπως άλλους κόμβους. Αν ένα δικαίωμα εκδόθηκε σε έναν κόμβο κάπου αλλού στο σύμπλεγμα και δεν έχει αναπαραχθεί σε ολόκληρη την συμπλέγματος αλλά όταν διάβασα ότι τα δεδομένα, ότι η κατάσταση δεν θα μπορούσε να είναι συνεπής. Ωστόσο, θα είναι τελικά συνεπής, που σημαίνει ότι όταν η απομείωση γίνεται με το σύστημα, θα αναπαράγουν μήκος των κόμβων. Και τελικά, ότι η κατάσταση θα τεθεί σε τάξη, και θα είναι μια σταθερή κατάσταση. Τώρα, θεώρημα ΚΓΠ πραγματικά παίζει μόνο σε έναν όρο. Η προϋπόθεση είναι όταν συμβαίνει αυτό. Επειδή κάθε φορά που δραστηριοποιούνται στο χώρο της κανονική λειτουργία, δεν υπάρχει διαμέρισμα, όλα είναι συνεπή και διαθέσιμη. Μπορείτε να ανησυχείς μόνο για ΚΓΠ όταν έχουμε εκείνο το διαμέρισμα. Έτσι, αυτές είναι σπάνιες. Αλλά πώς το σύστημα αντιδρά όταν εκείνοι συμβαίνουν υπαγορεύουν τι είδους σύστημα έχουμε να κάνουμε με. Έτσι, ας ρίξουμε μια ματιά σε ό, τι που μοιάζει για συστήματα AP. ΕΝΤΆΞΕΙ? AP συστήματα έρχονται σε δύο γεύσεις. Έρχονται στη γεύση που είναι πλοίαρχος πλοίαρχος, 100%, πάντα στη διάθεσή σας. Και έρχονται στην άλλη γεύση, η οποία λέει, ξέρετε τι, Πάω να ανησυχείτε σχετικά με αυτό το πράγμα στεγανοποίηση όταν η πραγματική κατάτμηση συμβαίνει. Διαφορετικά, υπάρχει πρόκειται να είναι πρωτεύον κόμβους, οι οποίοι πρόκειται να πάρει τα δικαιώματα. ΕΝΤΆΞΕΙ? Έτσι, αν έχουμε κάτι σαν την Κασσάνδρα. Κασσάνδρα θα ήταν ένα master πλοίαρχος, ας μου γράψετε σε κάθε κόμβο. Έτσι τι συμβαίνει; Έτσι έχω ένα αντικείμενο στο βάση δεδομένων που υπάρχει σε δύο κόμβους. Ας το ονομάσουμε αυτό το αντικείμενο Σ Έτσι έχουμε κράτους για το S. Έχουμε κάποιες εργασίες για S που βρίσκονται σε εξέλιξη. Κασσάνδρα μου επιτρέπει να εγγραφή, σε πολλούς κόμβους. Ας πούμε ότι έχω ένα γράφουν για s σε δύο κόμβους. Λοιπόν, τι καταλήγει να συμβαίνει είναι λέμε ότι ένα γεγονός στεγανοποίηση. Δεν μπορεί να υπάρξει μια διαμέρισμα φυσικού δικτύου. Όμως, λόγω της σχεδίασης του συστήματος, είναι στην πραγματικότητα στεγανοποίηση συντομότερο πάρω ​​μια εγγραφής σε δύο κόμβους. Δεν είναι με αναγκάζει να γράψετε όλα μέσω ενός κόμβου. Γράφω σε δύο κόμβους. ΕΝΤΆΞΕΙ? Έτσι τώρα έχω δύο κρατών. ΕΝΤΆΞΕΙ? Τι πρόκειται να συμβεί Είναι αργά ή γρήγορα, εκεί πρόκειται να είναι ένα γεγονός αντιγραφή. Εκεί πρόκειται να είναι αυτό που που ονομάζεται αποκατάστασης χωρισμάτων, η οποία είναι όταν αυτά τα δύο μελών επιστρέφουν μαζί και εκεί πρόκειται να είναι ένας αλγόριθμος που τρέχει μέσα στην βάση δεδομένων, αποφασίζει τι πρέπει να κάνουμε. ΕΝΤΆΞΕΙ? Από προεπιλογή, η τελευταία ενημέρωση κερδίζει στα περισσότερα συστήματα AP. Έτσι, υπάρχει συνήθως μια προεπιλογή αλγόριθμο, τι καλούν επανάκλησης λειτουργία, κάτι που θα καλείται όταν ο όρος αυτός ανιχνεύεται για να εκτελέσει κάποια λογική να επιλύσει τη σύγκρουση. ΕΝΤΆΞΕΙ? Η προεπιλογή επανάκλησης και προεπιλογή αναλυτή στις περισσότερες βάσεις δεδομένων AP είναι, μάντεψε, timestamp κερδίζει. Αυτή ήταν η τελευταία ενημέρωση. Πάω να θέσει αυτήν την ενημερωμένη έκδοση εκεί. Μπορώ να απορρίπτουν αυτό το ρεκόρ που έχω που αποτελούν αντικείμενο ντάμπινγκ μακριά σε ένα κούτσουρο αποκατάστασης έτσι ώστε ο χρήστης να μπορεί να επανέλθει αργότερα και να πω, hey, υπήρξε μια σύγκρουση. Τι συνέβη? Και μπορείτε πραγματικά να πετάξει ένα ρεκόρ όλες οι συγκρούσεις και οι rollbacks και να δούμε τι θα συμβεί. Τώρα, ως χρήστης, μπορείτε επίσης να περιλαμβάνουν τη λογική σε αυτή την επανάκλησης. Έτσι, μπορείτε να αλλάξετε ότι επανάκλησης λειτουργία. Μπορείτε να πείτε, hey, θέλω για την αποκατάσταση αυτών των δεδομένων. Και θέλω να προσπαθήσουμε και να συγχωνευθούν τα δύο αυτά αρχεία. Αλλά αυτό είναι στο χέρι σας. Η βάση δεδομένων δεν ξέρει πώς να το κάνουμε αυτό από προεπιλογή. Οι περισσότεροι ο χρόνος, το μόνο πράγμα η βάση δεδομένων ξέρει πώς να κάνουμε είναι να πούμε, Αυτή ήταν η τελευταία εγγραφή. Αυτό είναι το ένα που πρόκειται να κερδίσει, και αυτή είναι η αξία Πάω να θέσει. Μόλις εκείνη αποκατάστασης χωρισμάτων και αντιγραφή συμβαίνει, έχουμε δικό μας κράτος, το οποίο είναι πλέον πρωταρχικής S, η οποία είναι η κατάσταση συγχώνευση όλων αυτών των αντικειμένων. Έτσι, τα συστήματα AP έχει αυτό. CP συστήματα δεν χρειάζονται να ανησυχείτε για αυτό. Επειδή το συντομότερο μια κατάτμηση έρχεται στο παιχνίδι, το μόνο που σταματήσετε να παίρνετε γράφει. ΕΝΤΆΞΕΙ? Έτσι ώστε να είναι πολύ εύκολο να ασχοληθεί με το να είναι συνεπής όταν δεν αποδέχονται τυχόν ενημερώσεις. Αυτό είναι με κάνουν συστήματα CP. Εντάξει. Ας μιλήσουμε λίγο λίγο για τα πρότυπα πρόσβασης. Όταν μιλάμε για NoSQL, είναι όλα τα σχετικά με το μοτίβο πρόσβασης. Τώρα, SQL είναι ad hoc, τα ερωτήματα. Είναι σχεσιακή κατάστημα. Δεν χρειάζεται να ανησυχείτε σχετικά με το σχέδιο πρόσβασης. Γράφω ένα πολύ σύνθετο ερώτημα. Πηγαίνει και παίρνει τα δεδομένα. Αυτό είναι ό, τι φαίνεται αυτό όπως, κανονικοποίηση. Έτσι, σε αυτή τη συγκεκριμένη δομή, ψάχνουμε σε έναν κατάλογο προϊόντων. Έχω διαφορετικούς τύπους προϊόντων. Έχω τα βιβλία. Έχω άλμπουμ. Έχω βίντεο. Η σχέση μεταξύ των προϊόντων και κάθε ένα από αυτά τα βιβλία, λευκώματα, και βίντεο πίνακες είναι 1: 1. Εντάξει? Έχω ένα αναγνωριστικό προϊόντος, και που αντιστοιχεί ID σε ένα βιβλίο, ένα άλμπουμ, ή ένα βίντεο. ΕΝΤΆΞΕΙ? Αυτό είναι ένα 1: 1 σχέση σε όλη τους πίνακες αυτούς. Τώρα, το μόνο που books-- έχουν ιδιότητες είναι ρίζα. Κανένα πρόβλημα. Αυτό είναι υπέροχο. Ένας-προς-ένα σχέση, παίρνω όλα τα δεδομένα θα πρέπει να περιγράψω αυτό το βιβλίο. Albums-- άλμπουμ έχει κομμάτια. Αυτό είναι αυτό που λέμε ένα προς πολλά. Κάθε άλμπουμ θα μπορούσε να έχει πολλά κομμάτια. Έτσι, για κάθε κομματιού Το άλμπουμ, που θα μπορούσε να έχει Άλλο ένα ρεκόρ στον πίνακα αυτό το παιδί. Έτσι μπορώ να δημιουργήσω ένα αρχείο σε άλμπουμ τραπέζι μου. Έχω δημιουργήσει πολλαπλά αρχεία στον πίνακα κομμάτια. Ένα-προς-πολλά. Αυτή η σχέση είναι ό, τι καλούμε πολλά-προς-πολλά. ΕΝΤΆΞΕΙ? Μπορείτε να δείτε ότι οι παράγοντες θα μπορούσαν να είναι σε πολλές ταινίες, πολλά βίντεο. Έτσι, αυτό που κάνουμε είναι να βάλετε αυτή την χαρτογράφηση τραπέζι ανάμεσα σε εκείνους, που το μόνο χαρτογραφεί το αναγνωριστικό ηθοποιός με το αναγνωριστικό βίντεο. Τώρα μπορώ να δημιουργήσω ένα ερώτημα το ενώνει βίντεο μέσω ηθοποιός βίντεο σε ηθοποιούς, και μου δίνει μια ωραία λίστα όλες οι ταινίες και όλοι οι παράγοντες που ήταν σε αυτή την ταινία. ΕΝΤΆΞΕΙ. Έτσι, εδώ πηγαίνουμε. One-to-One είναι ο top-level σχέση; ένα-προς-πολλά, άλμπουμ σε κομμάτια? πολλά-προς-πολλά. Αυτά είναι τα τρία top-level σχέσεις σε οποιαδήποτε βάση δεδομένων. Εάν ξέρετε πώς αυτά σχέσεις εργαστούν από κοινού, τότε ξέρεις πολύ σχετικά με τη βάση δεδομένων ήδη. Έτσι NoSQL λειτουργεί λίγο διαφορετικά. Ας σκεφτούμε για μια δεύτερη ό, τι Μοιάζει να πάει να πάρει όλα τα προϊόντα μου. Σε μια σχεσιακή κατάστημα, Θέλετε να πάρετε όλα τα προϊόντα μου σε έναν κατάλογο όλων των προϊόντων μου. Αυτό είναι ένα πολύ ερωτήματα. Πήρα ένα ερώτημα για όλα τα βιβλία μου. Πήρα ένα ερώτημα από τα άλμπουμ μου. Και πήρα ένα ερώτημα για όλα τα βίντεό μου. Και πήρα να το θέσω όλα μαζί σε έναν κατάλογο και εξυπηρετούν πίσω μέχρι το εφαρμογή που υποβάλλουν σχετικό αίτημα. Για να πάρετε τα βιβλία μου, να γίνω μέλος Προϊόντα και βιβλία. Για να πάρετε τα άλμπουμ μου, πήρα να ενταχθούν Προϊόντα, άλμπουμ, και ίχνη. Και για να πάρει τα βίντεο μου, έχω να ενταχθούν Προϊόντα σε βίντεο, συμμετάσχουν μέσω βίντεο Ηθοποιός, και να φέρει σε ηθοποιούς. Έτσι ώστε να είναι τρία ερωτήματα. Πολύ σύνθετα ερωτήματα για συγκεντρώνουν ένα σύνολο αποτελεσμάτων. Αυτό είναι λιγότερο από το βέλτιστο. Αυτός είναι ο λόγος που όταν μιλάμε για μια δομή δεδομένων που είναι κατασκευαστεί για να είναι αγνωστικιστής την πρόσβαση pattern-- και αυτό είναι σπουδαίο. Και μπορείτε να δείτε αυτό είναι πραγματικά ωραίο τρόπο με τον οποίο έχουμε οργανώνονται τα δεδομένα. Και ξέρετε τι; Έχω μόνο μία εγγραφή για έναν ηθοποιό. Αυτός είναι δροσερός. Έχω τεχνολογίας βασισμένη σε deduplication όλοι ηθοποιοί μου, και διατήρησα ενώσεων μου σε αυτόν τον πίνακα χαρτογράφησης. Ωστόσο, η απόκτηση των δεδομένων έξω γίνεται ακριβό. Στέλνω την CPU σε όλο το σύστημα συνδέει αυτά τα στοιχεία μαζί δομές να είναι σε θέση να τραβήξει αυτό πίσω τα δεδομένα. Λοιπόν, πώς μπορώ να πάρω γύρω από αυτό; Σε NoSQL είναι περίπου συνάθροιση, δεν ομαλοποίηση. Έτσι θέλουμε να λέμε ότι θέλουμε να υποστηρίζει το πρότυπο πρόσβασης. Αν το μοτίβο πρόσβασης με τις εφαρμογές, Θα χρειαστεί να πάρετε όλα τα προϊόντα μου. Ας βάλουμε όλα τα προϊόντα σε ένα τραπέζι. Αν έβαλα όλα τα προϊόντα σε ένα τραπέζι, Μπορώ να επιλέξετε απλά όλα τα προϊόντα Από τον πίνακα και θα πάρει όλα. Λοιπόν, πώς μπορώ να το κάνουμε αυτό; Καλά στην NoSQL δεν υπάρχει δομή στον πίνακα. Θα μιλήσουμε λίγο για πώς λειτουργεί αυτό στην Ντιναμό ΣΠ. Αλλά δεν έχουν την ίδια χαρακτηριστικά και τις ίδιες ιδιότητες σε κάθε γραμμή, σε κάθε μεμονωμένη στοιχείου, όπως θα κάνατε σε έναν πίνακα του SQL. Και αυτό που μου επιτρέπει να κάνουμε είναι πολλά πράγματα και να μου δώσει μεγάλη ευελιξία. Σε αυτή τη συγκεκριμένη περίπτωση, έχουν έγγραφα προϊόν μου. Και σε αυτό το συγκεκριμένο παράδειγμα, τα πάντα είναι ένα έγγραφο στον πίνακα προϊόντων. Και το προϊόν για ένα βιβλίο θα μπορούσε να έχουν ένα αναγνωριστικό τύπου που καθορίζει ένα βιβλίο. Και η εφαρμογή θα στραφούν σε αυτό το ID. Στο επίπεδο εφαρμογής, θα πάω να πω OH, τι είδους αρχείο είναι αυτό; Ω, αυτό είναι ένα βιβλίο καταγραφής. Αρχεία του βιβλίου έχουν αυτές τις ιδιότητες. Επιτρέψτε μου να δημιουργήσετε ένα αντικείμενο βιβλίου. Έτσι, Πάω να συμπληρώσετε το βιβλίο αντικείμενο με αυτό το στοιχείο. Επόμενο στοιχείο έρχεται και λέει, τι είναι αυτό το αντικείμενο; Λοιπόν αυτό το στοιχείο είναι ένα άλμπουμ. Ω, πήρα μια εντελώς διαφορετική επεξεργασία ρουτίνα για το ότι, γιατί είναι ένα άλμπουμ. Βλέπετε τι εννοώ; Έτσι, η εφαρμογή tier-- μου απλά επιλέξτε όλα αυτά τα αρχεία. Όλοι αρχίζουν να έρχονται σε. Θα μπορούσαν να είναι όλοι οι διαφορετικοί τύποι. Και είναι η λογική της εφαρμογής ότι μεταβαίνει πέρα ​​από αυτούς τους τύπους και αποφασίζει πώς να τα επεξεργαστεί. Και πάλι, έτσι είμαστε η βελτιστοποίηση σχήμα για την συχνή πρόσβαση. Το κάνουμε από την κατάρρευση των πινάκων αυτών. Είμαστε ουσιαστικά λαμβάνοντας Αυτές οι κανονικοποιημένες δομές, και χτίζουμε ιεραρχικές δομές. Μέσα σε κάθε ένα από αυτά τα βιβλία Πάω να δείτε τις ιδιότητες του πίνακα. Μέσα σε αυτό το έγγραφο για το άλμπουμ, Βλέπω συστοιχίες των κομματιών. Αυτά τα κομμάτια τώρα become-- είναι Βασικά αυτό το τραπέζι παιδί ότι υπάρχει εδώ σε αυτή τη δομή. Έτσι, μπορείτε να το κάνετε αυτό σε DynamoDB. Μπορείτε να το κάνετε αυτό σε MongoDB. Μπορείτε να το κάνετε αυτό σε καμία βάση δεδομένων NoSQL. Δημιουργήστε αυτούς τους τύπους ιεραρχικές δομές δεδομένων που σας επιτρέπουν να ανακτήσετε τα δεδομένα πολύ γρήγορα γιατί τώρα δεν χρειάζεται να συμμορφώνονται. Όταν εισαγάγετε μια γραμμή στα κομμάτια τραπέζι, ή μια σειρά στον πίνακα Άλμπουμ, Θα πρέπει να είναι σύμφωνες με αυτή του σχήματος. Θα πρέπει να έχουν την ιδιότητα ή η ιδιότητα που ορίζεται στην εν λόγω πίνακα. Κάθε ένας από αυτούς, όταν εισάγετε αυτή τη γραμμή. Αυτό δεν είναι η περίπτωση στην NoSQL. Μπορώ να έχω εντελώς διαφορετική ιδιότητες σε κάθε έγγραφο ότι εισάγω στη συλλογή. Έτσι, πολύ ισχυρό μηχανισμό. Και είναι πραγματικά το πώς θα βελτιστοποίηση του συστήματος. Επειδή τώρα αυτό το ερώτημα, αντί της ένταξης όλων αυτών των πινάκων και εκτελώντας μια μισή ντουζίνα ερωτήματα για να τραβήξει πίσω τα δεδομένα που χρειάζονται, Είμαι εκτελεί ένα ερώτημα. Και είμαι επανάληψη απέναντι τα αποτελέσματα που. σας δίνει μια ιδέα της ισχύος της NoSQL. Πάω να το είδος πάει στο πλάι εδώ και να μιλήσουμε λίγο για αυτό. Αυτό είναι περισσότερο από το είδος μάρκετινγκ ή τεχνολογικές εξελίξεις, η εμπορία της τεχνολογίας είδος της συζήτησης. Αλλά είναι σημαντικό να κατανοήσουμε διότι αν κοιτάξουμε την κορυφή εδώ σε αυτό το διάγραμμα, τι ψάχνουμε Είναι αυτό που λέμε η τεχνολογία καμπύλη δημοσιότητα. Και τι σημαίνει αυτό είναι νέα πράγματα έρχεται στο παιχνίδι. Οι άνθρωποι νομίζουν ότι είναι μεγάλη. Έχω λυθεί όλα τα προβλήματα μου. Αυτό θα μπορούσε να είναι το τέλος όλα, να είναι όλοι σε όλα. Και αρχίσετε να χρησιμοποιείτε αυτό. Και λένε, αυτά τα πράγματα δεν λειτουργεί. Αυτό δεν είναι σωστό. Η παλιά πράγματα ήταν καλύτερα. Και πάει πίσω να το κάνουμε τα πράγματα με τον τρόπο που ήταν. Και στη συνέχεια, τελικά πάνε, ξέρετε τι; Αυτή η ουσία δεν είναι τόσο κακό. Ω, αυτό είναι το πώς λειτουργεί. Και από τη στιγμή που καταλάβω πώς έργα, θα αρχίσει να βελτιώνεται. Και το αστείο πράγμα για αυτό είναι, αυτό το είδος των γραμμών έως τι καλούμε την καμπύλη της τεχνολογίας Υιοθεσία. Έτσι, αυτό που συμβαίνει είναι ότι έχουμε ορισμένες τεχνολογίες είδος σκανδάλη. Στην περίπτωση των βάσεων δεδομένων, είναι δεδομένα πίεσης. Μιλήσαμε για τα υψηλά σημεία το νερό της πίεσης των δεδομένων στο πέρασμα του χρόνου. Όταν η πίεση δεδομένα χτυπά ένα ορισμένο σημείο, αυτό είναι μια τεχνολογία ενεργοποίησης. Είναι να πάρει πάρα πολύ ακριβό. Παίρνει πολύ χρόνο για να επεξεργαστεί τα δεδομένα. Χρειαζόμαστε κάτι καλύτερο. Μπορείτε να πάρετε τους πρωτοπόρους εκεί έξω που τρέχει γύρω, προσπαθεί να ανακαλύψει ποια είναι η λύση. Ποια είναι η νέα ιδέα; Ποιο είναι το επόμενο καλύτερο τρόπος για να γίνει αυτό το πράγμα; Και να καταλήξουμε σε κάτι. Και οι άνθρωποι με τον πραγματικό πόνο, τα παιδιά στην κόψη του ξυραφιού, ότι θα πηδήξει σε όλο αυτό, επειδή χρειάζονται μια απάντηση. Τώρα τι αναπόφευκτα happens-- και αυτό συμβαίνει τώρα στην NoSQL. Το βλέπω όλη την ώρα. Τι συμβαίνει είναι αναπόφευκτα οι άνθρωποι αρχίσουν να χρησιμοποιούν το νέο εργαλείο με τον ίδιο τρόπο που χρησιμοποίησαν το παλιό εργαλείο. Και ανακαλύπτουν ότι δεν λειτουργεί τόσο καλά. Δεν μπορώ να θυμηθώ ποιος είμαι μιλάμε για νωρίτερα σήμερα. Αλλά είναι σαν, όταν η κομπρεσέρ εφευρέθηκε, οι άνθρωποι δεν θα ταλαντεύεται το κεφάλι τους για να συνθλίψει το σκυρόδεμα. Αλλά αυτό είναι ό, τι είναι συμβαίνει με NoSQL σήμερα. Αν περπατήσετε στα περισσότερα καταστήματα με, προσπαθούν να είναι τα καταστήματα NoSQL. Τι κάνουν είναι που χρησιμοποιείτε NoSQL, και από όπου και αν Φόρτωση γεμάτη σχεσιακό σχήμα. Επειδή αυτό είναι το πώς σχεδιάζουν βάσεις δεδομένων. Και αναρωτιέστε, γιατί είναι δεν εκτελεί πολύ καλά; Αγόρι, αυτό το πράγμα βρωμάει. Έπρεπε να διατηρήσει όλα μου ενώνει in-- είναι σαν, όχι, όχι. Διατηρήστε ενώνει; Γιατί ενώνει τα δεδομένα; Δεν ενταχθούν δεδομένα NoSQL. Μπορείτε να την προσθέσει. Έτσι, εάν θέλετε να το αποφύγετε αυτό, να μάθουν πώς λειτουργεί το εργαλείο πριν να αρχίσετε να το χρησιμοποιείτε. Μην προσπαθήσετε να χρησιμοποιήσετε τα νέα εργαλεία της ίδιο τρόπο που χρησιμοποιούσε τα παλιά εργαλεία. Θα πάμε να έχουν μια κακή εμπειρία. Και κάθε φορά αυτό είναι ό, τι αυτό είναι περίπου. Όταν αρχίζουμε να έρχονται εδώ, αυτό συμβαίνει γιατί οι άνθρωποι υπολόγισα πώς να χρησιμοποιούν τα εργαλεία. Έκαναν το ίδιο πράγμα, όταν σχεσιακές βάσεις δεδομένων εφευρέθηκαν, και ήταν αντικαθιστά τα συστήματα αρχείων. Προσπάθησαν να οικοδομήσουμε συστήματα αρχείων με σχεσιακές βάσεις δεδομένων γιατί αυτό είναι που οι άνθρωποι κατάλαβαν. Δεν είχε δουλειά. Έτσι, η κατανόηση των βέλτιστων πρακτικών της τεχνολογίας εργάζεστε με είναι τεράστια. Πολύ σημαντικό. Έτσι θα πάμε να μπει σε DynamoDB. DynamoDB είναι AWS του πλήρως Διαχείριση NoSQL πλατφόρμα. Τι σημαίνει πλήρως Διαχείριση σημαίνει; Αυτό σημαίνει ότι δεν χρειάζεται να πραγματικά ανησυχείτε για τίποτα. Θα έρθει σε σας πω μας, χρειάζομαι ένα τραπέζι. Χρειάζεται αυτή τη μεγάλη ικανότητα. Μπορείτε να πατήσετε το κουμπί, και την παροχή εμείς όλες οι υποδομές πίσω από τη σκηνή. Τώρα που είναι τεράστια. Διότι όταν μιλάτε σχετικά με την κλιμάκωση μιας βάσης δεδομένων, Συστάδες δεδομένων σε NoSQL κλίμακα, τρέξιμο petabytes, εκτέλεση εκατομμυρίων συναλλαγές ανά δευτερόλεπτο, Αυτά τα πράγματα δεν είναι μικρές ομάδες. Μιλάμε χιλιάδες περιπτώσεις. Διευθύνων χιλιάδες περιπτώσεις, ακόμη και εικονικές περιπτώσεις, είναι ένας πραγματικός πόνος στην άκρη. Θέλω να πω, σκεφτείτε κάθε φορά μπάλωμα λειτουργικό σύστημα βγαίνει ή μια νέα έκδοση της βάσης δεδομένων. Τι σημαίνει αυτό να σας λειτουργικά; Αυτό σημαίνει ότι έχεις 1.200 διακομιστές που πρέπει να ενημερωθούν. Τώρα, ακόμη και με τον αυτοματισμό, ότι μπορεί να πάρει πολύ χρόνο. Αυτό μπορεί να προκαλέσει πολλά επιχειρησιακή πονοκεφάλους, γιατί μπορεί να έχουν τις υπηρεσίες προς τα κάτω. Όπως έχω ενημερώσει αυτές τις βάσεις δεδομένων, θα θα μπορούσε να κάνει το μπλε πράσινο αναπτύξεις όπου μπορώ να αναπτύξω και να αναβαθμίσει το μισό μου κόμβους, και στη συνέχεια να αναβαθμίσετε το άλλο μισό. Πάρτε εκείνα τα κάτω. Έτσι, τη διαχείριση της υποδομής κλίμακας είναι εξαιρετικά επώδυνη. Και AWS να λάβει τον πόνο έξω από αυτό. Και NoSQL βάσεις δεδομένων μπορεί να να είναι εξαιρετικά επώδυνη λόγω του τρόπου που κλίμακα. Κλίμακα οριζόντια. Αν θέλετε να πάρετε μια μεγαλύτερη NoSQL βάση δεδομένων, μπορείτε να αγοράσετε περισσότερους κόμβους. Κάθε κόμβος που αγοράζετε είναι μια άλλη επιχειρησιακή πονοκέφαλο. Οπότε ας κάποιος άλλος το κάνει αυτό για σας. AWS μπορεί να το κάνει αυτό. Στηρίζουμε τις αξίες βασικό έγγραφο. Τώρα δεν πάει πάρα πολύ μέσα από την άλλη διάγραμμα. Υπάρχουν πολλές διαφορετικές γεύσεις της NoSQL. Είναι όλα τα είδη του να πάρει munged μαζί σε αυτό το σημείο. Μπορείτε να δείτε στις ομάδες DynamoDB και να πω ναι, είμαστε και οι δύο ένα έγγραφο και μια τιμή κλειδιού αποθηκεύσετε αυτό το σημείο. Και μπορείτε να υποστηρίζουν τις λειτουργίες του ενός πάνω στο άλλο. Για μένα, πολλά από αυτά είναι πραγματικά έξι ενός μισο δωδεκάδα της άλλης. Κάθε μία από αυτές τις τεχνολογίες είναι πρόστιμο τεχνολογία και πρόστιμο λύση. Δεν θα έλεγα MongoDB είναι καλύτερη ή χειρότερα από ό, Καναπές, στη συνέχεια, Κασσάνδρα, Στη συνέχεια Ντιναμό, ή το αντίστροφο. Θέλω να πω, αυτά είναι μόνο επιλογές. Είναι γρήγορο και είναι συνεπής σε οποιαδήποτε κλίμακα. Έτσι, αυτό είναι ένα από τα μεγαλύτερα μπόνους που μπορείτε να πάρετε με την AWS. Με DynamoDB είναι η ικανότητα για να πάρει ένα χαμηλό μονοψήφιο χιλιοστών του δευτερολέπτου καθυστέρησης σε οποιαδήποτε κλίμακα. Αυτός ήταν ένας στόχος του σχεδιασμού του συστήματος. Και έχουμε πελάτες που κάνουν εκατομμύρια συναλλαγές ανά δευτερόλεπτο. Τώρα θα πάω με ορισμένες από αυτές περιπτώσεις χρήσης σε λίγα λεπτά εδώ. Ολοκληρωμένη control-- πρόσβασης έχουμε αυτό που ονομάζουμε Ταυτότητα Διαχείρισης Πρόσβασης, ή ΙΑΜ. Είναι διαπερνά κάθε σύστημα, κάθε υπηρεσία που προσφέρει AWS. DynamoDB δεν αποτελεί εξαίρεση. Μπορείτε να ελέγχετε την πρόσβαση στους πίνακες DynamoDB. Σε όλους τους λογαριασμούς σας AWS από καθορίζοντας τους ρόλους και τα δικαιώματα πρόσβασης στη δευτερογενή υποδομή. Και αυτό είναι ένα βασικό και αναπόσπαστο συστατικό αυτό που λέμε Προγραμματισμός οδηγούμενος από γεγονότα. Τώρα αυτό είναι ένα νέο πρότυπο. Κοινό: Πώς θα είναι το ποσοστό της αληθινής σας θετικά έναντι λανθασμένων αρνητικών για σύστημα ελέγχου πρόσβασης σας; RICK Houlihan: True θετικά έναντι ψευδώς αρνητικά; Κοινό: Επιστρέφοντας τι θα πρέπει να επιστρέφουν; Σε αντίθεση με κάποια στιγμή αυτό δεν θα επιστρέψει όταν θα πρέπει να επικυρώσει; RICK Houlihan: Δεν μπορώ να σας πω ότι. Αν υπάρχει κάποια αποτυχίες βασίζεται στο ότι, Δεν είμαι το κατάλληλο πρόσωπο να ρωτήσεις ότι η συγκεκριμένη ερώτηση. Αλλά αυτό είναι μια καλή ερώτηση. Θα ήμουν περίεργος να μάθω ότι ο ίδιος, στην πραγματικότητα. Και έτσι στη συνέχεια και πάλι, το νέο πρότυπο εξαρτάται από συμβάντα προγραμματισμού. Αυτή είναι η ιδέα ότι μπορείς να υλοποιήσουν πολύπλοκες εφαρμογές που μπορεί να λειτουργήσει ένα πολύ, πολύ υψηλή κλίμακα χωρίς καμία υποδομή. Χωρίς οποιαδήποτε σταθερή απολύτως υποδομή. Και θα μιλήσουμε λίγο για το τι σημαίνει αυτό όπως να πάρει στο επόμενο ζεύγος των charts. Το πρώτο πράγμα που θα κάνουμε είναι θα μιλήσουμε για τους πίνακες. Τύπους δεδομένων API για την Ντιναμό. Και το πρώτο πράγμα που θα παρατηρήσετε όταν κοιτάς αυτό, αν είστε εξοικειωμένοι με οποιαδήποτε βάση δεδομένων, βάσεις δεδομένων έχουν πραγματικά δύο είδη APIs Θα το ονομάσουμε. Ή δύο σύνολα API. Ένα από αυτά θα είναι διοικητική API. Τα πράγματα έχουν αναλάβει τη φροντίδα του οι λειτουργίες της βάσης δεδομένων. Διαμόρφωση του κινητήρα αποθήκευσης, τη σύσταση και την προσθήκη πίνακες. δημιουργία βάσης δεδομένων καταλόγους και περιπτώσεις. Αυτά things-- σε DynamoDB, σας έχουν πολύ μικρή, μικρή λίστες. Έτσι, σε άλλες βάσεις δεδομένων, μπορείτε να δείτε δεκάδες των εντολών, των διοικητικών εντολές, για τη διαμόρφωση Αυτές οι πρόσθετες επιλογές. Σε DynamoDB δεν χρειάζεται, διότι εκείνες δεν ρυθμίσετε το σύστημα, το κάνουμε. Έτσι, το μόνο πράγμα που χρειάζεται να κάνετε είναι να πες μου τι μέγεθος πίνακα χρειάζομαι. Έτσι, μπορείτε να πάρετε μια πολύ περιορισμένο σύνολο εντολών. Μπορείτε να πάρετε μια Δημιουργία Τραπεζιού Update, πίνακα, Διαγραφή πίνακα, και Περιγράψτε πίνακα. Αυτά είναι τα μόνα πράγματα χρειάζεστε για DynamoDB. Δεν χρειάζεστε ένα αποθήκευση διαμόρφωση του κινητήρα. Δεν χρειάζεται να ανησυχείτε για την αντιγραφή. Δεν χρειάζεται να ανησυχείτε για sharding. Δεν χρειάζεται να ανησυχείτε για κάποια από αυτά τα πράγματα. Έχουμε κάνει όλα για εσάς. Έτσι, αυτό είναι ένα τεράστιο ποσό των γενικών αυτό είναι απλά σήκωσε από το πιάτο σας. Στη συνέχεια, έχουμε τις επιχειρήσεις σάλτσες. Σάλτσες είναι κάτι το οποίο οφείλουμε καλούν σε βάση δεδομένων που είναι Δημιουργία, Ενημέρωση, Διαγραφή φορείς. Αυτά είναι τα κοινά σας λειτουργιών της βάσης δεδομένων. Τα πράγματα όπως σημείο πώλησης, να πάρετε το αντικείμενο, ενημέρωση αντικείμενα, διαγραφές, το ερώτημα παρτίδα, σάρωση. Αν θέλετε να σαρώσει το σύνολο του πίνακα. Τραβήξτε τα πάντα από το τραπέζι. Ένα από τα ωραία πράγματα για DynamoDB είναι παράλληλα επιτρέπει τη σάρωση. Έτσι μπορείτε πραγματικά να επιτρέψτε μου να ξέρω πόσα τα θέματα που θέλετε να εκτελείται στο συγκεκριμένο σάρωσης. Και μπορούμε να τρέξουμε αυτές τις κλωστές. Μπορούμε να γυρίσετε αυτή την σάρωση μέχρι σε όλη πολλαπλά threads ώστε να μπορείτε να σαρώσει το σύνολο του πίνακα χώρο πολύ, πολύ γρήγορα DynamoDB. Η άλλη API που έχουμε είναι αυτό που λέμε ρέματα μας API. Εμείς δεν πρόκειται να μιλήσω πάρα πολύ πολύ γι 'αυτό τώρα. Έχω κάποιο περιεχόμενο αργότερα σχετικά με το κατάστρωμα γι 'αυτό. Αλλά ρεύματα είναι πραγματικά μια running-- Σκεφτείτε το σαν διέταξε ο χρόνος και αλλαγή καταγραφής διαμέρισμα. Ό, τι συμβαίνει στο Ο πίνακας εμφανίζεται στη ροή. Κάθε γράψει στον πίνακα εμφανίζεται στο ρεύμα. Μπορείτε να διαβάσετε αυτό το ρεύμα, και μπορείτε να κάνετε τα πράγματα με αυτό. Θα μιλήσουμε για το τι τα είδη των πραγμάτων που κάνει με τα πράγματα όπως αντιγραφή, δημιουργώντας δευτερεύοντα ευρετήρια. Όλα τα είδη των πραγματικά δροσερό πράγματα που μπορείτε να κάνετε με αυτό. Τύποι δεδομένων. Σε DynamoDB, υποστηρίζουμε τόσο το κλειδί αξία και στοιχεία του εγγράφου τύπους. Από την αριστερή πλευρά της οθόνης Εδώ, έχουμε βασικά είδη μας. Βασικά είδη αξίας. Αυτά είναι χορδές, αριθμούς, και τα εκτελέσιμα. Έτσι, μόλις τρεις βασικούς τύπους. Και τότε μπορείτε να έχετε σύνολα από αυτά. Ένα από τα ωραία πράγματα για NoSQL είναι μπορείτε να περιέχουν οι πίνακες ως ιδιότητες. Και με DynamoDB σας μπορεί να περιέχει πίνακες των βασικών τύπων ως ιδιοκτησία της ρίζας. Και έπειτα υπάρχει το τύπους εγγράφων. Πόσοι άνθρωποι είναι εξοικειωμένοι με το JSON; Εσείς εξοικειωμένοι με JSON τόσο πολύ; Είναι βασικά το JavaScript, Αντικείμενο, Συμβολισμός. Σας επιτρέπει να βασικά καθορίσει μια ιεραρχική δομή. Μπορείτε να αποθηκεύσετε ένα έγγραφο JSON για DynamoDB χρήση κοινών εξαρτημάτων ή δομικά στοιχεία που είναι διαθέσιμα στις περισσότερες γλώσσες προγραμματισμού. Έτσι, εάν έχετε Java, είστε κοιτάζοντας χάρτες και καταλόγους. Μπορώ να δημιουργήσω τα αντικείμενα που χάρτη της περιοχής. Ένας χάρτης ως βασικές αξίες αποθηκεύονται ως ιδιότητες. Και θα μπορούσε να έχει καταλόγους αξιών εντός των συγκεκριμένων ιδιοτήτων. Μπορείτε να αποθηκεύσετε αυτό το πολύπλοκο ιεραρχική δομή ως ένα ενιαίο χαρακτηριστικό ενός στοιχείου DynamoDB. Έτσι πίνακες σε DynamoDB, όπως και τα περισσότερα NoSQL βάσεις δεδομένων, πίνακες έχουν στοιχεία. Σε MongoDB θα κάνατε ονομάζουν αυτά τα έγγραφα. Και θα ήταν η βάση καναπέ. Επίσης μια βάση δεδομένων έγγραφο. Μπορείτε να καλέσετε αυτά τα έγγραφα. Έγγραφα ή στοιχεία που έχουν χαρακτηριστικά. Μπορεί να υπάρξει χαρακτηριστικά ή Δεν υπάρχουν επί του θέματος. Σε DynamoDB, υπάρχει ένα υποχρεωτικό χαρακτηριστικό γνώρισμα. Ακριβώς όπως σε μια σχεσιακή βάση δεδομένων, έχετε ένα πρωτεύον κλειδί πάνω στο τραπέζι. DynamoDB έχει αυτό που λέμε ένα κλειδί κατακερματισμού. Hash κλειδί πρέπει να είναι μοναδικό. Έτσι, όταν ορίζω έναν πίνακα κατακερματισμού, Βασικά αυτό που λέω είναι κάθε στοιχείο θα έχει ένα κλειδί κατακερματισμού. Και κάθε δίεση πρέπει να είναι μοναδικό. Κάθε στοιχείο ορίζεται από το εν λόγω μοναδικό κλειδί κατακερματισμού. Και μπορεί να υπάρχει μόνο μία. Αυτό είναι εντάξει, αλλά πολλές φορές ό, τι οι άνθρωποι χρειάζονται είναι που θέλουν είναι αυτό κατακερματισμού κλειδί για να κάνουμε λίγο περισσότερο από ό, τι ακριβώς είναι ένα μοναδικό αναγνωριστικό. Συχνά θέλουμε να χρησιμοποιήσουμε το κλειδί κατακερματισμού ως η κορυφαία κουβά επίπεδο συγκέντρωσης. Και ο τρόπος που το κάνουμε αυτό είναι με την προσθέτοντας αυτό που λέμε ένα ευρύ φάσμα που καλύπτει. Έτσι, αν αυτό είναι μόνο ένα hash τραπέζι, αυτό πρέπει να είναι μοναδικό. Αν πρόκειται για ένα hash πίνακα και το εύρος, η συνδυασμός του κατακερματισμού και της περιοχής πρέπει να είναι μοναδικό. Έτσι σκεφτείτε το αυτό τον τρόπο. Αν έχω ένα φόρουμ. Και η μορφή έχει τα θέματα, έχει θέσεις, και έχει τις απαντήσεις. Γι 'αυτό και θα μπορούσε να έχει ένα hash κλειδί, το οποίο είναι το αναγνωριστικό θέμα. Και θα μπορούσα να έχω ένα ευρύ φάσμα που καλύπτει, το οποίο είναι το αναγνωριστικό απόκριση. Με αυτόν τον τρόπο, αν θέλω να πάρω όλα τα απαντήσεις για το συγκεκριμένο θέμα, Μπορώ να διερευνούν μόνο το χασίς. Θέλω μόνο να πω να μου δώσει όλα τα στοιχεία που έχουν αυτό το κλειδί. Και Πάω να πάρει κάθε ερώτηση ή να δημοσιεύσετε για το συγκεκριμένο θέμα. Αυτές οι κορυφαίες συναθροίσεις επίπεδο είναι πολύ σημαντικά. Υποστηρίζουν την κύρια πρόσβαση μοτίβο της αίτησης. Σε γενικές γραμμές, αυτή η είναι ό, τι θέλουμε να κάνουμε. Θέλουμε αυτό το table-- όπως μπορείτε να φορτώσετε το τραπέζι, θέλουμε να δομήσει τα δεδομένα εντός του πίνακα σε τρόπον ότι η εφαρμογή μπορεί να είναι πολύ ανακτήσετε γρήγορα τα αποτελέσματα. Και μάλιστα πολλές φορές ο τρόπος για να γίνει αυτό είναι να διατηρήσει αυτές τις ομαδοποιήσεις όπως εισάγετε τα δεδομένα. Βασικά, είμαστε διάδοση των δεδομένων σε φωτεινό κουβά καθώς έρχεται σε. Πλήκτρα Σειρά επιτρέπουν me-- κατακερματισμού κλειδιά πρέπει να είναι η ισότητα. Όταν ένα ερώτημα hash, έχω να πω να μου δώσει ένα hash που ισούται με αυτό. Όταν ερώτημα σε μια σειρά, θα να πω να μου δώσει μια σειρά ότι η χρήση κάθε είδους πλούσια φορέα που υποστηρίζουμε. Δώσε μου όλα τα στοιχεία για ένα hash. Είναι ίση, μεγαλύτερη από, λιγότερο από, μήπως αρχάς, μήπως υπάρχουν μεταξύ των δύο αυτών τιμών; Έτσι, αυτά τα είδη των ερωτημάτων εύρους ότι μας ενδιαφέρει πάντα. Τώρα ένα πράγμα για τα δεδομένα, όταν Αν κοιτάξει κανείς την πρόσβαση στα δεδομένα, όταν θα έχουν πρόσβαση στα δεδομένα, είναι πάντα για μια συνάθροιση. Είναι πάντα σχετικά με τις εγγραφές που σχετίζονται με αυτό. Δώσε μου τα πάντα εδώ that's-- όλα οι συναλλαγές σε αυτήν την πιστωτική κάρτα για τον τελευταίο μήνα. Αυτό είναι μια ομαδοποίηση. Σχεδόν ό, τι κάνετε στο η βάση δεδομένων είναι ένα είδος συνάθροισης. Έτσι είναι σε θέση να είναι σε θέση να καθορίσει αυτών των κάδων και να σας δώσει αυτά εύρος χαρακτηριστικά ώστε να είναι σε θέση να αναζητούν σε, εκείνα που είναι πλούσια ερωτήματα υποστηρίζουν πολλοί, πολλά, πολλά σχέδια πρόσβασης εφαρμογή. Έτσι, το άλλο πράγμα το κλειδί κατακερματισμού κάνει είναι να μας δίνει ένα μηχανισμό να είναι σε θέση να διαδώσουν τα δεδομένα γύρω. NoSQL βάσεις δεδομένων λειτουργούν καλύτερα όταν τα δεδομένα είναι ομοιόμορφα κατανεμημένα σε όλη την σύμπλεγμα. Πόσοι άνθρωποι είναι εξοικειωμένοι με αλγόριθμοι κατακερματισμού; Όταν λέω κατακερματισμού και hashing-- επειδή ένα αλγόριθμο κατακερματισμού είναι ένας τρόπος να είναι σε θέση να παράγει μια τυχαία τιμή από οποιαδήποτε δεδομένη τιμή. Έτσι, στη συγκεκριμένη περίπτωση, η hash αλγόριθμο που διατρέχουμε είναι η ΝΔ 5 με βάση. Και αν έχω μια ταυτότητα, και αυτό είναι το κλειδί κατακερματισμού μου, έχω 1, 2, 3. Όταν τρέχω τον αλγόριθμο κατακερματισμού, πρόκειται να έρθει πίσω και να πει, και ισούται με 1 7Β, 2 ισούται με 48, 3 ισούται με το CD. Είναι εξαπλωθεί σε όλο το πλήκτρο space. Και γιατί το κάνεις αυτό; Διότι αυτό κάνει βέβαιος ότι μπορώ να θέσει τα αρχεία σε πολλαπλές κόμβους. Αν το κάνω αυτό σταδιακά, 1, 2, 3. Και έχω μια σειρά κατακερματισμού που τρέχει σε αυτή τη συγκεκριμένη περίπτωση, ένα μικρό χώρο κατακερματισμού, τρέχει από 00 έως FF, Στη συνέχεια τα αρχεία που πρόκειται να έρθουν σε και πρόκειται να πάει 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12. Τι συμβαίνει? Κάθε ένθετο πρόκειται να στον ίδιο κόμβο. Βλέπετε τι εννοώ; Διότι όταν χωρίσει το χώρο, και απλώνω τα αρχεία αυτά σε όλη, και εγώ διαμέρισμα, Πάω να πω διαμέρισμα 1 διαθέτει πλήκτρο διαστήματος 0-54. Διαμέρισμα 2 είναι 55-89. Διαμέρισμα 3 είναι ΑΑ έως FF. Έτσι, αν είμαι με τη χρήση γραμμικά προσαύξηση Ταυτότητες, μπορείτε να δείτε τι συμβαίνει. 1, 2, 3, 4, 5, 6, όλοι τρόπος μέχρι 54. Έτσι όπως είμαι σφυρηλάτηση εγγραφές στο σύστημα, πάντα καταλήγει να εισέλθει ένα κόμβο. Αυτό δεν είναι καλό. Αυτό είναι ένα antipattern. Σε MongoDB έχουν αυτό το πρόβλημα αν δεν θέλετε να χρησιμοποιήσετε ένα κλειδί κατακερματισμού. MongoDB σας δίνει τη δυνατότητα να της hashing την τιμή του κλειδιού. Θα πρέπει πάντα να το κάνουμε αυτό, αν χρησιμοποιείτε μια προσαύξηση χασίς κλειδί στο MongoDB, ή θα είναι κάρφωμα κάθε εγγραφής σε έναν κόμβο, και θα σας περιορίζοντας διακίνηση εγγραφής σας άσχημα. Κοινό: Είναι ότι Α9 169 σε δεκαδική; RICK Houlihan: Ναι, είναι κάπου εκεί γύρω. Α9, δεν ξέρω. Θα έπρεπε να πάρει δυαδικό μου σε δεκαδικό αριθμομηχανή. Το μυαλό μου δεν λειτουργεί έτσι. Κοινό: Ακριβώς ένα γρήγορο της σχόλιά σας Mongo. Έτσι είναι το αναγνωριστικό αντικειμένου που έρχεται εγγενώς με Mongo το κάνουμε αυτό; RICK Houlihan: Μήπως να το κάνει αυτό; Αν το καθορίσετε. Με MongoDB, έχετε την επιλογή. Μπορείτε να specify-- κάθε έγγραφο MongoDB πρέπει να έχει ένα αναγνωριστικό χαρακτήρα υπογράμμισης. Αυτή είναι η μοναδική αξία. Σε MongoDB μπορείτε να καθορίσετε αν θα το hash ή όχι. Απλώς να σας δώσει την επιλογή. Εάν γνωρίζετε ότι είναι τυχαία, δεν υπάρχει πρόβλημα. Δεν χρειάζεται να το κάνουμε αυτό. Αν ξέρετε ότι δεν είναι τυχαίο, ότι αυτό είναι που αυξάνει, τότε κάντε το χασίς. Τώρα το πράγμα για κατακερματισμού, τη στιγμή που θα hash ένα value-- και αυτό είναι γιατί τα κλειδιά κατακερματισμού είναι πάντα μοναδικά ερωτήματα, γιατί έχω αλλάξει η τιμή, τώρα δεν μπορώ να κάνω ένα ερώτημα εύρους. Δεν μπορώ να πω είναι αυτό μεταξύ αυτού και ότι, επειδή η τιμή κατακερματισμού δεν πρόκειται να είναι ισοδύναμη με την πραγματική τιμή. Έτσι, όταν κατακερματισμού που κλειδί, αυτό είναι μόνο η ισότητα. Αυτός είναι ο λόγος που σε DynamoDB δίεση ερωτήματα είναι πάντα μόνο την ισότητα. Έτσι, τώρα σε μια σειρά key-- όταν μπορώ να προσθέσω ότι το ευρύ φάσμα που καλύπτει, Τα αρχεία αυτά βασικό φάσμα έρχονται σε όλα και που έχετε αποθηκευμένα στο ίδιο διαμέρισμα. Έτσι, είναι πολύ γρήγορα, εύκολα ανακτηθεί διότι αυτό είναι το κλειδί κατακερματισμού, αυτό είναι το εύρος. Και μπορείτε να δείτε τα πάντα με την ίδια hash παίρνει αποθηκεύονται στον ίδιο χώρο διαμέρισμα. Μπορείτε να χρησιμοποιήσετε αυτό το κλειδί σειρά για να βοηθήσει εντοπίσετε τα δεδομένα σας κοντά στη μητρική της. Έτσι, αυτό που είμαι πραγματικά κάνεις εδώ; Αυτό είναι ένα σε πολλές σχέσεις. Η σχέση μεταξύ δίεση και το ευρύ φάσμα που είναι ένα προς πολλά. Μπορώ να έχω πολλά κλειδιά κατακερματισμού. Μπορώ να έχω μόνο πολλαπλού εύρους πλήκτρα μέσα σε κάθε πλήκτρο της δίεσης. Το hash ορίζει τη μητρική, Το εύρος καθορίζει τα παιδιά. Έτσι μπορείτε να δείτε δεν υπάρχει αναλογική εδώ μεταξύ των σχεσιακών κατασκεύασμα και οι ίδιοι τύποι κατασκευάζει στην NoSQL. Οι άνθρωποι μιλούν για NoSQL ως μη σχεσιακή. Δεν είναι μη σχεσιακή. Δεδομένων έχει πάντα σχέσεις. Αυτές οι σχέσεις μόνο διαμορφώνονται με διαφορετικό τρόπο. Ας μιλήσουμε λίγο κομμάτι για αντοχή. Όταν γράφετε για να DynamoDB, γράφει είναι πάντα τριμερή αναπαραχθούν. Πράγμα που σημαίνει ότι έχουμε τρεις ΑΖ. AZ είναι Διαθεσιμότητας Ζώνες. Μπορείτε να σκεφτείτε μια Διαθεσιμότητα Ζώνη ως ένα κέντρο δεδομένων ή μια συλλογή των κέντρων δεδομένων. Αυτά τα πράγματα είναι γεωγραφικά απομονώθηκε από το άλλο σε διάφορες ζώνες ρηγμάτων, σε όλη την διαφορετικά δίκτυα ηλεκτρικής ενέργειας και των πλημμυρικών περιοχών. Μια αποτυχία σε ένα AZ δεν είναι πρόκειται να πάρει κάτω από μια άλλη. Είναι, επίσης, συνδέεται μαζί με τη σκοτεινή ίνα. Υποστηρίζει ένα υπο 1 χιλιοστών του δευτερολέπτου καθυστέρησης μεταξύ Azs. Έτσι επαναλήψεις δεδομένων σε πραγματικό χρόνο ικανή πολλαπλών Azs. Και μάλιστα πολλές φορές πολλαπλών αναπτύξεις Α-Ω να ανταποκριθεί στις υψηλές απαιτήσεις διαθεσιμότητας των περισσότερων οργανώσεων επιχειρήσεων. Έτσι DynamoDB μεταδίδεται σε τρεις Azs από προεπιλογή. Είμαστε μόνο πρόκειται να γνώσης η διαγραφή όταν δύο από τις τρεις κόμβους επανέλθουμε και να πω, ναι, εγώ το πήρα. Γιατί αυτό? Επειδή από την πλευρά της ανάγνωσης είμαστε μόνο πρόκειται να σας δώσει τα στοιχεία πίσω όταν θα το πάρει από δύο κόμβους. Αν είμαι σε ολόκληρη την αντιγραφή τρία, και διαβάζω από δύο, Είμαι πάντα εγγυημένες να έχουν τουλάχιστον ένα εκείνων διαβάζει να είναι η πιο πρόσφατο αντίγραφο των δεδομένων. Αυτό είναι που κάνει DynamoDB συνεπής. Τώρα μπορείτε να επιλέξετε να ενεργοποιήσετε που συμβιβάζονται διαβάζει off. Σε αυτή την περίπτωση Πάω να πω, Θα διαβάσω μόνο από έναν κόμβο. Και δεν μπορώ να εγγυηθώ ότι πρόκειται να είναι τα πιο πρόσφατα δεδομένα. Έτσι, αν μια εγγραφή έρχεται, δεν έχει αναπαραχθεί ακόμη, θα πάμε για να πάρει το αντίγραφο αυτό. Αυτό είναι ένα τελικά συνεπής ανάγνωση. Και τι είναι αυτό είναι το ήμισυ του κόστους. Έτσι, αυτό είναι κάτι για να σκεφτεί. Όταν διαβάζετε έξω DynamoDB, και είστε δημιουργία ικανότητας ανάγνωσης σας μονάδες, αν επιλέξετε τελικά συνεπής διαβάζει, είναι πολύ πιο φθηνό, είναι περίπου το ήμισυ του κόστους. Και γι 'αυτό σας εξοικονομεί χρήματα. Αλλά αυτή είναι η επιλογή σας. Αν θέλετε μια συνεπή ανάγνωσης ή μια συνεπή τελικά ανάγνωσης. Αυτό είναι κάτι που μπορείτε να επιλέξετε. Ας μιλήσουμε για ευρετήρια. Γι 'αυτό και ανέφερε ότι κορυφή συνάθροιση επίπεδο. Έχουμε κατακερματισμού κλειδιά, και έχουμε κλειδιά φάσμα. Αυτό είναι ωραίο. Και αυτό είναι στην πρωτογενή τραπέζι, πήρε ένα κλειδί κατακερματισμού, πήρα ένα ευρύ φάσμα που καλύπτει. Τι σημαίνει αυτό? Έχω ένα χαρακτηριστικό που έχω μπορεί να τρέξει πλούσια ερωτήματα κατά. Είναι το βασικό φάσμα. Τα άλλα χαρακτηριστικά σε αυτό το item-- Μπορώ να φιλτράρετε τις ιδιότητες αυτές. Αλλά δεν μπορώ να κάνω τα πράγματα όπως, το αρχίζει με, ή είναι μεγαλύτερο από. Πως το κάνω αυτό? Έχω δημιουργήσει ένα ευρετήριο. Υπάρχουν δύο τύποι ευρετήρια σε DynamoDB. Ένας δείκτης είναι πραγματικά άλλη όψη του τραπεζιού. Και η τοπική δευτερεύον ευρετήριο. Η πρώτη θα μιλήσουμε για. Έτσι οι τοπικές δευτερεύοντα συνυπήρχαν στο ίδιο διαμέρισμα με τα δεδομένα. Και ως τέτοια, είναι επί το ίδιο φυσικό κόμβο. Είναι αυτό που λέμε συνεπής. Έννοια, θα αναγνωρίζουν η διαγραφή μαζί με τον πίνακα. Όταν το γράφουν έρχεται, θα γράψουμε μέσω του δείκτη. Θα γράψω μέχρι το τραπέζι, και στη συνέχεια θα αναγνωρίσουμε. Έτσι ώστε να είναι συνεπής. Μόλις η διαγραφή έχει αναγνωρίζεται από το τραπέζι, είναι εγγυημένο ότι ο τοπικό δευτερεύον ευρετήριο θα έχουν το ίδιο όραμα των δεδομένων. Αλλά αυτό που θα σας επιτρέψει να κάνετε είναι να Ο καθορισμός των πλήκτρων εναλλακτική σειρά. Πρέπει να χρησιμοποιούν το ίδιο hash πλήκτρο με το πρωτεύοντα πίνακα, επειδή συστεγάζονται σχετικά με την ίδιο διαμέρισμα, και είναι συνεπείς. Αλλά μπορώ να δημιουργήσετε ένα ευρετήριο με διαφορετικά κλειδιά φάσμα. Έτσι, για παράδειγμα, αν είχα ένα κατασκευαστή ότι είχε μια πρώτη πίνακα εξαρτήματα που έρχονται σε. Και πρώτων μέρη έρχονται σε, και από όπου και αν συγκεντρώνονται από τη συνέλευση. Και ίσως υπάρχει μια ανάκληση. Κάθε μέρος που έγινε από αυτό κατασκευαστή, μετά την ημερομηνία αυτή, Θα πρέπει να τραβήξει από τη γραμμή μου. Μπορώ να γυρίσετε ένα ευρετήριο ότι θα πρέπει να ψάχνει, συγκέντρωσης από την ημερομηνία της την κατασκευή του συγκεκριμένου τμήματος. Έτσι, αν επιτραπέζια επίπεδο μου ήταν ήδη κατακερματισμένο από τον κατασκευαστή, Ίσως ήταν τοποθετημένα σε μέρος ID, Ι μπορεί να δημιουργήσει ένα ευρετήριο από εκείνο τον πίνακα όπως κατακερματίζεται από τον κατασκευαστή και κυμαινόταν κατά την ημερομηνία της κατασκευής. Και με αυτόν τον τρόπο θα μπορούσα να πω, κάτι που κατασκευάστηκε μεταξύ αυτών των ημερομηνιών, Θα πρέπει να τραβήξει από τη γραμμή. Οπότε αυτό είναι ένα τοπικό δευτερεύον ευρετήριο. Αυτές έχουν ως αποτέλεσμα την περιορίζοντας κλειδί κατακερματισμού του χώρου σας. Επειδή συνυπήρχαν στον ίδιο κόμβο αποθήκευσης, περιορίζουν το κλειδί κατακερματισμού χώρο για 10 gigabytes. DynamoDB, σύμφωνα με το πίνακες, θα στεγανοποιήσει τραπέζι σας κάθε 10 gigabytes. Όταν βάζετε 10 συναυλίες των δεδομένων, θα πηγαίνετε [PHH], και προσθέτουμε άλλο κόμβο. Εμείς δεν θα χωρίσει το LSI σε πολλαπλές κατατμήσεις. Θα χωρίσει τον πίνακα. Αλλά εμείς δεν θα χωρίσει το LSI. Έτσι, αυτό είναι κάτι σημαντικό να κατανοήσουμε είναι αν κάνεις πολύ, πολύ, πολύ μεγάλες συναθροίσεις, Στη συνέχεια θα πάμε να περιορίζεται 10 gigabytes σε Ίσις σας. Αν αυτή είναι η περίπτωση, μπορούμε να χρησιμοποιήσει την παγκόσμια δευτερεύοντα. Παγκόσμια δευτερεύοντα είναι πραγματικά ένα άλλο τραπέζι. Μπορούν να υπάρχουν εντελώς μακριά για να η πλευρά των πρωτογενών τραπέζι σας. Και επιτρέψτε μου να βρει μια εντελώς διαφορετική δομή. Έτσι σκεφτείτε το σαν δεδομένα που εισάγονται σε δύο διαφορετικούς πίνακες, δομημένη με δύο διαφορετικούς τρόπους. Μπορώ να καθορίσει μια εντελώς διαφορετικό κλειδί κατακερματισμού. Μπορώ να καθορίσει μια εντελώς διαφορετικό κλειδί εύρος. Και μπορώ να τρέξω αυτό εντελώς ανεξάρτητα. Ως Μάλιστα, έχω τροφοδοτείται ικανότητα ανάγνωσης μου και να γράφουν για την ικανότητα μου παγκόσμια δευτερεύοντα ευρετήρια εντελώς ανεξάρτητα της πρωτογενούς τραπέζι μου. Αν μπορώ να προσδιορίσω αυτό το ευρετήριο, λέω το πόσο διαβάζουν και να γράφουν χωρητικότητα πρόκειται να χρησιμοποιείτε. Και αυτό είναι ξεχωριστό από την πρωτοβάθμια τραπέζι μου. Τώρα και οι δύο από τους δείκτες μας επιτρέψει να όχι μόνο καθορίζουν χασίς και το εύρος κλειδιά, αλλά μας επιτρέψει να προβάλει πρόσθετες τιμές. Έτσι, αν θέλετε να διαβάσετε από το δείκτη, και θέλω να πάρω κάποιο σύνολο δεδομένων, Δεν χρειάζεται να πάμε πίσω στην κύρια τραπέζι για να πάρει τα πρόσθετα χαρακτηριστικά. Μπορώ να προβάλλουμε αυτές τις πρόσθετες αποδίδει στον πίνακα για να υποστηρίξει το μοτίβο πρόσβασης. Ξέρω ότι είμαστε κατά πάσα πιθανότητα να εμπλακούμε σε κάποια Πραγματικά, really-- μπουν τα ζιζάνια εδώ σε μερικά από αυτά τα πράγματα. Τώρα έχω να παρασύρει έξω από αυτό. Κοινό: [δεν ακούγεται] --table κλειδί σήμαινε ότι ένα hash; Η αρχική κατακερματισμού; Multi-ράγες; RICK Houlihan: Ναι. Ναί. Το κλειδί τραπέζι βασικά οδηγεί πίσω στο σημείο. Έτσι, ένας δείκτης είναι ένας δείκτης για την επιστροφή τα αρχικά στοιχεία πάνω στο τραπέζι. Τώρα μπορείτε να επιλέξετε να οικοδομήσουμε ένα δείκτη που έχει μόνο το κλειδί τραπέζι, και δεν υπάρχουν άλλες ιδιότητες. Και γιατί θα μπορούσε να το κάνω αυτό; Καλά, ίσως δεν έχω πολύ μεγάλα αντικείμενα. Θα ήθελα πραγματικά μόνο που χρειάζεται να ξέρετε which-- μοτίβο πρόσβασης μου θα μπορούσε να πει, ποια στοιχεία περιέχει αυτό το ακίνητο; Δεν χρειάζεται να επιστρέψετε το στοιχείο. Απλά πρέπει να ξέρετε ποια στοιχεία περιέχουν. Έτσι, μπορείτε να δημιουργήσετε ευρετήρια ότι έχουν μόνο το κλειδί πίνακα. Αλλά αυτό είναι αυτό που κατά κύριο λόγο ένας δείκτης στη βάση δεδομένων είναι για. Είναι για να είναι σε θέση να γρήγορα προσδιορίσουμε ποια αρχεία, ποιες σειρές, η οποία στοιχεία του πίνακα έχουν οι ιδιότητες που ψάχνω. ΓΓΠΣ, έτσι πώς λειτουργούν; ΓΓΠΣ ουσιαστικά είναι ασύγχρονη. Η ενημερωμένη έκδοση έρχεται στο τραπέζι, πίνακας στη συνέχεια ενημερώνεται ασύγχρονα όλα ΓΓΠΣ σας. Αυτός είναι ο λόγος που είναι ΓΓΠΣ τελικά συνεπής. Είναι σημαντικό να σημειωθεί ότι όταν είστε οικοδόμηση ΓΓΠΣ, και καταλαβαίνετε εσείς τη δημιουργία μια άλλη διάσταση της aggregation-- Τώρα ας πούμε ένα καλό παράδειγμα εδώ είναι ένας κατασκευαστής. Νομίζω ότι θα μπορούσε να μιλήσει για κατασκευαστές ιατρικών συσκευών. Κατασκευαστές ιατρικών συσκευών πολλάκις έχουν συνέχειες μέρη. Τα μέρη που πηγαίνουν σε μια αντικατάσταση ισχίου όλα έχουν ένα μικρό αριθμό σειράς τους. Και θα μπορούσαν να έχουν τα εκατομμύρια και εκατομμύρια και δισεκατομμύρια των μερών σε όλες τις συσκευές που στέλνουν. Λοιπόν, πρέπει να συσσωματώνονται κάτω διαφορετικές διαστάσεις, όλα τα μέρη σε συγκρότημα, όλα τα εξαρτήματα που έγιναν σε μια ορισμένη γραμμή, όλα τα μέρη που ήρθαν σε από μια ορισμένη κατασκευαστή σε μια συγκεκριμένη ημερομηνία. Και αυτές οι συναθροίσεις φορές σηκωθείτε σε δισεκατομμύρια. Γι 'αυτό και συνεργάζεται με ορισμένα από τα αυτά τα παιδιά που υποφέρουν επειδή είναι η δημιουργία Αυτές οι ομαδοποιήσεις ginormous σε δευτερεύοντα ευρετήρια τους. Μπορεί να έχουν μια πρωτογενή τμήματα πίνακα που έρχεται ως μόνο χασίς. Κάθε τμήμα έχει ένα μοναδικό σειριακό αριθμό. Μπορώ να χρησιμοποιήσω το αύξοντα αριθμό του κατακερματισμού. Είναι όμορφο. Πρώτων πίνακα δεδομένων μου έχει εξαπλωθεί σε όλη την πλήκτρο space. Μου [? γράφω ?] [? κατάποση?] είναι φοβερό. Παίρνω πολλά δεδομένα. Στη συνέχεια, αυτό που κάνουν είναι να δημιουργούν μια GSI. Και λέω, ξέρετε τι, θα πρέπει να δείτε όλα τα μέρη για αυτόν τον κατασκευαστή. Λοιπόν, ξαφνικά είμαι λαμβάνοντας ένα δισεκατομμύριο σειρές, και τα πράγματα επάνω έναν κόμβο, επειδή όταν Ι συγκεντρώνουν ως κατασκευαστής ID ως το χασίς, και τον αριθμό μέρος ως περιοχή, τότε όλοι την ξαφνική είμαι βάζοντας ένα δισεκατομμύριο μέρη σε ό, τι Αυτό κατασκευαστής έχει παραδοθεί μου. Αυτό μπορεί να προκαλέσει πολλά της πίεσης στο GSI, και πάλι, επειδή είμαι σφυρηλάτηση ενός κόμβου. Βάζω όλα αυτά εισάγει σε έναν κόμβο. Και αυτό είναι μια πραγματική περίπτωση προβληματική χρήση. Τώρα, πήρα ένα καλό σχέδιο πρότυπο για το πώς μπορείτε να αποφύγετε αυτό. Και αυτό είναι ένα από τα προβλήματα ότι πάντα συνεργαστεί με. Αλλά αυτό που συμβαίνει, είναι η GSI μπορεί να δεν έχουν αρκετή χωρητικότητα εγγραφής να είναι σε θέση να ωθήσει όλους εκείνους σειρές σε ένα μόνο κόμβο. Και τι θα συμβεί στη συνέχεια, είναι η πρωτεύον, ο πίνακας πελάτη, ο κύριος πίνακας θα πρέπει να τεθεί σε αναμονή επειδή η GSI δεν μπορούν να συμβαδίσουν. Έτσι, ποσοστό ένθετο μου θα εμπίπτουν στην πρωτογενή τραπέζι όπως GSI μου προσπαθεί να συμβαδίσει. Εντάξει, έτσι GSI, το LSI του, Ποιο από τα δύο πρέπει να χρησιμοποιήσω; LSI είναι συνεπείς. GSI είναι τελικά συνεπής. Αν αυτό είναι εντάξει, σας προτείνουμε να χρησιμοποιήσετε ένα GSI, είναι πολύ πιο ευέλικτο. LSI μπορεί να μοντελοποιηθεί ως ένα GSI. Και αν το μέγεθος των δεδομένων ανά κλειδιά κατακερματισμού συλλογή σας υπερβαίνει τα 10 gigabytes, Στη συνέχεια θα πάμε να θέλουν να χρησιμοποιήσουν ότι GSI επειδή είναι απλά ένα σκληρό όριο. Εντάξει, έτσι κλιμάκωση. Throughput στην Ντιναμό DB, σας η διάταξη αυτή μπορεί [δεν ακούγεται] διεκπεραίωσης σε ένα τραπέζι. Έχουμε πελάτες που έχουν τροφοδοτηθεί 60 billion-- κάνουν 60 δισεκατομμύρια αιτήματα, τακτικά λειτουργεί σε πάνω από ένα εκατομμύριο αιτήσεις ανά δευτερόλεπτο στα τραπέζια μας. Δεν υπάρχει πραγματικά κανένας θεωρητικό όριο στο πόσο και πόσο γρήγορα ο πίνακας μπορεί να τρέξει στην Ντιναμό ΣΠ. Υπάρχουν μερικά μαλακά όρια στο λογαριασμό σας ότι βάζουμε εκεί έτσι ώστε να μην τρελαίνομαι. Αν θέλετε περισσότερα από ότι, δεν είναι ένα πρόβλημα. Θα έρθει να μας πει. Θα εμφανιστεί το καντράν. Κάθε λογαριασμός περιορίζεται σε κάποιο επίπεδο σε κάθε υπηρεσία, ακριβώς έξω από το ρόπαλο έτσι ώστε οι άνθρωποι δεν τρελαίνομαι να πάρουν οι ίδιοι σε μπελάδες. Δεν υπάρχει όριο στο μέγεθος. Μπορείτε να βάλετε οποιοδήποτε αριθμό των αντικειμένων σε ένα τραπέζι. Το μέγεθος ενός στοιχείου είναι περιορίζονται σε 400 kilobytes καθένα, ότι θα είναι το αντικείμενο δεν είναι τα χαρακτηριστικά. Έτσι, το σύνολο όλων των γνωρισμάτων περιορίζεται σε 400 kilobytes. Και πάλι, έχουμε αυτό το μικρό ζήτημα LSI με το όριο 10 gigabyte ανά κατακερματισμού. Κοινό: Μικρός αριθμός, είμαι λείπει τι μου λες, ότι is-- Κοινό: Ω, 400 kilobyte είναι το μέγιστο μέγεθος ανά τεμάχιο. Έτσι, ένα στοιχείο έχει όλα τα χαρακτηριστικά. Έτσι, 400 k είναι το συνολικό μέγεθος αυτού του στοιχείου, 400 kilobytes. Έτσι, από όλες τις ιδιότητες συνδυάζονται, όλα τα δεδομένα ότι είναι σε όλες αυτές τις ιδιότητες, τυλίγονται σε ένα συνολικό μέγεθος, σήμερα σήμερα το όριο είναι 400 στοιχείο k. Έτσι κλιμάκωση και πάλι, επιτυγχάνεται με διαχωριστικά. Throughput τροφοδοτείται στο επίπεδο του πίνακα. Και στην πραγματικότητα υπάρχουν δύο κουμπιά. Έχουμε διαβάσει ικανότητα και να γράφουν ικανότητα. Έτσι, αυτές ρυθμίζονται ανεξάρτητα το ένα από το άλλο. Τηλεχειριστήριο μέτρο του απολύτως συνεπής διαβάζει. Εντάξει, οπότε αν λέτε θέλω 1.000 Τηλεχειριστήριο για εκείνους που είναι απολύτως συνεπής, αυτά είναι συνεπή διαβάζει. Αν πούμε ότι θέλω ενδεχόμενη συνεπής διαβάζει, μπορείτε διάταξη 1.000 Τηλεχειριστήριο, μπορείτε πάμε για να πάρει τελικά 2.000 συνεπής διαβάζει. Και μισή τιμή για όσους τελικά συνίστανται σε διαβάζει. Και πάλι, προσαρμοσμένο ανεξάρτητα το ένα από το άλλο. Και έχουν το throughput-- Εάν καταναλώνετε 100% του τηλεχειριστήριο σας, δεν πρόκειται να επηρεάσουν το διαθεσιμότητα των δικαιωμάτων σας. Έτσι είναι εντελώς ανεξάρτητες μεταξύ τους. Εντάξει, έτσι ώστε ένα από τα πράγματα που Ανέφερα εν συντομία ήταν στραγγαλισμού. Ο στραγγαλισμός είναι κακό. Ο στραγγαλισμός δείχνει κακό δεν SQL. Υπάρχουν πράγματα που μπορούμε να κάνουμε για να βοηθήσουμε θα ανακουφίσει τον επιτάχυνσης, η οποία θα αντιμετωπίζετε. Αλλά η καλύτερη λύση σε αυτό είναι, ας ρίξουμε μια ματιά σε αυτό που κάνεις, γιατί υπάρχει ένα αντι-πρότυπο στο παιχνίδι εδώ. Αυτά τα πράγματα, τα πράγματα όπως μη ομοιόμορφη φόρτο εργασίας, hot keys, ζεστό χωρίσματα. Είμαι χτυπώντας ένα συγκεκριμένο πλήκτρο space πολύ δύσκολο για κάποιον ιδιαίτερο λόγο. Γιατί το κάνω αυτό; Ας καταλάβω. Είμαι ανάμιξης ζεστού δεδομένων μου με κρύο δεδομένων. Αφήνω πίνακες μου να πάρει τεράστια, αλλά υπάρχει πραγματικά μόνο μερικά υποσύνολο των δεδομένων αυτό είναι πραγματικά ενδιαφέρον για μένα. Έτσι, για τα δεδομένα καταγραφής, για παράδειγμα, πολλά πελάτες, παίρνουν δεδομένων καταγραφής κάθε μέρα. Πήραν ένα τεράστιο ποσό των δεδομένων καταγραφής. Αν είστε λίγο ντάμπινγκ όλο αυτό το ημερολόγιο δεδομένα σε ένα μεγάλο τραπέζι, την πάροδο του χρόνου Ο πίνακας αυτός πρόκειται να πάρει μαζική. Αλλά είμαι πραγματικά ενδιαφέρονται μόνο τελευταίες 24 ώρες, οι τελευταίες επτά ημέρες, τις τελευταίες 30 ημέρες. Όποια και αν είναι το παράθυρο του χρόνου ότι είμαι ενδιαφέρεται για την εξέταση για την περίπτωση που με ενοχλεί, ή Η εκδήλωση που είναι ενδιαφέρον για μένα, αυτό είναι το μόνο χρονικό παράθυρο που χρειάζομαι. Επομένως, γιατί είμαι βάζοντας 10 χρόνια Αξίζει των δεδομένων καταγραφής στον πίνακα; Τι προκαλεί ότι είναι ο πίνακας του θραύσματος. Παίρνει τεράστια. Αρχίζει άπλωμα σε χιλιάδες κόμβων. Και δεδομένου ότι η ικανότητά σας είναι τόσο χαμηλή, είστε όντως περιοριστικός για κάθε μία από αυτές τις επιμέρους κόμβων. Ας ξεκινήσουμε εξετάζοντας το πώς εμείς ονομαστική ότι ο πίνακας πάνω. Πως διαχειριζόμαστε τα στοιχεία που λίγο καλύτερα να αποφύγετε αυτά τα προβλήματα. Και τι σημαίνει αυτό μοιάζει; Αυτό είναι τι μοιάζει. Αυτό είναι ό, τι κακό NoSQL μοιάζει. Πήρα ένα καυτό κλειδί εδώ. Αν κοιτάξουμε από την πλευρά της εδώ, όλα αυτά είναι κατατμήσεις μου. Πήρα 16 χωρίσματα εδώ σε αυτό το συγκεκριμένο βάση δεδομένων. Το κάνουμε αυτό όλη την ώρα. Τρέχω αυτό για τους πελάτες όλων των εποχών. Έχει καλέσει το χάρτη θερμότητας. Θερμότητας χάρτη μου λέει πως είσαι την πρόσβαση σε βασικές χώρο σας. Και τι είναι αυτό που μου λέει είναι ότι υπάρχει ένα συγκεκριμένο hash ότι αυτός ο τύπος θέλει μια πάρα πολύ, γιατί είναι χτύπημα πραγματικά, πραγματικά σκληρά. Έτσι, το μπλε είναι ωραίο. Μας αρέσει το μπλε. Δεν μας αρέσει το κόκκινο. Red όπου η πίεση παίρνει μέχρι 100%. 100%, τώρα θα πάμε να τεθεί σε αναμονή. Έτσι, κάθε φορά που θα δείτε κάποιον σαν κόκκινες γραμμές this-- και δεν είναι μόνο Ντιναμό DB-- κάθε βάση δεδομένων NoSQL έχει αυτό το πρόβλημα. Υπάρχουν αντι-πρότυπα που μπορούν να οδηγούν αυτά τα είδη των συνθηκών. Αυτό που κάνω είναι να συνεργαστώ με τους πελάτες να ανακουφίσει τις συνθήκες. Και τι σημαίνει αυτό μοιάζει; Και αυτό είναι να πάρει το πιο από Ντιναμό DB απόδοσης, αλλά είναι πραγματικά να πάρει η πιο έξω από NoSQL. Αυτό δεν περιορίζεται σε δυναμό. Αυτό είναι definitely-- μου Δούλευα σε Mongo. Είμαι εξοικειωμένος με πολλές πλατφόρμες NoSQL. Κάθε ένα έχει αυτούς τους τύπους ζεστού βασικά προβλήματα. Για να αξιοποιήσετε στο έπακρο κάθε NoSQL βάσεων δεδομένων, ειδικά Ντιναμό DB, Θέλετε να δημιουργήσετε τους πίνακες όπου το στοιχείο κλειδί κατακερματισμού έχει ένας μεγάλος αριθμός των διακριτών τιμών, υψηλό βαθμό πληθικότητας. Διότι αυτό σημαίνει ότι γράφω σε πολλές διαφορετικές κάδους. Οι περισσότεροι κάδοι είμαι γράφετε, το πιο πιθανό Είμαι για να διαδώσει το φορτίο εγγραφής ή διαβάστε φορτώσει έξω σε πολλούς κόμβους, το πιο πιθανό είμαι για να έχουν μια υψηλής απόδοσης πάνω στο τραπέζι. Και τότε θέλω οι τιμές να είναι ζήτησε αρκετά ομοιόμορφα την πάροδο του χρόνου και ομοιόμορφα ως τυχαία δυνατό. Λοιπόν, αυτό είναι το είδος του ενδιαφέροντα, επειδή δεν μπορώ πραγματικά να ελέγχου όταν οι χρήστες έρχονται. Έτσι, αρκεί να πούμε, αν εξαπλωθεί τα πράγματα σε όλη τη πλήκτρο διαστήματος, θα μπορούσε πιθανότατα να είναι σε καλύτερη κατάσταση. Υπάρχει μια ορισμένη ποσότητα χρόνο παράδοσης ότι δεν πρόκειται να είναι σε θέση ελέγχου. Αλλά αυτά είναι πραγματικά η δύο διαστάσεις που έχουμε, χώρος, πρόσβαση ομοιόμορφα εξάπλωση, ο χρόνος, οι αιτήσεις φθάνουν ομοιόμορφα κατανεμημένες στο χρόνο. Και αν αυτά τα δύο Οι όροι πληρούνται, τότε αυτό είναι ό, τι είναι πρόκειται να μοιάσει. Αυτό είναι πολύ καλύτερο. Είμαστε πολύ χαρούμενοι εδώ. Έχουμε μια πολύ ακόμα και συχνή πρόσβαση. Ναι, ίσως παίρνετε ένα λίγη πίεση κάθε τώρα και στη συνέχεια, αλλά τίποτα πραγματικά πάρα πολύ εκτεταμένες. Γι 'αυτό είναι εκπληκτικό πόσες φορές, όταν δουλεύω με τους πελάτες, ότι η πρώτη γραφική παράσταση με το μεγάλο κόκκινο μπαρ και όλα αυτά άσχημο κίτρινο είναι σε όλη τη χώρα, εμείς να γίνει με την άσκηση μετά από δύο μήνες του νέου αρχιτεκτονικής, τρέχετε την ίδια ακριβώς φόρτο εργασίας κατά την ακριβή ίδιο φορτίο. Και αυτό είναι αυτό που ψάχνει, όπως τώρα. Έτσι τι μπορείτε να πάρετε με NoSQL είναι σχήμα δεδομένα που είναι απολύτως δεμένο με το πρότυπο πρόσβασης. Και μπορείτε να βελτιστοποιήσετε αυτό το σχήμα δεδομένων να υποστηρίξει ότι η συχνή πρόσβαση. Αν δεν το κάνετε, τότε θα πάμε για να δείτε αυτούς τους τύπους των προβλημάτων με αυτά τα πλήκτρα. Κοινό: Λοιπόν, αναπόφευκτα κάποια σημεία πρόκειται να είναι θερμότερος από ό, τι άλλοι. RICK Houlihan: Πάντα. Πάντοτε. Ναι, θέλω να πω ότι υπάρχει πάντα a-- και πάλι, δεν υπάρχει μερικά σχεδιαστικά πρότυπα θα περάσει ότι θα μιλήσουμε για το πώς θα αντιμετωπίσει με αυτά τα σούπερ μεγάλες συναθροίσεις. Θέλω να πω, πήρα να τους έχουν, πώς μπορούμε να αντιμετωπίσουμε μαζί τους; Πήρα μια πολύ καλή περίπτωση χρήσης ότι θα μιλήσουμε για γι 'αυτό. Εντάξει, ας μιλήσουμε τώρα για ορισμένους πελάτες. Αυτοί οι τύποι είναι AdRoll. Δεν ξέρω αν είστε εξοικειωμένοι με AdRoll. Μπορείτε πιθανώς να τα δείτε πολλά στο πρόγραμμα περιήγησης. Είναι ad εκ νέου στόχευση, είναι το μεγαλύτερο επιχειρηματικό ad εκ νέου στόχευση εκεί έξω. Συνήθως εκτελούν τακτικά δρομολόγια άνω 60 δισεκατομμύρια συναλλαγές ανά ημέρα. Κάνουν πάνω από ένα εκατομμύριο συναλλαγές ανά δευτερόλεπτο. Θα έχουμε ένα αρκετά απλό πίνακα δομή, το πιο πολυσύχναστο τραπέζι. Είναι ουσιαστικά μόνο ένα hash κλειδί είναι το cookie, η περιοχή είναι η δημογραφική κατηγορία, και στη συνέχεια το τρίτο χαρακτηριστικό είναι η βαθμολογία. Έτσι, όλοι έχουμε τα cookies στον Ο περιηγητής μας από αυτά τα παιδιά. Και όταν πηγαίνετε σε ένα συμμετέχουν έμποροι, που ουσιαστικά θα στείλει σε όλη την διάφορες δημογραφικές κατηγορίες. Όταν πηγαίνετε σε μια ιστοσελίδα και λέτε θέλω να δω αυτό το ad-- ή ουσιαστικά δεν λέτε that-- αλλά όταν θα πάτε στην ιστοσελίδα λένε θέλετε να δείτε αυτήν τη διαφήμιση. Και πάω να πάρω τη συγκεκριμένη διαφήμιση από AdRoll. AdRoll που κοιτάζει επάνω στο τραπέζι τους. Το βρίσκουν το cookie σας. Οι διαφημιστές λένε αυτά, θέλω κάποιον ο οποίος είναι μεσήλικες, 40-year-old man, τον αθλητισμό. Και θα σας στείλει σε αυτές τις δημογραφικά και αποφασίζουν κατά πόσον ή όχι αυτή είναι μια καλή διαφήμιση για εσάς. Τώρα έχουν μια SLA με παρόχους διαφήμιση τους για την παροχή υπο-10 χιλιοστά του δευτερολέπτου ανταπόκριση σε κάθε αίτημα. Έτσι, από όπου και αν χρησιμοποιούν Ντιναμό DB για αυτό. Είναι ένα χτύπημα μας εκατομμύρια αιτήσεις ανά δευτερόλεπτο. Θα είστε σε θέση να κάνετε όλα τους αναζητήσεις, διαλογή όλα τα δεδομένα, και να πάρει το σύνδεσμο add πίσω σε αυτό την αγγελία σε λιγότερο από 10 χιλιοστά του δευτερολέπτου. Είναι πραγματικά πολύ εντυπωσιακή εφαρμογής που έχουν. Αυτά τα παιδιά actually-- είναι αυτά τα παιδιά. Δεν είμαι σίγουρος αν είναι αυτά τα παιδιά. Μπορεί να είναι αυτοί οι τύποι. Βασικά ΕΜΕΙΣ-- είπε όχι, Δεν νομίζω ότι αυτά ήταν. Νομίζω ότι ήταν κάποιος άλλος. Δούλευα με μια πελάτη που μου είπε ότι τώρα που έχουμε πάει στη Ντιναμό DB, είναι ξοδεύουν περισσότερα χρήματα για σνακ για την ανάπτυξη της ομάδας τους κάθε μήνα από ό, τι περνούν στη βάση δεδομένων τους. Γι 'αυτό θα σας δώσει μια ιδέα της εξοικονόμησης κόστους ότι μπορείτε να πάρετε στην Ντιναμό DB είναι τεράστια. Εντάξει, dropcam είναι μια άλλη εταιρεία. Αυτοί τύπος είναι το είδος of-- αν νομίζετε του Διαδικτύου των πραγμάτων, dropcam είναι βασικά βίντεο ασφάλεια στο Διαδίκτυο. Βάζετε τη φωτογραφική μηχανή σας εκεί έξω. Κάμερα διαθέτει ένα ανιχνευτή κίνησης. Κάποιος έρχεται, ενεργοποιεί ένα σημείο cue. Φωτογραφική μηχανή αρχίζει την εγγραφή για ένα διάστημα μέχρι δεν εντοπίζει οποιαδήποτε κίνηση πια. Βάζει το βίντεο επάνω στο διαδίκτυο. Dropcam ήταν μια εταιρεία που είναι ουσιαστικά αλλάξει σε Ντιναμό DB επειδή αντιμετώπιζαν τεράστια αυξανόμενη πόνους. Και τι μας είπαν, ξαφνικά petabytes δεδομένων. Δεν είχαν καμία ιδέα για την υπηρεσία τους θα ήταν τόσο επιτυχής. Περισσότερα εισερχόμενα βίντεο από το YouTube είναι ό, τι αυτά τα παιδιά παίρνουν. Χρησιμοποιούν DynamoDB για να παρακολουθείτε όλα τα μεταδεδομένα για όλα τα βίντεο βασικά σημεία τους. Έτσι έχουν S3 κουβάδες ωθούν όλα τα δυαδικά αντικείμενα μέσα. Και τότε θα έχουν Ντιναμό DB εγγραφές που δείχνουν οι άνθρωποι σε αυτές τις S3 τρία αντικείμενα. Όταν πρέπει να εξετάσουμε σε ένα βίντεο, φαίνονται το ρεκόρ στην Ντιναμό ΣΠ. Κάνει κλικ στο σύνδεσμο. Θα τραβήξτε προς τα κάτω το βίντεο από το S3. Έτσι, αυτό είναι το είδος του τι αυτό μοιάζει. Και αυτό είναι κατ 'ευθείαν από την ομάδα τους. Ντιναμό ΣΠ μειώνει τους χρόνος παράδοσης για τα γεγονότα βίντεο από πέντε έως 10 δευτερόλεπτα. Στην παλιά σχεσιακή κατάστημά τους, συνήθιζαν να πρέπει να πάει και να εκτελέσει πολλαπλά σύνθετα ερωτήματα με την εικόνα από τα οποία τα βίντεο για να τραβήξει προς τα κάτω, σε λιγότερο από 50 χιλιοστά του δευτερολέπτου. Γι 'αυτό είναι καταπληκτικό, καταπληκτικό πόση απόδοση μπορείτε να πάρετε όταν βελτιστοποίηση και συντονιστείτε το υποκείμενο δεδομένων για να υποστηρίξει το μοτίβο πρόσβασης. Halfbrick, αυτά τα παιδιά, τι είναι αυτό, Φρούτα Ninja Υποθέτω ότι είναι το πράγμα τους. Ότι όλα τα πειράματα για Ντιναμό DB. Και αυτοί οι τύποι, είναι μια μεγάλη ομάδα ανάπτυξης, μεγάλη ανάπτυξη κατάστημα. Δεν είναι μια καλή ομάδα ops. Δεν έχουν πολλά των πόρων λειτουργίας. Είχαν αγωνίζονται προσπαθώντας να κρατήσει υποδομή εφαρμογών τους μέχρι και να λειτουργήσει. Ήρθαν για να μας. Εξέτασαν εκείνη την Ντιναμό DB. Είπαν, αυτό είναι για εμάς. Έχτισαν σύνολό τους πλαίσιο εφαρμογής σε αυτό. Μερικά πολύ ωραία σχόλια εδώ από την ομάδα για την ικανότητά τους να επικεντρωθούν τώρα στην οικοδόμηση το παιχνίδι και να μην χρειάζεται να διατηρηθεί ο υποδομή, η οποία γινόταν ένα τεράστιο ποσό των γενικών εξόδων για την ομάδα τους. Έτσι, αυτό είναι κάτι που το that-- πλεονέκτημα ότι μπορείτε να πάρετε από την Ντιναμό DB. Εντάξει, το να μπουν μοντελοποίησης δεδομένων εδώ. Και μιλήσαμε λίγο για αυτό προς ένα, το ένα σε πολλούς, και πολλοί προς πολλούς σχέσεις τύπου. Και πώς θα διατηρήσουν την κατάσταση αυτή στην Ντιναμό. Στην Ντιναμό DB χρησιμοποιούμε ευρετήρια, μιλώντας γενικά, για να περιστρέψετε τα δεδομένα από μια γεύση στο άλλο. Hash κλειδιά, κλειδιά φάσμα, και ευρετήρια. Σε αυτή τη συγκεκριμένη Παραδείγματος χάριν, όπως τα περισσότερα κράτη έχουν την υποχρέωση χορήγησης αδειών που μόνο μίας άδειας οδήγησης ανά άτομο. Δεν μπορείτε να πάτε να πάρετε δύο οδηγού άδειες στην πολιτεία της Βοστώνης. Δεν μπορώ να το κάνω στο Τέξας. Αυτό είναι το είδος του τρόπου που είναι. Και έτσι στο Υπουργείο Συγκοινωνιών, έχουμε αναζητήσεις, εμείς θέλετε να αναζητήσετε άδεια του οδηγού από τον αριθμό κοινωνικής ασφάλισης. Θέλω να κοιτάζω προς τα πάνω τα στοιχεία των χρηστών με τον αριθμό της άδειας του οδηγού. Έτσι, μπορούμε να έχουμε τραπέζι ενός χρήστη ότι έχει ένα κλειδί κατακερματισμού για τον αύξοντα αριθμό, ή ο αριθμός κοινωνικής ασφάλισης, και διάφορα χαρακτηριστικά που καθορίζονται στο σημείο. Τώρα στον εν λόγω πίνακα Ι θα μπορούσε να ορίσει ένα GSI ότι flips ότι γύρω από αυτό τα λέει θέλω δίεση στην άδεια και, στη συνέχεια, όλα τα άλλα στοιχεία. Τώρα αν θέλω να διερευνούν και να βρει το τον αριθμό της άδειας για οποιοδήποτε δεδομένο Κοινωνική Αριθμό ασφαλείας, μπορώ διερευνούν τον κύριο πίνακα. Αν θέλω να διερευνούν και να θέλω για να πάρει την κοινωνική ασφάλιση αριθμός ή άλλα χαρακτηριστικά από ένα τον αριθμό της άδειας, μπορώ να θέσει υπό αμφισβήτηση το GSI. Αυτό το μοντέλο είναι ότι ένα σε μία σχέση. Ακριβώς ένα πολύ απλό GSI, αναστρέψετε γύρω από αυτά τα πράγματα. Τώρα, μιλάμε για μία έως πολλές. Μία για πολλούς είναι ουσιαστικά κλειδί κατακερματισμού σειρά σας. Όταν έχουμε πολύ με αυτό περίπτωση χρήσης είναι τα δεδομένα της οθόνης. Δεδομένων Monitor έρχεται σε τακτά διάστημα, όπως το διαδίκτυο των πραγμάτων. Πρέπει πάντα να πάρετε όλα αυτά αρχεία που έρχονται σε όλη την ώρα. Και θέλω να βρείτε όλες τις ενδείξεις μεταξύ μιας συγκεκριμένης χρονικής περιόδου. Είναι ένα πολύ κοινό ερώτημα στο την παρακολούθηση της υποδομής. Ο τρόπος να πάει για αυτό είναι να βρεθεί ένας απλή δομή πίνακα, ένα τραπέζι. Έχω ένα πίνακα μετρήσεων της διάταξης με ένα κλειδί κατακερματισμού για την ταυτότητα της συσκευής. Και έχω ένα κλειδί για το εύρος timestamp, ή στην περίπτωση αυτή, το έπος. Και αυτό μου δίνει τη δυνατότητα να εκτελούν πολύπλοκες ερωτήματα σε αυτό το κλειδί εύρος και να επιστρέψει τα αρχεία που είναι σε σχέση με το αποτέλεσμα που ότι ψάχνω. Και χτίζει ότι ένας σε πολλές σχέσεις στον πρωτεύοντα πίνακα, χρησιμοποιώντας το hash κλειδί, κλειδί δομή εύρος. Έτσι, αυτό είναι το είδος του δομημένου στον πίνακα στην Ντιναμό ΣΠ. Όταν ορίσετε ένα hash και το εύρος t πίνακα, είμαι ορίζει ένα ένα προς πολλά σχέση. Είναι μια σχέση γονέα-παιδιού. Ας μιλήσουμε για πολλά σε πολλές σχέσεις. Και για αυτό το συγκεκριμένο παράδειγμα, και πάλι, θα πάμε να χρησιμοποιήσετε GSI του. Και ας μιλήσουμε για gaming σενάριο όπου έχω ένα συγκεκριμένο χρήστη. Θέλω να μάθετε όλα τα παιχνίδια που αυτός είναι εγγεγραμμένος ή για να παίζει στο. Και για ένα συγκεκριμένο παιχνίδι, θέλετε να βρείτε όλους τους χρήστες. Λοιπόν, πώς μπορώ να το κάνω; Μου επιτραπέζια παιχνίδια χρήστη, Πάω να έχουν ένα κλειδί κατακερματισμού της ταυτότητας χρήστη και ένα βασικό εύρος του παιχνιδιού. Έτσι, ο χρήστης μπορεί να έχει πολλά παιχνίδια. Είναι ένα προς πολλά μεταξύ ο χρήστης και τα παιχνίδια που παίζει. Και στη συνέχεια στο GSI, Θα flip ότι περίπου. Θα hash για το παιχνίδι και Θα κυμαίνονται από το χρήστη. Έτσι, αν θέλω να πάρω όλα τα το παιχνίδι του χρήστη να παίζει σε, Θα ερώτημα τον κύριο πίνακα. Αν θέλω να πάρει όλους τους χρήστες που παίζουν ένα συγκεκριμένο παιχνίδι, Έχω ερώτημα το GSI. Έτσι, μπορείτε να δείτε πώς το κάνουμε αυτό; Μπορείτε να δημιουργήσετε αυτά GSI να υποστηρίξει το περίπτωση χρήσης, η εφαρμογή, η πρόσβαση μοτίβο, η εφαρμογή. Αν χρειαστεί να υποβάλετε ερώτημα σχετικά με η διάσταση αυτή, επιτρέψτε Θέλω να δημιουργήσετε ένα ευρετήριο σε αυτή τη διάσταση. Αν δεν το κάνω, δεν με νοιάζει. Και ανάλογα με την περίπτωση χρήσης, που Ενδέχεται να χρειαστείτε το δείκτη ή δεν μπορεί. Εάν είναι μια απλή για πολλούς, ο κύριος πίνακας είναι μια χαρά. Αν πρέπει να κάνω αυτά τα πολλά να πολλά, ή να πρέπει να κάνω ένα με αυτές, τότε ίσως θα χρειάζεται στη δεύτερη ο δείκτης. Έτσι, όλα εξαρτώνται από αυτό που προσπαθώ να κάνω και αυτό που προσπαθώ να πάρει ολοκληρωμένος. Μάλλον εγώ δεν πρόκειται να δαπανήσει πολύ πολύ χρόνο μιλώντας για τα έγγραφα. Αυτό παίρνει λίγο, ίσως, βαθύτερη από ό, τι χρειάζεται να υπεισέλθω. Ας μιλήσουμε λίγο για την πλούσια έκφραση του ερωτήματος. Έτσι, στην Ντιναμό DB έχουμε η δυνατότητα να δημιουργήσετε αυτό που λέμε εκφράσεις προβολής. Εκφράσεις προβολής είναι απλά επιλέγοντας τα πεδία ή τις τιμές που θέλετε να εμφανίσετε. Εντάξει, έτσι κάνω μια επιλογή. Κάνω ένα ερώτημα σε σχέση Ντιναμό DB. Και λέω, ξέρετε τι, δείχνουν Θέλω μόνο τα σχόλια πέντε αστέρων γι 'αυτό το συγκεκριμένο προϊόν. Έτσι, αυτό είναι το μόνο που θέλω να δω. Δεν θέλω να δω όλα τα άλλα χαρακτηριστικά της σειράς, Απλά θέλω να δω αυτό. Είναι ακριβώς όπως στον SQL όταν λένε επιλέξτε αστέρι ή από τον πίνακα, μπορείτε να πάρετε τα πάντα. Όταν λέω επιλέξτε το όνομα από τραπέζι, παίρνω μόνο ένα χαρακτηριστικό. Είναι το ίδιο είδος των πράγμα Ντιναμό DB ή άλλες βάσεις δεδομένων NoSQL. Φίλτρο εκφράσεις μου επιτρέψετε να ουσιαστικά κοπεί το αποτέλεσμα που ορίζεται. Έτσι κάνω ένα ερώτημα. Ερώτημα μπορεί να επανέλθει με 500 αντικείμενα. Θέλω, όμως, μόνο τα στοιχεία που έχουν ένα χαρακτηριστικό που λέει αυτό. ΟΚ, οπότε ας φιλτράρει αυτά τα στοιχεία που δεν ταιριάζουν με το συγκεκριμένο ερώτημα. Έτσι έχουμε εκφράσεις φίλτρο. Φίλτρο εκφράσεις μπορούν να να τρέχει σε οποιαδήποτε ιδιότητα. Δεν είμαστε σαν επερωτήσεις εύρους. Να εγείρει ερωτήματα είναι πιο επιλεκτικές. Φίλτρο απορίες μου χρειάζονται για να πάει Αποκτήστε το συνόλου των αποτελεσμάτων που και στη συνέχεια χαράξει τα δεδομένα δεν θέλω. Γιατί είναι τόσο σημαντικό; Επειδή έχω διαβάσει όλα. Σε ένα ερώτημα, Πάω να διαβάσω και πρόκειται να είναι ένας γίγαντας για τα δεδομένα. Και τότε Πάω να χαράξει ό, τι χρειάζομαι. Και αν είμαι μόνο να αποσύρουν την ζευγάρι των γραμμών, τότε αυτό είναι εντάξει. Δεν είναι τόσο αναποτελεσματική. Αλλά αν είμαι διαβάζοντας ένα σωρό δεδομένα, ακριβώς για να χαράξει ένα στοιχείο, τότε Πάω να είναι καλύτερα μακριά χρησιμοποιώντας ένα ερώτημα εύρους, γιατί είναι πολύ πιο επιλεκτικό. Είναι πρόκειται να με σώσει πολλά χρήματα, γιατί να πληρώσω για αυτό το ανάγνωσμα. Όταν τα αποτελέσματα που έρχεται πίσω διέλευσης των καλωδίων μπορεί να είναι μικρότερη, αλλά είμαι πληρώνουν για την ανάγνωση. Έτσι, καταλαβαίνω πώς παίρνετε τα στοιχεία. Αυτό είναι πολύ σημαντικό στην Ντιναμό ΣΠ. Προϋπόθεση εκφράσεις, αυτό είναι ό, τι θα μπορούσαμε να πούμε αισιόδοξο κλείδωμα. Ενημέρωση αν υπάρχει, ή αν αυτή την τιμή είναι ισοδύναμο με αυτό που καθορίζετε. Και αν έχω μια σφραγίδα χρόνου σε ένα ρεκόρ, θα μπορούσα να διαβάσει τα δεδομένα. Θα μπορούσε να αλλάξει τα δεδομένα. Θα ήθελα να πάω γράφουν ότι πίσω τα δεδομένα στη βάση δεδομένων. Αν κάποιος έχει αλλάξει το ρεκόρ, η σφραγίδα χρόνου μπορεί να έχουν αλλάξει. Και με αυτόν τον τρόπο εξαρτάται μου ενημερωμένη έκδοση θα μπορούσε να πει την ενημέρωση αν η χρονική σήμανση ισούται με αυτό. Ή η ενημέρωση θα αποτύχει επειδή κάποιος ενημερώθηκε το ρεκόρ στο μεταξύ. Αυτό είναι αυτό που λέμε αισιόδοξο κλείδωμα. Αυτό σημαίνει ότι κάποιος μπορεί να έρθει και να το αλλάξετε, και πάω να το εντοπίσει όταν πάω πίσω για να γράψει. Και τότε μπορώ να διαβάσει πραγματικά ότι δεδομένα και να πει, OH, αυτό άλλαξε. Θα πρέπει να λογοδοτήσουν γι 'αυτό. Και μπορώ να αλλάξω τα στοιχεία μου να καταγράφει και να εφαρμόσει μια άλλη ενημέρωση. Έτσι, μπορείτε να πιάσει τα στοιχειώδη ενημερώσεις που γίνονται μεταξύ του χρόνου ότι έχετε διαβάσει τα δεδομένα και η φορά που θα μπορούσε να γράψει τα δεδομένα. Κοινό: Και το φίλτρο έκφραση δεν σημαίνει στην πραγματικότητα τον αριθμό ή not-- [Παρεμβολή ΦΩΝΕΣ] RICK Houlihan: Δεν θα το κάνω να πάρει πάρα πολύ σε αυτό. Αυτή είναι μια δεσμευμένη λέξη-κλειδί. Η θέα λίρα είναι ένα κατοχυρωμένα λέξη-κλειδί στην Ντιναμό ΣΠ. Κάθε βάση δεδομένων έχει τη δική του επιφυλάχθηκε ονόματα για τις συλλογές που δεν μπορείτε να χρησιμοποιήσετε. Ντιναμό DB, εάν καθορίσετε ένα κιλό μπροστά από αυτό, μπορείτε να ορίσετε αυτά τα ονόματα από πάνω. Αυτή είναι μια τιμή αναφοράς. Δεν είναι ίσως η καλύτερη σύνταξη για να έχουν εκεί για αυτή τη συζήτηση, επειδή παίρνει σε ορισμένες real-- Θα είχα μιλήσει περισσότερο γι 'αυτό σε ένα βαθύτερο επίπεδο. Αλλά αρκεί να πούμε ότι αυτό θα μπορούσε να είναι το ερώτημα σαρώσει όπου views-- ούτε τις απόψεις λίβρα είναι μεγαλύτερη από 10. Είναι μια αριθμητική τιμή, ναι. Αν θέλετε, μπορούμε να μιλήσουμε για ότι μετά τη συζήτηση. Εντάξει, έτσι είμαστε μπουν κάποια σενάρια σε βέλτιστες πρακτικές όπου θα πάμε να μιλήσουμε για ορισμένες εφαρμογές εδώ. Ποιες είναι οι περιπτώσεις χρήσης για Ντιναμό DB. Τι είναι ο σχεδιασμός πρότυπα στην Ντιναμό ΣΠ. Και ο πρώτος που θα πάμε να μιλήσουμε για το Διαδίκτυο των πραγμάτων. Έτσι, έχουμε μια πολύ of-- υποθέτω, τι είναι it-- περισσότερο από 50% της κίνησης στο διαδίκτυο αυτές τις μέρες είναι στην πραγματικότητα δημιουργούνται από μηχανές, αυτοματοποιημένες διαδικασίες, όχι από τον άνθρωπο. Θέλω να πω αυτό το πράγμα αυτό το πράγμα που που κουβαλάς στην τσέπη σας, πόσα δεδομένα ότι αυτό το πράγμα είναι στην πραγματικότητα γύρω από την αποστολή χωρίς να γνωρίζοντας ότι είναι απολύτως εκπληκτικό. Η τοποθεσία σας, πληροφορίες για το πόσο γρήγορα θα πάμε. Πώς νομίζετε ότι το Google Maps έργα όταν σας πω ποια είναι η κίνηση είναι. Είναι επειδή υπάρχουν εκατομμύρια και εκατομμύρια άνθρωποι γύρω από την οδήγηση με τα τηλέφωνα που στέλνουν δεδομένων σε όλη την χώρα όλο το χρόνο. Έτσι ένα από τα πράγματα για αυτό το είδος των δεδομένων ότι έρχεται, τα δεδομένα παρακολούθησης, καταγραφής δεδομένα, δεδομένα χρονολογικών σειρών, είναι ότι είναι συνήθως μόνο ενδιαφέρον για λίγο χρόνο. Μετά από εκείνη τη στιγμή, είναι δεν είναι τόσο ενδιαφέρουσα. Έτσι μιλήσαμε για, μην αφήνετε οι πίνακες αυτοί μεγαλώνουν χωρίς όρια. Η ιδέα εδώ είναι ότι ίσως έχω 24 ώρες αξίας των γεγονότων σε ζεστό τραπέζι μου. Και το καυτό τραπέζι θα είναι τροφοδοτείται σε ένα πολύ υψηλό ποσοστό, διότι πρόκειται για τη λήψη πολλά δεδομένα. Είναι λαμβάνοντας πολλά δεδομένα και να διαβάζω το πολύ. Έχω πολλή λειτουργίας ερωτήματα τρέχει κατά της εν λόγω δεδομένα. Μετά από 24 ώρες, hey, Ξέρεις τι, δεν με νοιάζει. Έτσι ίσως κάθε ρολό μεσάνυχτα τραπέζι μου πάνω σε ένα νέο τραπέζι και εγώ deprovision αυτόν τον πίνακα. Και θα πάρω και το τηλεχειριστήριο του Κάτω του αναπηρικού αμαξιδίου, διότι μετά από 24 ώρες Δεν είμαι τρέχει σαν πολλές ερωτήματα από αυτά τα δεδομένα. Έτσι, Πάω να εξοικονομήσουν χρήματα. Και ίσως 30 ημέρες αργότερα δεν το κάνω πρέπει ακόμη να φροντίσει για όλα. Θα μπορούσα να πάρω το αναπηρικού αμαξιδίου του σε όλη τη διαδρομή προς ένα, γιατί ξέρετε τι, είναι Ποτέ δεν πρόκειται να πάρει γράψει. Τα δεδομένα είναι 30 ημερών. Ποτέ δεν αλλάζει. Και είναι σχεδόν ποτέ δεν πρόκειται να πάρει διαβάσετε, οπότε ας πάρει ότι τηλεχειριστήριο μέχρι 10. Και είμαι εξοικονόμηση έναν τόνο των χρημάτων για το θέμα αυτό δεδομένων, και μόνο να πληρώνουν για το ζεστό δεδομένα μου. Έτσι, αυτό είναι το σημαντικό πράγμα που πρέπει να εξετάσουμε σε όταν κοιτάς μια χρονολογική σειρά δεδομένα έρχονται σε όγκο. Πρόκειται για στρατηγικές. Τώρα, θα μπορούσα απλά να το αφήσουμε όλα να πηγαίνουν στο ίδιο τραπέζι και να την αφήσουμε να αυξηθεί πίνακα. Τελικά, Πάω να δείτε ζητήματα επιδόσεων. Πάω να πρέπει να αρχίσουμε να αρχειοθετήσετε μερικά από αυτά τα δεδομένα από το τραπέζι, οτιδήποτε. Ας πολύ καλύτερα σχεδιάσετε την εφαρμογή σας έτσι ώστε να μπορεί να λειτουργεί με αυτόν τον τρόπο το δικαίωμα. Έτσι είναι ακριβώς η αυτόματη στον κώδικα εφαρμογής. Τα μεσάνυχτα κάθε βράδυ κυλάει το τραπέζι. Ίσως αυτό που χρειάζεται είναι ένα συρόμενο παράθυρο 24 ώρα δεδομένων. Στη συνέχεια, σε τακτική βάση, είμαι καλώντας τα δεδομένα από το τραπέζι. Είμαι το κλάδεμα με ένα Cron δουλειά και είμαι το θέτει σε αυτά τα άλλα τραπέζια, ό, τι χρειάζεστε. Έτσι, αν ένας ανατροπής λειτουργεί, αυτό είναι υπέροχο. Αν όχι, τελειώματα. Αλλά ας κρατήσουμε το καυτό δεδομένων μακριά από το κρύο τα δεδομένα σας. Θα σας εξοικονομήσει πολλά χρήματα και κάνουν τραπέζια σας πιο απόδοσης. Έτσι, το επόμενο πράγμα θα μιλήσουμε περίπου είναι ο κατάλογος προϊόντων. Κατάλογος προϊόντων αρκετά συνηθισμένη περίπτωση χρήσης. Αυτό είναι πραγματικά ένα πολύ συνηθισμένο μοτίβο ότι θα δούμε σε μια ποικιλία από πράγματα. Ξέρεις, το Twitter για Παραδείγματος χάριν, ένα καυτό tweet. Ο καθένας έρχεται και αρπάζοντας ότι tweet. Κατάλογος προϊόντων, πήρα μια πώληση. Πήρα ένα ζεστό πώληση. Πήρα 70.000 αιτήσεις ανά δεύτερο ερχομό ενός προϊόντος περιγραφή από τον κατάλογο των προϊόντων μου. Το βλέπουμε αυτό στη λιανική λειτουργία αρκετά. Επομένως, πώς θα ασχοληθεί με αυτό; Δεν υπάρχει κανένας τρόπος για να ασχοληθεί με αυτό. Όλοι οι χρήστες μου θέλω να δω το ίδιο κομμάτι των δεδομένων. Είναι έρχονται σε, ταυτόχρονα. Και είναι όλα υποβολής αιτήσεων για το ίδιο κομμάτι των δεδομένων. Αυτό μου δίνει το καυτό κλειδί, ότι μεγάλο κόκκινο λωρίδα στο διάγραμμά μου που δεν μας αρέσουν. Και αυτό είναι ό, τι αυτό μοιάζει. Έτσι, σε όλους τους σημαντικούς χώρο μου παίρνω σφυρήλατο στα σημεία πώλησης. Παίρνω τίποτα οπουδήποτε αλλού. Πώς μπορώ να αμβλύνουν το πρόβλημα αυτό; Λοιπόν, έχουμε να ανακουφίσει αυτό με cache. Cache, θα θέσει ουσιαστικά ένα in-memory χώρισμα μπροστά της βάσης δεδομένων. Καταφέραμε [Δεν ακούγεται] cache, πώς θα μπορεί να δημιουργήσει το δικό σας cache, [δεν ακούγεται] κρύπτη [? δ,?] ό, τι θέλετε. Βάλτε ότι μπροστά της βάσης δεδομένων. Και με αυτόν τον τρόπο μπορείτε να αποθηκεύσετε τα δεδομένα από τα πλήκτρα σε αυτό το cache χώρο και να διαβάσετε μέσα από τη μνήμη cache. Και τότε οι περισσότεροι από σας διαβάζει να αρχίσει να ψάχνει σαν αυτό. Πήρα όλα αυτά cache χτυπά εδώ και πήρα τίποτα συμβαίνει εδώ κάτω επειδή η βάση δεδομένων που κάθεται πίσω από το cache και το ποτέ δεν διαβάζει έρθει κατευθείαν. Αν μπορώ να αλλάξω τα δεδομένα στο βάση δεδομένων, θα πρέπει να ενημερώσετε τη μνήμη cache. Μπορούμε να χρησιμοποιήσουμε κάτι όπως ατμών για να το κάνουμε αυτό. Και θα εξηγήσω πώς λειτουργεί. Εντάξει, μηνυμάτων. Email, όλοι χρησιμοποιούμε ηλεκτρονικού ταχυδρομείου. Αυτό είναι ένα πολύ καλό παράδειγμα. Έχουμε κάποια μηνύματα πίνακα. Και πήραμε εισερχόμενα και εξερχόμενα. Αυτό είναι ό, τι το SQL θα μοιάσει να χτίσει αυτό το inbox. Είμαστε είδος χρησιμοποιούν το ίδιο είδος της στρατηγικής για τη χρήση του GSI, GSI του για inbox μου και εξερχόμενα μου. Έτσι πήρα πρώτες μηνύματα που έρχονται στα μηνύματα τραπέζι μου. Και η πρώτη προσέγγιση σε αυτό μπορεί να είναι, ας πούμε, εντάξει, δεν υπάρχει πρόβλημα. Έχω πρώτες μηνύματα. Μηνύματα που έρχονται [δεν ακούγεται], ID μηνύματος, αυτό είναι υπέροχο. Αυτό είναι το μοναδικό hash μου. Πάω να δημιουργήσετε δύο GSI, η μία για inbox μου, ένα για εξερχόμενα μου. Και το πρώτο πράγμα που θα κάνω είναι θα πω το κλειδί κατακερματισμού μου πρόκειται να είναι ο αποδέκτης και Πάω να οργανώσει την ημερομηνία. Αυτό είναι φανταστικό. Πήρα ωραία θέα μου εδώ. Αλλά υπάρχει ένα μικρό πρόβλημα εδώ. Και τρέχετε σε αυτό σχεσιακές βάσεις δεδομένων, καθώς και. Κάλεσαν κάθετα στεγανοποίηση. Θέλετε να διατηρήσετε τα δεδομένα σας μεγάλα μακριά από λίγο τα δεδομένα σας. Και ο λόγος είναι επειδή πήρα πάει να διαβάσει τα στοιχεία για να πάρει τα χαρακτηριστικά. Και αν μου σώμα είναι όλα εδώ, στη συνέχεια ανάγνωση μερικά μόνο στοιχεία εάν το μήκος το σώμα μου κατά μέσο όρο 256 kilobytes καθένα, τα μαθηματικά παίρνει πολύ άσχημο. Έτσι λένε θέλω να διαβάσω inbox του Δαβίδ. Εισερχόμενα του Δαβίδ έχει 50 αντικείμενα. Ο μέσος όρος και το μέγεθος είναι 256 kilobytes. Εδώ είναι λόγος μετατροπής μου για τηλεχειριστήριο είναι τέσσερις kilobytes. Εντάξει, ας πάμε με τελικά συνεπής διαβάζει. Είμαι ακόμα τρώει τηλεχειριστήριο του 1600 απλά για να διαβάσετε εισερχόμενα του Δαβίδ. Ωχ. Εντάξει, τώρα ας σκεφτούμε για το πώς λειτουργεί η εφαρμογή. Αν είμαι σε μια εφαρμογή ηλεκτρονικού ταχυδρομείου και Ψάχνω στο inbox μου, και κοιτάζω το σώμα του κάθε μηνύματος, Όχι, κοιτάω τις περιλήψεις. Ψάχνω στο μόνο τις κεφαλίδες. Ας οικοδομήσουμε μια δομή πίνακα ότι μοιάζει περισσότερο με αυτό. Έτσι, εδώ είναι οι πληροφορίες ότι η ροή εργασίας μου χρειάζεται. Είναι στο inbox μου GSI. Είναι η ημερομηνία, ο αποστολέας, το θέμα, και στη συνέχεια το αναγνωριστικό μήνυμα, το οποίο επισημαίνει πίσω στο τραπέζι των μηνυμάτων όπου μπορώ να πάρω το σώμα. Λοιπόν, αυτά θα είναι ρεκόρ ταυτότητες. Θα επισημάνω πίσω στο αναγνωριστικά σημείο πάνω στο τραπέζι Ντιναμό DB. Κάθε δείκτης πάντα creates-- έχει πάντα το στοιχείο ID ως μέρος of-- ότι έρχεται με το δείκτη. Εντάξει. Κοινό: Είναι το λέει όπου είναι αποθηκευμένο; RICK Houlihan: Ναι, αυτό λέει exactly-- αυτό είναι ακριβώς αυτό που κάνει. Λέει εδώ είναι εκ νέου ρεκόρ μου. Και αυτό θα το σημείο πίσω στην εγγραφή νέου μου. Ακριβώς. Εντάξει, έτσι και τώρα inbox μου είναι πράγματι πολύ μικρότερες. Και αυτό όντως υποστηρίζει η ροή εργασίας της εφαρμογή ηλεκτρονικού ταχυδρομείου. Έτσι inbox μου, κάνω κλικ. Έχω πάει μαζί και κάνω κλικ στο μήνυμα, αυτό είναι όταν πρέπει να πάει να πάρει το σώμα, γιατί πάω να πάει σε μια διαφορετική άποψη. Έτσι, εάν σκέφτεστε για το είδος της MVC πλαισίου, ενόψει μοντέλο ελεγκτή. Το μοντέλο περιέχει την στοιχεία ότι οι ανάγκες άποψη και ο ελεγκτής αλληλεπιδρά με. Όταν μπορώ να αλλάξω το πλαίσιο, όταν Έχω αλλάξει την προοπτική, είναι εντάξει για να πάει πίσω στο server και ανασυστήσουν το μοντέλο, γιατί αυτό είναι που αναμένει ο χρήστης. Όταν αλλάζουν απόψεις, ότι όταν μπορούμε να πάμε πίσω στη βάση δεδομένων. Έτσι ηλεκτρονικού ταχυδρομείου, κάντε κλικ στο κουμπί. Ψάχνω για το σώμα. Ταξίδι μετ 'επιστροφής. Πηγαίνετε να πάρετε το σώμα. Διάβασα πολύ λιγότερα δεδομένα. Είμαι μόνο την ανάγνωση των φορέων που Ο David χρειάζεται, όταν τις χρειάζεται. Και δεν είμαι κάψει το 1600 Τηλεχειριστήριο μόνο για να δείξει inbox του. Έτσι τώρα that-- αυτός είναι ο τρόπος ότι LSI ή GSI-- Λυπάμαι, GSI, θα μπορούσε να λειτουργήσει έξω. Έχουμε κατακερματισμού μας στον αποδέκτη. Έχουμε το ευρύ φάσμα που καλύπτει από την ημερομηνία αυτή. Και έχουμε τα προβλεπόμενα χαρακτηριστικά ότι χρειαζόμαστε μόνο να στηρίξουν την άποψη. Εμείς περιστρέψτε ότι για εξερχόμενα. Κατακερματισμού αποστολέα. Και στην ουσία, έχουμε η πολύ ωραία, ανεμπόδιστη θέα. Και είναι basically-- εμείς έχουν αυτό το ωραίο μηνύματα πίνακα που είναι να εξαπλωθεί πολύ καλά γιατί είναι μόνο χασίς, κατακερματίζεται αναγνωριστικό μήνυμα. Και έχουμε δύο δείκτες ότι Τα περιστρεφόμενα εκτός του εν λόγω πίνακα. Εντάξει, έτσι η ιδέα εδώ είναι να μην κάνουμε να κρατήσει τα μεγάλα στοιχεία και αυτό το μικρό δεδομένα μαζί. Κατανέμουμε κατακόρυφα, στεγανοποιήσει τους πίνακες αυτούς. Μην διαβάζετε τα δεδομένα δεν χρειάζεται να. Εντάξει, τυχερών παιχνιδιών. Όλοι μας αρέσουν τα παιχνίδια. Τουλάχιστον Μου αρέσουν τα παιχνίδια στη συνέχεια. Έτσι μερικά από τα πράγματα ότι ασχολούμαστε με όταν σκεφτόμαστε τυχερών παιχνιδιών, σωστά; Gaming αυτές τις μέρες, ειδικά κινητά τυχερών παιχνιδιών, είναι όλα σχετικά με τη σκέψη. Και Πάω να περιστρέφεται εδώ ένα λίγο μακριά από DynamoDB. Πάω να φέρει σε μερικές από τη συζήτηση γύρω ορισμένα από τα άλλες τεχνολογίες AWS. Αλλά η ιδέα για gaming είναι να σκεφτεί για την άποψη των API, API που είναι, σε γενικές γραμμές, HTTP και JSON. Είναι το πώς τα κινητά παιχνίδια είδος αλληλεπιδρούν με πλάτη άκρα τους. Κάνουν JSON απόσπαση. Παίρνουν τα δεδομένα, και αυτό είναι όλο, σε γενικές γραμμές, σε ωραία APIs JSON. Τα πράγματα όπως να πάρει τους φίλους, να πάρει τα δεδομένα leaderboard, ανταλλαγή, χρήστη περιεχόμενο που δημιουργείται, Σπρώξτε πίσω στο σύστημα, αυτά είναι τα είδη των πραγμάτων ότι θα πάμε να κάνουμε. Δυαδικά δεδομένα περιουσιακό στοιχείο, τα δεδομένα αυτά μπορεί να μην καθίσει στη βάση δεδομένων. Αυτό θα μπορούσε να καθίσει σε ένα κατάστημα αντικείμενο, σωστά; Όμως, η βάση δεδομένων πρόκειται να καταλήγουν λέγοντας το σύστημα, λέει την εφαρμογή πού να πάτε να το πάρετε. Και αναπόφευκτα, multiplayer servers, πίσω τέλος υποδομής, και έχουν σχεδιαστεί για υψηλές διαθεσιμότητα και επεκτασιμότητα. Έτσι, αυτά είναι πράγματα που όλοι θέλουμε στην υποδομή του παιχνιδιού σήμερα. Έτσι, ας ρίξουμε μια ματιά τι μοιάζει. Πήρε έναν πυρήνα πίσω άκρο, πολύ απλό. Έχουμε ένα σύστημα εδώ με πολλαπλές ζώνες διαθεσιμότητα. Μιλήσαμε για Azs ως being-- νομίζετε από αυτούς ξεχωριστά κέντρα δεδομένων. Κέντρο περισσότερα από ένα δεδομένα ανά Ω, αλλά αυτό είναι εντάξει, απλά σκεφτείτε τους ως ξεχωριστά στοιχεία κέντρα τα οποία είναι γεωγραφικά και βλάβη που απομονώνονται. Εμείς πάμε για να έχουν περιπτώσεις ζευγάρι EC2. Εμείς πάμε για να έχουν κάποιοι πίσω τέλος διακομιστές. Ίσως αν είστε μια κληρονομιά αρχιτεκτονική, είμαστε χρησιμοποιώντας αυτό που λέμε RDS, σχεσιακή βάση δεδομένων υπηρεσιών. Θα μπορούσε να είναι MSSQL, MySQL, ή κατι τετοιο. Αυτός είναι ο τρόπος μια πολύ εφαρμογές έχουν σχεδιαστεί σήμερα. Καλά θα μπορούσαμε να θέλουμε να πάμε με Αυτό είναι όταν έχουμε κλίμακα έξω. Θα προχωρήσει και να θέσει ο κάδος S3 μέχρι εκεί. Και αυτό κουβά S3, αντί να υπηρετούν μέχρι αυτά τα αντικείμενα από servers-- μας θα μπορούσαμε να το κάνουμε αυτό. Βάζετε όλα τα δυαδικά σας αντικείμενα στους διακομιστές σας και μπορείτε να χρησιμοποιήσετε αυτές τις σέρβερ περιπτώσεις που εξυπηρετούν αυτό των δεδομένων. Αλλά αυτό είναι αρκετά ακριβό. Καλύτερος τρόπος για να κάνετε είναι να πάτε μπροστά και να θέσει αυτά τα αντικείμενα σε ένα κουβά S3. S3 είναι ένα αντικείμενο αποθετήρια. Είναι χτισμένο ειδικά για εξυπηρετούν αυτά τα είδη των πραγμάτων. Και ας αυτοί οι πελάτες ζητήσουν απευθείας από τις κάδους αντικείμενο, απαλλαγούν από τους διακομιστές. Έτσι αρχίζουμε να αναβαθμίσουν εδώ. Τώρα έχουμε τους χρήστες σε όλο τον κόσμο. Πήρα χρήστες. Θα πρέπει να έχουν περιεκτικότητα σε τοπικό επίπεδο που βρίσκεται κοντά σε αυτούς τους χρήστες, έτσι δεν είναι; Έχω δημιουργήσει ένα κουβά S3 ως αποθετήριο πηγή μου. Και εγώ θα μπροστινό ότι με η κατανομή CloudFront. CloudFront είναι ένα CD και ένα περιεχόμενο του δικτύου διανομής. Βασικά παίρνει τα δεδομένα που εσείς καθορίζετε και όλα αποθηκεύει μέσω του διαδικτύου έτσι ώστε οι χρήστες μπορούν να έχουν παντού μια πολύ γρήγορη απάντηση όταν ζητούν αυτά τα αντικείμενα. Έτσι, μπορείτε να πάρετε μια ιδέα. Είσαι το είδος της μόχλευσης όλα τα πτυχές της AWS εδώ για να γίνει αυτό. Και τελικά, ρίχνουμε σε μια ομάδα auto κλιμάκωση. Έτσι περιπτώσεις AC2 μας των servers του παιχνιδιού μας, καθώς αρχίζουν να πάρει πιο απασχολημένος και πιο πολυσύχναστα και πιο πολυσύχναστα, που θα γυρίσετε ακριβώς ένα άλλο παράδειγμα, γυρίστε ένα άλλο παράδειγμα, γυρίσετε ένα άλλο παράδειγμα. Έτσι, η τεχνολογία έχει AWS, το σας επιτρέπει να ορίσετε τις παραμέτρους γύρω από το οποίο οι διακομιστές σας θα αυξηθεί. Έτσι, μπορείτε να έχετε τον αριθμό n των διακομιστών από εκεί σε κάθε δεδομένη στιγμή. Και αν το φορτίο σας πηγαίνει μακριά, θα συρρικνώνονται, ο αριθμός θα συρρικνωθεί. Και εάν το φορτίο έρχεται πίσω, αυτό θα αυξηθεί πίσω, ελαστικά. Έτσι, αυτό φαίνεται μεγάλη. Έχουμε πολλά EC2 περιπτώσεις. Μπορούμε να βάλουμε στο cache μπροστά από τις βάσεις δεδομένων, δοκιμάστε και να επιταχύνει τις βάσεις δεδομένων. Το επόμενο σημείο πίεσης συνήθως οι άνθρωποι βλέπουν είναι να αναβαθμίσουν ένα παιχνίδι χρησιμοποιώντας μια σχεσιακή βάση δεδομένων. Χριστέ μου, η βάση δεδομένων απόδοση είναι τρομερό. Πώς μπορούμε να το βελτιώσουμε; Ας προσπαθήσουμε θέση cache μπροστά από αυτό. Λοιπόν, cache δεν λειτουργεί τόσο μεγάλη σε παιχνίδια, έτσι δεν είναι; Για τα παιχνίδια, το γράψιμο είναι οδυνηρή. Τα παιχνίδια είναι πολύ βαρύ γράφουν. Cache δεν λειτουργεί όταν είστε γράφετε βαρύ, επειδή έχετε πάντα πήρε για να ενημερώσετε τη μνήμη cache. Μπορείτε να ενημερώσετε τη μνήμη cache, είναι άσχετο προς την προσωρινή αποθήκευση. Είναι πραγματικά ακριβώς πρόσθετη εργασία. Έτσι, πού πάμε εδώ; Έχετε ένα μεγάλο εμπόδιο εκεί κάτω στη βάση δεδομένων. Και ο τόπος για να πάει προφανώς είναι διχοτόμηση. Διαμέριση δεν είναι εύκολο να το κάνετε όταν είστε που ασχολούνται με σχεσιακές βάσεις δεδομένων. Με σχεσιακές βάσεις δεδομένων, είστε υπεύθυνος για τη διαχείριση, την αποτελεσματική, το πλήκτρο διαστήματος. Λέτε χρήστες μεταξύ A και M πηγαίνετε εδώ, μεταξύ Ν και Ζ πάει εκεί. Και είστε μεταγωγής σε όλη την εφαρμογή. Έτσι, έχουμε να κάνουμε με Αυτή η πηγή δεδομένων κατάτμηση. Έχετε συναλλαγής περιορισμούς ότι δεν εκτείνονται χωρίσματα. Έχετε όλα τα είδη της ακαταστασία που είστε που ασχολούνται με την εκεί κάτω προσπαθώντας να ασχοληθεί με την κλιμάκωση έξω και την οικοδόμηση μιας μεγαλύτερης υποδομής. Είναι απλά δεν είναι διασκέδαση. Κοινό: Έτσι λέτε ότι αυξάνοντας τα σημεία πηγή επιταχύνει η διαδικασία? RICK Houlihan: Αύξηση της; Σημεία Πηγή: ακροατήριο. RICK Houlihan: Πηγή σημεία; Κοινό: Από τις πληροφορίες, όταν οι πληροφορίες προέρχονται από; RICK Houlihan: Όχι. Αυτό που λέω είναι η αύξηση της αριθμός των κατατμήσεων του χώρου αποθήκευσης δεδομένων βελτιώνει την απόδοση. Έτσι, αυτό που συμβαίνει εδώ είναι χρήστες έρχονται στο παράδειγμα EC2 εδώ, καλά, αν χρειάζεστε ένα χρήστη αυτό είναι το Α έως Μ, θα πάω εδώ. Από το Ν στη θέση P, θα πάω εδώ. Από Ρ έως Ω, θα πάω εδώ. Κοινό: Εντάξει, αυτοί έτσι ώστε αυτές είναι αποθηκεύονται όλες σε διαφορετικούς κόμβους; RICK Houlihan: Ναι. Σκεφτείτε αυτές ως διαφορετικά σιλό δεδομένων. Έτσι, είστε υποχρεωμένοι να το κάνετε αυτό. Εάν προσπαθείτε να κάνετε αυτό, αν προσπαθείτε να αναβαθμίσουν σε μια σχεσιακή πλατφόρμα, Αυτό είναι αυτό που κάνεις. Παίρνετε δεδομένων και είστε το κόψιμο κάτω. Και εσείς το κατακερματισμό σε όλη την πολλές εμφανίσεις της βάσης δεδομένων. Και είστε διαχείριση όλων ότι στο επίπεδο εφαρμογής. Δεν είναι διασκέδαση. Έτσι, αυτό που θέλουμε να πάμε; Θέλουμε να πάμε DynamoDB, πλήρη διαχείριση, NoSQL χώρο αποθήκευσης δεδομένων, διακίνηση διάταξη. Χρησιμοποιούμε δευτερεύοντα ευρετήρια. Είναι βασικά HTTP API και περιλαμβάνει την υποστήριξη εγγράφου. Έτσι, δεν έχετε να ανησυχείτε για οποιαδήποτε από τις εν λόγω διαχωρισμού. Έχουμε κάνει όλα για εσάς. Έτσι τώρα, αντ 'αυτού, απλά γράψτε στο τραπέζι. Εάν ο πίνακας θα πρέπει να κατανέμονται, ότι συμβαίνει πίσω από τις σκηνές. Είσαι εντελώς μονωμένα από ότι ως προγραμματιστής. Ας μιλήσουμε για ορισμένες από τις περιπτώσεις χρήσης ότι θα τρέχει σε στο gaming, κοινή σενάρια παιχνίδια, leaderboard. Έτσι έχετε χρήστες που έρχονται, οι BoardNames ότι είναι στο εξής, οι βαθμολογίες για αυτόν τον χρήστη. Θα μπορούσαμε να κατακερματισμός στην UserID, και τότε έχουμε εύρος στο παιχνίδι. Έτσι, κάθε χρήστης θέλει να δει όλο το παιχνίδι που έπαιξε και όλα τα κορυφαία βαθμολογία του σε όλες του παιχνιδιού. Έτσι, αυτό είναι προσωπική του leaderboard. Τώρα θέλω να πάω μέσα και θέλω να get-- ώστε να πάρω αυτά τα προσωπικά leaderboards. Αυτό που θέλω να κάνετε είναι να πάτε να πάρετε η κορυφαία βαθμολογία για όλους τους χρήστες. Λοιπόν, πώς μπορώ να το κάνω; Όταν το ρεκόρ μου κατακερματίζεται σε το UserID, κυμάνθηκε στο παιχνίδι, Καλά είμαι πρόκειται να πάει μπροστά και την αναδιάρθρωση, δημιουργούν ένα GSI, και θα πάω να αναδιαρθρώσει τα δεδομένα. Τώρα Πάω να hash για το BoardName, το οποίο είναι το παιχνίδι. Και Πάω να κυμαίνονται σχετικά με την κορυφαία βαθμολογία. Και τώρα που έχω δημιουργήσει διαφορετικές κουβάδες. Είμαι χρησιμοποιώντας το ίδιο τραπέζι, τα ίδια δεδομένα στοιχείο. Αλλά είμαι δημιουργώντας έναν κουβά που δίνει με μία συγκέντρωση κορυφαία βαθμολογία από το παιχνίδι. Και μπορώ να ερώτημα που τραπέζι για να πάρει αυτές τις πληροφορίες. Έτσι έχω δημιουργήσει αυτό το μοτίβο μέχρι ερώτημα να υποστηρίζεται από ένα δευτερεύον ευρετήριο. Τώρα μπορούν να ταξινομηθούν ανά BoardName και κατατάσσονται σύμφωνα με τη TopScore, ανάλογα με. Έτσι μπορείτε να δείτε, αυτά είναι τα είδη από τις περιπτώσεις χρήσης μπορείτε να πάρετε στο gaming. Μια άλλη καλή περίπτωση χρήσης φτάσουμε στο gaming είναι βραβεία και ποιος κέρδισε τα βραβεία. Και αυτό είναι μια μεγάλη υπόθεση χρήσης όπου λέμε αραιά ευρετήρια. Αραιή δείκτες είναι η ικανότητα να παράγουν ένας δείκτης που δεν οδηγεί υποχρεωτικά περιέχει κάθε μεμονωμένο στοιχείο στο τραπέζι. Και γιατί όχι; Επειδή το χαρακτηριστικό που έχει είναι ευρετήριο δεν υπάρχει για κάθε αντικείμενο. Έτσι, σε αυτή τη συγκεκριμένη χρησιμοποιήστε την περίπτωση, λέω, ξέρετε τι, Πάω να δημιουργήσετε ένα χαρακτηριστικό, που ονομάζεται βραβείο. Και Πάω να δώσει σε κάθε χρήστη ότι έχει ένα βραβείο που αποδίδουν. Οι χρήστες που δεν έχουν βραβεία δεν πρόκειται να έχουν αυτό το χαρακτηριστικό. Έτσι, όταν μπορώ να δημιουργήσω το δείκτη, οι μόνοι χρήστες που πρόκειται να δείξουν στο ευρετήριο είναι εκείνοι που πραγματικά έχουν κερδίσει βραβεία. Έτσι, αυτό είναι ένας πολύ καλός τρόπος για να είναι σε θέση για να δημιουργήσετε ευρετήρια ότι φιλτραρισμένα είναι πολύ, πολύ επιλεκτική που δεν Πρέπει να δείκτη ολόκληρο τον πίνακα. Έτσι παίρνουμε χαμηλά για την ώρα εδώ. Πάω να προχωρήσει και να παραλείψετε και να παραλείψετε αυτό το σενάριο. Μιλήσουμε λίγο about-- Κοινό: Μπορώ να κάνω μια γρήγορη ερώτηση; Ένας είναι να γράψετε βαριά; RICK Houlihan: Τι είναι; Κοινό: Γράψτε βαρύ. RICK Houlihan: Γράψτε βαρύ. Άσε με να δω. Κοινό: Ή είναι ότι δεν κάτι που μπορείτε απλά φωνή στο θέμα δευτερολέπτων; RICK Houlihan: Πάμε μέσα από το σενάριο της ψηφοφορίας. Δεν είναι τόσο άσχημα. Μήπως εσείς έχετε μερικά λεπτά; ΕΝΤΆΞΕΙ. Έτσι, θα μιλήσουμε για την ψηφοφορία. Έτσι ψήφου σε πραγματικό χρόνο, έχουμε απαιτήσεις για την ψηφοφορία. Απαιτήσεις είναι ότι επιτρέπουμε κάθε πρόσωπο να ψηφίσει μόνο μια φορά. Θέλουμε κανείς να είναι σε θέση να αλλάξουν την ψήφο τους. Θέλουμε πραγματικό χρόνο συνάθροισης και analytics για τη δημογραφία ότι θα πάμε να είναι που δείχνει προς τους χρήστες στο site. Σκεφτείτε αυτό το σενάριο. Δουλεύουμε πολύ της πραγματικότητας Τηλεόραση δείχνει πού είναι κάνει αυτά ακριβές είδος των πραγμάτων. Έτσι, μπορείτε να σκεφτείτε το σενάριο, έχουμε εκατομμύρια και τα εκατομμύρια των έφηβων κοριτσιών εκεί με τα κινητά τους και την ψηφοφορία, καθώς και δικαίωμα ψήφου, και ψηφίζοντας όποιοι κι αν είναι βρείτε να είναι η πιο δημοφιλής. Έτσι, αυτά είναι μερικά από τα απαιτήσεις θα εξαντληθεί. Και έτσι η πρώτη να λάβει σε επίλυση αυτού του προβλήματος θα ήταν να κατασκευαστεί ένα πολύ απλή εφαρμογή. Έτσι έχω αυτό το app. Έχω κάποιες ψηφοφόρους εκεί έξω. Έρχονται σε χτυπούν την εφαρμογή της ψηφοφορίας. Έχω κάποιες πρώτες ψηφοφορίες τραπέζι Θα χωματερή μόνο αυτές τις ψήφους σε. Θα έχω κάποιο συνολικά ψήφοι πίνακα που θα κάνει analytics και τα δημογραφικά στοιχεία μου, και θα βάλουμε όλα αυτά εκεί. Και αυτό είναι μεγάλη. Η ζωή είναι ωραία. Η ζωή είναι καλή μέχρι να βρούμε ότι υπάρχει πάντα μόνο ένα ή δύο οι άνθρωποι που είναι δημοφιλείς σε εκλογές. Υπάρχει μόνο ένα ή δύο πράγματα ότι οι άνθρωποι ενδιαφέρονται πραγματικά για. Και αν είστε ψήφου σε κλίμακα, ξαφνικά είμαι πρόκειται να σφυρηλάτηση την κόλαση έξω από δύο υποψήφιοι, μία ή δύο υποψηφίους. Μια πολύ περιορισμένο αριθμό τεμαχίων άνθρωποι βρίσκουν να είναι δημοφιλής. Αυτό δεν είναι ένα καλό πρότυπο σχεδιασμού. Αυτό είναι στην πραγματικότητα μια πολύ κακό πρότυπο σχεδιασμού γιατί δημιουργεί ακριβώς αυτό που μίλησε για το οποίο ήταν πλήκτρα. Hot πλήκτρα είναι κάτι που δεν μας αρέσει. Επομένως, πώς θα το διορθώσουμε; Και πραγματικά, ο τρόπος για να διορθωθεί αυτό είναι με τη λήψη των εν λόγω υποψήφιος κουβάδες και για κάθε υποψήφιο που έχουμε, θα πάμε να προσθέσετε μια τυχαία τιμή, κάτι που ξέρουμε, τυχαία τιμή μεταξύ ενός και 100, μεταξύ 100 και 1000, ή μεταξύ ενός και 1000, Ωστόσο, πολλές τυχαίες τιμές που θέλετε να επισυνάπτει στο τέλος του εν λόγω υποψηφίου. Και τι έχω πραγματικά κάνει τότε; Αν είμαι χρησιμοποιώντας το αναγνωριστικό υποψηφίου ως ο κουβάς με το σύνολο των ψήφων, αν έχω προσθέσει ένα τυχαίο αριθμό στο τέλος του ότι, Έχω δημιουργήσει τώρα 10 κουβάδες, ένα εκατό κουβάδες, χίλια κουβάδες ότι είμαι άθροιση ψήφων σε ολόκληρη. Γι 'αυτό και έχουν εκατομμύρια και εκατομμύρια, και τα εκατομμύρια των αρχείων που έρχονται σε για αυτούς τους υποψηφίους, είμαι τώρα εξαπλώνεται και αυτές οι ψήφοι σε όλη την υποψήφια A_1 μέσω υποψήφιες A_100, επειδή κάθε φορά που μια ψηφοφορία έρχεται, Είμαι παραγωγή ενός τυχαίου τιμή μεταξύ ενός και 100. Είμαι αυτό που στερέωση πάνω στο άκρο του υποψηφίου που προσώπου ψηφίζουν. Είμαι το ντάμπινγκ στην εν λόγω κουβά. Τώρα στο πίσω μέρος, το ξέρω ότι πήρα εκατό κουβάδες. Έτσι, όταν θέλω να πάω μπροστά και συγκεντρώνουν τις ψήφους, Διάβασα από όλους αυτούς τους κάδους. Γι 'αυτό να προχωρήσει και να προσθέσετε. Και τότε εγώ η διασπορά συγκεντρώσει όπου πάω έξω και να πω hey, ξέρετε τι, το κλειδί της υποψήφιας αυτής χώρας χώρων είναι πάνω από εκατό κουβάδες. Πάω να συγκεντρώσει όλα τα ψήφους από εκείνες τις εκατό κουβάδες. Πάω να συσσωματώνονται τους και θα πάω να πω, Υποψήφιος Α έχει τώρα συνολική καταμέτρηση των ψήφων του x. Τώρα τόσο η διαγραφή το ερώτημα και το ερώτημα ανάγνωσης Τα όμορφα διανέμονται γιατί γράφω σε όλη και διαβάζω σε εκατοντάδες κλειδιών. Δεν γράφω και διατρέχοντας ένα κλειδί τώρα. Οπότε αυτό είναι ένα μεγάλο σχέδιο. Αυτό είναι στην πραγματικότητα πιθανώς ένα από τα πιο σημαντικά σχεδιασμού πρότυπα για την κλίμακα στην NoSQL. Θα δείτε αυτό το είδος του πρότυπο σχεδιασμού σε κάθε γεύση. MongoDB, DynamoDB, αυτό δεν γίνεται θέμα, όλοι πρέπει να το κάνουμε αυτό. Διότι όταν έχεις να κάνεις με αυτές τις τεράστιες συναθροίσεις, θα πρέπει να βρουν έναν τρόπο για να εξαπλωθεί σε όλη τους κουβάδες. Έτσι, αυτός είναι ο τρόπος να το κάνεις αυτό. Εντάξει, έτσι τι κάνεις τώρα είμαστε Είναι έχετε λογαριασμό στα ανοικτά ανάγνωσης κόστος για επεκτασιμότητα εγγραφής. Το κόστος της ανάγνωσης μου λίγο πιο περίπλοκη και έχω να πάω διαβάσει από μια εκατό κουβάδες αντί για μία. Αλλά είμαι σε θέση να γράψω. Και τη δυναμικότητα μου, μου γράφουν διεκπεραίωσης είναι απίστευτο. Γι 'αυτό είναι συνήθως μια πολύτιμη τεχνική για την κλιμάκωση DynamoDB, ή οποιαδήποτε βάση δεδομένων NoSQL για το θέμα αυτό. Έτσι καταλάβαμε πώς να την περιορίσουμε. Και καταλάβαμε πώς να εξάλειψη των hot keys μας. Και αυτό είναι φανταστικό. Και πήραμε αυτό το ωραίο σύστημα. Και αυτό είναι μας έχει δώσει πολύ σωστή ψήφου επειδή έχουμε ρεκόρ ψηφοφορία de-κοροϊδεύω. Είναι χτισμένο σε DynamoDB. Μιλήσαμε για υπό όρους δικαιωμάτων. Όταν ένας ψηφοφόρος έρχεται, puts ένα ένθετο στο τραπέζι, παρεμβάλλουν με ταυτοποίησης των ψηφοφόρων τους, αν προσπαθήσουν να εισαχθεί μια άλλη ψηφοφορία, Να κάνω μια υπό όρους εγγραφής. Πείτε μόνο γράψω αυτό αν αυτό δεν υπάρχει. Έτσι μόλις βλέπω ότι ότι η ψήφος του χτύπησε το τραπέζι, κανείς άλλος δεν πρόκειται να είναι είναι σε θέση να βάλει την ψήφο τους. Και αυτό είναι φανταστικό. Και είμαστε προσαύξηση υποψήφιος μετρητές μας. Και κάνουμε μας δημογραφικά στοιχεία και όλα αυτά. Αλλά τι θα συμβεί αν μου εφαρμογή πέφτει πάνω; Τώρα ξαφνικά ψήφων έρχονται σε, και εγώ Δεν ξέρω αν είναι να πάρει τα μεταποιημένα σε analytics και δημογραφικά στοιχεία μου πια. Και όταν η εφαρμογή έρχεται πίσω, πώς η κόλαση μπορώ να ξέρω τι έχουν ψήφοι υποβληθεί σε επεξεργασία και όπου μπορώ να ξεκινήσω; Έτσι, αυτό είναι ένα πραγματικό πρόβλημα, όταν να αρχίσουμε να εξετάζουμε σε αυτό το σενάριο. Και πώς μπορούμε να λύσουμε αυτό; Θα το λύσουμε με αυτό που καλέστε DynamoDB ρεύματα. Ρευμάτων είναι ένας χρόνος και διέταξε κατανεμήθηκε καταγραφής της πρόσβασης κάθε αλλαγή στο τραπέζι, κάθε γράφουν πρόσβαση στο τραπέζι. Όλα τα δεδομένα που είναι γραμμένο στην πίνακας παρουσιάζει στο ρεύμα. Είναι βασικά μια ουρά 24 ώρες. Είδη χτυπήσει το ρεύμα, ζουν για 24 ώρες. Μπορούν να διαβάσει πολλές φορές. Εγγυημένη για να παραδοθεί μόνο μία φορά στο ρεύμα, θα μπορούσε να διαβάσει τον αριθμό n φορές. Έτσι, ωστόσο πολλές διαδικασίες που θέλετε να καταναλώνουν αυτά τα δεδομένα, μπορείτε να το καταναλώνουν. Θα εμφανίζεται κάθε ενημέρωση. Κάθε γράφετε θα μόνο εμφανίζονται μία φορά στο ρεύμα. Έτσι, δεν έχετε να ανησυχείτε σχετικά με την επεξεργασία δύο φορές από την ίδια διαδικασία. Είναι αυστηρά διέταξε ανά τεμάχιο. Όταν λέμε του χρόνου διέταξε και κατανεμήθηκε, θα δείτε ανά διαμέρισμα στο ρεύμα. Θα δείτε τα στοιχεία, ενημερώσεις σε τάξη. Δεν εγγυάται για το ρεύμα που είστε πρόκειται να πάρει κάθε συναλλαγή με τη σειρά κατά μήκος αντικείμενα. Έτσι, τα ρεύματα είναι idempotent. Μήπως όλοι γνωρίζουμε τι σημαίνει idempotent; Idempotent σημαίνει ότι μπορείτε να το κάνετε πάνω, και πάνω, και ξανά. Το αποτέλεσμα πρόκειται να είναι το ίδιο. Ρεύματα είναι idempotent, αλλά θα πρέπει να είναι έπαιξε από το σημείο εκκίνησης, όπου κι αν επιλέξετε, στο τέλος, ή δεν θα οδηγήσει στις ίδιες τιμές. Το ίδιο πράγμα με MongoDB. MongoDB έχει ένα κατασκεύασμα καλούν την oplog. Είναι ακριβώς το ίδιο κατασκεύασμα. Πολλές βάσεις δεδομένων NoSQL έχουν αυτό το κατασκεύασμα. Το χρησιμοποιούμε για να κάνουμε τα πράγματα όπως αντιγραφή, η οποία Είναι ακριβώς αυτό που κάνουμε με τα ρεύματα. Κοινό: Ίσως αιρετική ερώτηση, αλλά θα μιλάμε για εφαρμογές κάνει τα κάτω μια ούτω καθεξής. Τα ρεύματα σίγουρη ποτέ ενδεχομένως να πάει κάτω; RICK Houlihan: Ναι, ρέματα είναι εγγυημένο ποτέ να πάει κάτω. Έχουμε τη διαχείριση της υποδομής πίσω. ρέματα αυτόματα αναπτύξετε σε ομάδα αυτόματη κλιμάκωση τους. Θα περάσουν από μια μικρή λίγο για το τι συμβαίνει. Δεν θα πρέπει να πω ότι δεν είναι εγγυημένο ποτέ να πάει κάτω. Τα στοιχεία εγγυημένες να εμφανιστεί στο ρεύμα. Και το ρεύμα θα είναι προσβάσιμη. Έτσι, αυτό που κατεβαίνει ή έρχεται πίσω up, αυτό συμβαίνει από κάτω. Είναι covers-- είναι εντάξει. Εντάξει, έτσι μπορείτε να πάρετε διαφορετικά τύπων θέα από την οθόνη. Οι τύποι άποψη ότι είναι σημαντικό να α προγραμματιστής συνήθως είναι, τι ήταν; Παίρνω την παλιά άποψη. Όταν μια ενημερωμένη έκδοση χτυπά το τραπέζι, αυτό θα πιέστε το παλιό θέα στο ρεύμα έτσι ώστε τα δεδομένα να αρχειοθετήσετε, ή αλλαγή ελέγχου, την αναγνώριση αλλαγή, αλλαγή διαχείριση. Η νέα εικόνα, τι είναι τώρα, μετά η ενημέρωση, η οποία είναι ένας άλλος τύπος άποψη μπορείς να πάρεις. Μπορείτε να πάρετε τόσο τα παλαιά και τα νέα εικόνες. Ισως και τα δύο θέλετε. Θέλω να δω τι ήταν. Θέλω να δω τι άλλαξε σε. Έχω ένα είδος συμμόρφωσης της διαδικασίας που εκτελείται. Πρέπει να βεβαιωθείτε ότι όταν αλλάζουν αυτά τα πράγματα, ότι είναι εντός ορισμένων ορίων ή εντός ορισμένων παραμέτρων. Και τότε ίσως μόνο Πρέπει να ξέρετε τι άλλαξε. Δεν με νοιάζει τι στοιχείο αλλάξει. Δεν χρειάζεται να πρέπει να ξέρετε τι αποδίδει αλλάξει. Απλά πρέπει να γνωρίζουν ότι τα στοιχεία που άγγιξε. Έτσι, αυτά είναι τα είδη των απόψεων ότι μπορείτε να πάρετε από το ρεύμα και μπορείτε να αλληλεπιδράσετε με. Η εφαρμογή που καταναλώνει το ρεύμα, αυτό είναι το είδος της τρόπο αυτό λειτουργεί. DynamoDB πελάτης ζητήσει να ωθήσει τα δεδομένα στους πίνακες. Ρεύματα αναπτύξετε σε αυτό που ονομάζουμε θραύσματα. Οι Shards κλίμακα ανεξάρτητα από το τραπέζι. Δεν παρατάξει εντελώς στα χωρίσματα του τραπεζιού σας. Και ο λόγος είναι επειδή παρατάξει με την ικανότητα, η τρέχουσα ικανότητα του πίνακα. Αναπτύσσονται σε τους τη δική του ομάδα κλιμάκωση αυτοκινήτων, και αρχίζουν να γυρνάνε έξω, ανάλογα σχετικά με το πόσες εγγραφές έρχονται σε, πόσα reads-- πραγματικά είναι, γράφει. Δεν υπάρχει reads-- αλλά πώς Οι πολλές εγγραφές που έρχονται. Και στη συνέχεια στο πίσω μέρος τέλος, έχουμε αυτό που καλέσετε έναν KCL, ή το Kinesis πελάτη Βιβλιοθήκη. Kinesis είναι ένα δεδομένο ρεύμα τεχνολογία επεξεργασίας από το Amazon. Και ρεύματα είναι χτισμένο πάνω σε αυτό. Έτσι, μπορείτε να χρησιμοποιήσετε ένα KCL ενεργοποιημένη αίτηση για να διαβάσετε το ρεύμα. Ο Πελάτης Βιβλιοθήκη Kinesis πραγματικότητα διαχειρίζεται τους εργαζομένους για εσάς. Και το κάνει επίσης κάποια ενδιαφέροντα πράγματα. Θα δημιουργήσει κάποιους πίνακες μέχρι στο DynamoDB tablespace σας να παρακολουθείτε ποια στοιχεία έχουν υποβληθεί σε επεξεργασία. Έτσι, με αυτόν τον τρόπο, αν πέφτει πίσω, αν πέφτει πάνω και έρχεται και παίρνει στάθηκε πίσω επάνω, μπορεί να προσδιοριστεί ο τόπος όπου ήταν στην επεξεργασία του ρεύματος. Αυτό είναι πολύ σημαντικό όταν μιλάτε για αντιγραφή. Πρέπει να ξέρω τι δεδομένα υποβληθεί σε επεξεργασία και ποια δεδομένα έχει ακόμη να υποβληθούν σε επεξεργασία. Έτσι, η βιβλιοθήκη KCL για ρεύματα θα να σας δώσει μια πολύ αυτήν τη λειτουργία. Θα φροντίζει για όλα τα καθαριότητας. Βρίσκεται επάνω από τον εργαζόμενο για κάθε θραύσμα. Δημιουργεί μια διοικητική τραπέζι για κάθε θραύσμα, για κάθε εργαζόμενο. Και καθώς οι εν λόγω εργαζόμενοι φωτιά, να διατηρούν τα εν λόγω πίνακες έτσι ώστε να γνωρίζουν αυτό το αρχείο η ανάγνωση και επεξεργασία. Και τότε με αυτόν τον τρόπο, αν η διαδικασία πεθαίνει και επανέρχεται σε απευθείας σύνδεση, μπορεί να συνεχίσει ακριβώς εκεί που απογειώθηκε. Γι 'αυτό και χρησιμοποιούν αυτό για αντιγραφής cross-περιοχή. Πολλοί πελάτες έχουν την ανάγκη να μετακίνηση δεδομένων ή τμημάτων τους πίνακες δεδομένων γύρω στις διάφορες περιοχές. Υπάρχουν εννέα περιφέρειες σε όλο τον κόσμο. Έτσι, ίσως να υπάρξει μια need-- μου θα μπορούσαν να έχουν οι χρήστες στην Ασία, οι χρήστες στην Ανατολική Ακτή των Ηνωμένων Πολιτειών. Έχουν διαφορετικά δεδομένα τα οποία θα πρέπει να διανέμονται τοπικά. Και ίσως ένας χρήστης πετά από Την Ασία προς τις Ηνωμένες Πολιτείες, και θέλω να αναπαράγουν τα στοιχεία του μαζί του. Έτσι, όταν παίρνει από το αεροπλάνο, που έχει μια καλή εμπειρία χρησιμοποιώντας το κινητό του app. Μπορείτε να χρησιμοποιήσετε τη διασυνοριακή περιοχή βιβλιοθήκη αντιγραφής για να γίνει αυτό. Βασικά έχουμε παρέχονται δύο τεχνολογίες. Ένα είναι μια εφαρμογή κονσόλας μπορείτε σηκωθούν για τη δική σας περίπτωση EC2. Τρέχει καθαρή αντιγραφή. Και τότε σας έδωσε τη βιβλιοθήκη. Η βιβλιοθήκη που μπορείτε να χρησιμοποιήσετε για να χτίσετε τη δική σας εφαρμογή, αν θέλουν να κάνουν τρελά πράγματα με το ότι data-- φίλτρο, αναπαράγουν μόνο μέρος της, περιστρέψετε τα δεδομένα, μετακινήστε το σε μια διαφορετικά τραπέζι, ούτω καθεξής και ούτω καθεξής. Έτσι, αυτό είναι το είδος του τι μοιάζει. DynamoDB ρεύματα μπορούν να επεξεργασία από αυτό που ονομάζουμε Λάμδα. Είπαμε λίγο για εκδήλωση οδηγείται αρχιτεκτονικές εφαρμογών. Λ είναι μια βασική συνιστώσα αυτού. Λάμδα είναι ο κωδικός που οι πυρκαγιές στη ζήτηση σε απάντηση σε ένα συγκεκριμένο γεγονός. Ένα από αυτά τα γεγονότα θα μπορούσαν να είναι μια ρεκόρ που εμφανίζονται στη ροή. Εάν μια εγγραφή εμφανίζεται στο ρεύμα, θα καλέσουμε αυτή τη λειτουργία Java. Λοιπόν, αυτή είναι η JavaScript, και Λάμδα υποστηρίζει Node.js, Java, Python, και θα υποστηρίξει σύντομα άλλες γλώσσες. Και αρκεί να πούμε, ότι είναι καθαρό κώδικα. Γράψτε στο Java, πρέπει να ορίσετε μια κατηγορία. Μπορείτε να ωθήσει το βάζο επάνω σε Λάμδα. Και τότε θα καθορίσετε ποια κατηγορία να καλέσει ως απάντηση στην οποία περίπτωση. Και τότε η υποδομή Λάμδα πίσω από ότι θα τρέξει τον εν λόγω κώδικα. Αυτός ο κώδικας μπορεί να επεξεργαστεί αρχεία έξω από το ρεύμα. Μπορεί να κάνει οτιδήποτε θέλει με αυτό. Σε αυτό το συγκεκριμένο παράδειγμα, όλοι είμαστε κάνει πραγματικά είναι η υλοτομία τα χαρακτηριστικά. Αλλά αυτό είναι μόνο κωδικό. Κωδικός μπορεί να κάνει τίποτα, σωστά; Έτσι, μπορείτε να περιστρέψετε τα δεδομένα. Μπορείτε να δημιουργήσετε ένα παράγωγο άποψη. Εάν είναι μια δομή του εγγράφου, μπορείτε να ισοπεδώνω τη δομή. Μπορείτε να δημιουργήσετε εναλλακτική ευρετήρια. Όλα τα είδη των πραγμάτων που μπορείτε να κάνει με τις DynamoDB ρεύματα. Και πραγματικά, αυτό είναι ό, τι αυτό μοιάζει. Έτσι, μπορείτε να πάρετε τις ενημερωμένες εκδόσεις που έρχονται. Έρχονται από το κορδόνι. Είναι διαβάσει από τη λειτουργία Λάμδα. Είναι εκ περιτροπής τα δεδομένα και ωθώντας επάνω σε παράγωγα πίνακες, κοινοποίηση εξωτερικά συστήματα της αλλαγής, και σπρώχνοντας δεδομένα σε ElastiCache. Μιλήσαμε για το πώς να βάλει τη μνήμη cache μπροστά από το εν λόγω βάσης δεδομένων για τις πωλήσεις σενάριο. Λοιπόν, τι θα συμβεί εάν ενημερώσετε την περιγραφή του στοιχείου; Λοιπόν, αν είχα ένα λάμδα Λειτουργία τρέχει στον εν λόγω πίνακα, αν μπορώ να ενημερώσω την περιγραφή του είδους, αυτό θα σηκώστε το ρεκόρ έξω από το ρεύμα, και θα ενημερώσει το ElastiCache παράδειγμα με τα νέα δεδομένα. Οπότε αυτό είναι ένα πολύ τι κάνουμε με λάμδα. Είναι κώδικα κόλλα, συνδετήρες. Και αυτό δίνει πραγματικά η δυνατότητα να ξεκινήσει και να τρέχει πολύ σύνθετες εφαρμογές χωρίς αποκλειστικό διακομιστή υποδομή, η οποία είναι πραγματικά δροσερό. Ας πάμε πίσω στο μας σε πραγματικό χρόνο αρχιτεκτονική ψήφου. Αυτό είναι νέο και βελτιωμένο με μας ρέματα και KCL ενεργοποιημένη εφαρμογή. Ίδια όπως και πριν, μπορούμε χειριστεί οποιαδήποτε κλίμακα των εκλογών. Μας αρέσει αυτό. Κάνουμε έξω συγκεντρώνει διασποράς σε πολλούς κουβάδες. Έχουμε αισιόδοξο κλείδωμα συμβαίνει. Μπορούμε να κρατήσει τους ψηφοφόρους μας από την αλλαγή του εκλογικού τους δικαιώματος. Μπορούν μόνο να ψηφίσει μόνο μία φορά. Αυτό είναι φανταστικό. Σε πραγματικό χρόνο ανοχή σε σφάλματα, επεκτάσιμη συνάθροιση τώρα. Αν το πράγμα πέφτει πάνω, το ξέρει πού να επανεκκινήσετε τον ίδιο όταν πρόκειται για αντίγραφα ασφαλείας, επειδή είμαστε χρησιμοποιώντας την εφαρμογή KCL. Και τότε μπορούμε επίσης να χρησιμοποιήσουμε Εφαρμογή KCL να ωθήσει τα δεδομένα από με ερυθρή μετατόπιση για άλλους analytics app, ή χρήση Η ελαστική MapReduce να τρέξει σε πραγματικό χρόνο ροής συναθροίσεις εκτός των εν λόγω δεδομένων. Έτσι, αυτά είναι πράγματα που δεν έχω μιλήσει για πολύ. Αλλά είναι συμπληρωματικές τεχνολογίες που έρχονται να φέρει όταν ψάχνετε σε αυτούς τους τύπους των σεναρίων. Εντάξει, έτσι ώστε να είναι περίπου analytics με DynamoDB ρεύματα. Μπορείτε να συλλέξετε de-κοροϊδεύω δεδομένα, κάνουμε όλα τα είδη ωραία πράγματα, τα συγκεντρωτικά δεδομένα μνήμη, τη δημιουργία αυτών των πινάκων παράγωγο. Αυτό είναι μια τεράστια υπόθεση χρήσης ότι πολλοί πελάτες συμμετέχουν, παίρνοντας το ένθετο ιδιότητες των εν λόγω εγγράφων JSON και τη δημιουργία πρόσθετων δεικτών. Είμαστε στο τέλος. Σας ευχαριστούμε για την κάλυψη μαζί μου. Ας μιλήσουμε για αρχιτεκτονική αναφοράς. DynamoDB βρίσκεται στη μέση του, έτσι μεγάλο μέρος της υποδομής AWS. Βασικά μπορείτε να το συνδέσετε μέχρι ό, τι θέλετε. Εφαρμογές που έχουν δημιουργηθεί χρησιμοποιώντας Ντιναμό περιλαμβάνουν Λάμδα, ElastiCache, CloudSearch, ωθήσει τα δεδομένα έξω σε ελαστική MapReduce, εισαγωγές εξαγωγές από DynamoDB σε S3, όλα τα είδη των ροών εργασίας. Αλλά ίσως το καλύτερο πράγμα που πρέπει να μιλήσουμε για, και αυτό είναι ό, τι είναι πραγματικά ενδιαφέρον είναι όταν εμείς μιλάμε για περίπτωση με γνώμονα τις εφαρμογές. Αυτό είναι ένα παράδειγμα του ένα εσωτερικό σχέδιο ότι έχουμε όταν στην πραγματικότητα είμαστε εκδοτική να συγκεντρωθούν τα αποτελέσματα της έρευνας. Έτσι, σε ένα σύνδεσμο ηλεκτρονικού ταχυδρομείου που στέλνουμε έξω, θα υπάρξει είναι λίγο σύνδεσμο λέγοντας κλικ εδώ για να απαντήσουν στα ερωτηματολόγια. Και όταν κάποιος κάνει κλικ ο σύνδεσμος, τι συμβαίνει Είναι αυτοί γκρεμίζουν ένα ασφαλές Έντυπο της έρευνας HTML από το S3. Δεν υπάρχει διακομιστή. Αυτό είναι απλά ένα αντικείμενο S3. Το έντυπο αυτό έρχεται, φορτώνει στο πρόγραμμα περιήγησης. Είναι πήρε Backbone. Είναι πήρε συγκρότημα JavaScript ότι τρέχει. Έτσι είναι πολύ πλούσια εφαρμογή εκτελείται στον browser του πελάτη. Δεν ξέρουν ότι δεν είναι αλληλεπιδρά με ένα πίσω άκρο του διακομιστή. Σε αυτό το σημείο, είναι όλα του προγράμματος περιήγησης. Θα δημοσιεύσει τα αποτελέσματα σε ό, τι καλούμε το API πύλη του Αμαζονίου. API Gateway είναι απλά ένα web API ότι μπορείτε να ορίσετε και να συνδέω σε ό, τι θέλετε. Στη συγκεκριμένη περίπτωση, είμαστε συνδεδεμένο με μια λειτουργία Lambda. Έτσι ώστε η λειτουργία POST μου συμβαίνει με κανένα διακομιστή. Βασικά ότι API πύλη κάθεται εκεί. Μου κοστίζει τίποτα μέχρι οι άνθρωποι Αρχίστε να υποβάλλετε σε αυτό, έτσι δεν είναι; Η λειτουργία Lambda κάθεται ακριβώς εκεί. Και αυτό μου κοστίζει τίποτα μέχρι άνθρωποι αρχίζουν το χτύπημα. Έτσι μπορείτε να δείτε, καθώς ο όγκος αυξήσεις, ότι όταν έρθουν οι χρεώσεις. Δεν είμαι λειτουργία ενός διακομιστή 7/24. Γι 'αυτό και τραβήξτε τη μορφή κάτω από τον κάδο, και εγώ μετά μέσω του API Πύλη στη λειτουργία Λάμδα. Και τότε ο Lambda Λειτουργία λέει, ξέρετε τι, έχω κάποιες PIIs, μερικοί προσωπικά στοιχεία σε αυτές τις απαντήσεις. Πήρα τα σχόλια που προέρχονται από τους χρήστες. Έχω διευθύνσεις ηλεκτρονικού ταχυδρομείου. Έχω ονόματα. Επιτρέψτε μου να χωρίσει αυτό μακριά. Πάω να δημιουργήσει κάποια μεταδεδομένα από αυτό το ρεκόρ. Και Πάω να πιέσει το μεταδεδομένα σε DynamoDB. Και θα μπορούσα να κρυπτογραφήσει όλα τα δεδομένα και να ωθήσει στο DynamoDB αν θέλω. Αλλά είναι πιο εύκολο για μένα, σε αυτό το χρησιμοποιήστε την περίπτωση, για να προχωρήσει μια ας πούμε, Πάω να ωθήσει την πρωτογενή δεδομένα σε ένα κρυπτογραφημένο S3 κάδου. Έτσι μπορώ να χρησιμοποιήσω χτισμένο στην πλαγιά του server S3 κρυπτογράφησης και διαχείρισης κλειδιού της Amazon Υπηρεσία έτσι ώστε να έχω ένα κλειδί που μπορεί να περιστραφεί σε τακτά χρονικά διαστήματα, και μπορώ να προστατεύσουν τα δεδομένα ΠΑΠ ως μέρος όλης αυτής της ροής εργασίας. Λοιπόν, τι έκανα; Έχω μόλις αναπτυχθεί μια ολόκληρη εφαρμογή, και δεν έχω κανένα server. Έτσι, είναι ό, τι εκδήλωση γνώμονα την εφαρμογή αρχιτεκτονική κάνει για σας. Τώρα, αν το σκεφτείτε η περίπτωση χρήσης για this-- έχουμε άλλους πελάτες μιλάω περίπου σ 'αυτή ακριβώς την αρχιτεκτονική που τρέχει φαινομενικά μεγάλες εκστρατείες, που εξετάζουμε αυτό και φεύγουν, Θεέ μου. Επειδή τώρα, μπορούν να Βασικά ωθήσει εκεί έξω, ας ότι η εκστρατεία κάτσε εκεί μέχρι να λανσάρει, και δεν έχετε να ανησυχείτε για ένα σύκο τι είδους υποδομή πρόκειται να είναι εκεί για να την υποστηρίξει. Και στη συνέχεια το συντομότερο ότι η εκστρατεία γίνεται, είναι σαν την υποδομή μόλις πηγαίνει αμέσως μακριά γιατί πραγματικά εκεί δεν είναι υποδομών. Είναι απλά κώδικα που βρίσκεται στην Λ. Είναι απλά τα δεδομένα που κάθεται στο DynamoDB. Είναι ένας καταπληκτικός τρόπος για τη δημιουργία εφαρμογών. Κοινό: Έτσι είναι πιο εφήμερη από ό, τι θα ήταν αν ήταν αποθηκευμένα σε ένα πραγματικό server; RICK Houlihan: Απολύτως. Επειδή εκείνη την περίπτωση σέρβερ θα πρέπει να είναι 7/24. Πρέπει να είναι διαθέσιμο για κάποιος να ανταποκριθεί. Λοιπόν μαντέψτε τι; S3 είναι διαθέσιμη 7/24. S3 ανταποκρίνεται πάντα. Και S3 είναι πολύ, πολύ καλό να εξυπηρετήσει τα αντικείμενα. Αυτά τα αντικείμενα μπορεί να είναι αρχεία HTML, ή JavaScript αρχεία, ή οτιδήποτε άλλο θέλετε. Μπορείτε να τρέχουν πολύ πλούσιες εφαρμογές web από S3 κουβάδες, και οι άνθρωποι κάνουν. Και έτσι αυτή είναι η ιδέα εδώ είναι να ξεφύγουμε από τον τρόπο θα χρησιμοποιηθούν για να το σκεφτώ. Είμαστε όλοι χρησιμοποιούνται για να σκεφτόμαστε όρους των servers και φιλοξενεί. Δεν είναι γι 'αυτό πια. Πρόκειται για την υποδομή ως κωδικός. Αναπτύξτε τον κώδικα στο cloud και αφήστε το σύννεφο που τρέχει για εσάς. Και αυτό είναι ό, τι AWS προσπαθεί να κάνει. Κοινό: Έτσι κουτί χρυσό στη μέση του API πύλη δεν είναι server-όπως, αλλά, αντίθετα, είναι just-- RICK Houlihan: Μπορείτε να σκεφτείτε από το ως πρόσοψη του server. Όλα είναι είναι ότι θα πάρετε μια HTTP να ζητήσει και να χαρτογραφήσει σε μια άλλη διαδικασία. Αυτό είναι το μόνο που κάνει. Και σε αυτή την περίπτωση, είμαστε χαρτογράφηση αυτό σε μια λειτουργία Lambda. Εντάξει, έτσι ώστε να είναι όλα πήρα. Ευχαριστώ πολύ. Το εκτιμώ. Ξέρω ότι θέλουμε λίγο την πάροδο του χρόνου. Και ελπίζω σας παιδιά πήρα ένα μικρό κομμάτι των πληροφοριών ότι μπορείτε να πάρετε μακριά σήμερα. Και ζητώ συγγνώμη αν πήγα πάνω από τα κεφάλια μερικών από σας, αλλά υπάρχει μια καλή πολλά θεμελιώδη θεμελιώδη γνώση Νομίζω ότι είναι πολύ πολύτιμη για εσάς. Έτσι, σας ευχαριστώ που μου. [ΧΕΙΡΟΚΡΟΤΉΜΑΤΑ] Κοινό: [δεν ακούγεται] είναι όταν λέγατε θα έπρεπε να περάσει μέσα από το πράγμα από την αρχή μέχρι το τέλος να πάρει τις σωστές τιμές ή τις ίδιες αξίες, πώς θα ήταν οι τιμές να αλλάξει αν [δεν ακούγεται]. RICK Houlihan: Ω, idempotent; Πώς θα αλλάξουν οι τιμές; Λοιπόν, γιατί αν δεν είχα τρέξει όλη τη διαδρομή μέχρι το τέλος, τότε δεν ξέρω τι αλλάζει έγιναν το τελευταίο μίλι. Δεν πρόκειται να είναι η ίδια στοιχεία με αυτά που είδα. Κοινό: Ω, έτσι απλά δεν έχουν πάρει το σύνολο των εισροών. RICK Houlihan: Δεξιά. Θα πρέπει να πάμε από την αρχή μέχρι το τέλος, και τότε είναι πρόκειται να είναι μια σταθερή κατάσταση. Δροσερός. Κοινό: Έτσι μας έδειξε DynamoDB μπορεί να κάνει έγγραφο ή την τιμή του κλειδιού. Και περάσαμε πολύ χρόνο στο βασική αξία με ένα hash και τους τρόπους για να αναστρέψετε γύρω. Όταν κοίταξε τους πίνακες αυτούς, είναι ότι αφήνοντας πίσω την προσέγγιση του εγγράφου; RICK Houlihan: Δεν θα λένε αφήνοντας πίσω. Κοινό: Είχαν διαχωριστεί από the-- RICK Houlihan: Με το έγγραφο προσέγγιση, το είδος του εγγράφου στο DynamoDB Είναι απλά σκεφτείτε ως μια άλλη ιδιότητα. Είναι ένα χαρακτηριστικό που περιέχει μια ιεραρχική δομή δεδομένων. Και στη συνέχεια, τα ερωτήματα, μπορείτε να χρησιμοποιήσετε τις ιδιότητες των εν λόγω αντικειμένων με χρήση Object Notation. Γι 'αυτό και μπορεί να φιλτράρει σε ένθετο ιδιοκτησία του εγγράφου JSON. Κοινό: Έτσι, κάθε φορά που κάνει μια προσέγγιση έγγραφο, I είδος μπορεί να φτάσει στο tabular-- Κοινό: Απολύτως. Κοινό: --indexes και πράγματα που μόλις μίλησα. RICK Houlihan: Ναι, η ευρετήρια και όλα αυτά, όταν θέλετε να το δείκτη ιδιότητες του JSON, Ο τρόπος που θα πρέπει να το κάνουμε αυτό, αν είναι μπορείτε να εισαγάγετε ένα αντικείμενο JSON ή ένα έγγραφο στην Ντιναμό, που θα χρησιμοποιήσετε ρεύματα. Ρεύματα θα διαβάζει τα δεδομένα. Θα παίρνατε ότι JSON αντιρρήσεις και θέλετε να πούμε, εντάξει, ποια είναι η περιουσία που θέλω στο ευρετήριο; Μπορείτε να δημιουργήσετε ένα παράγωγο πίνακα. Τώρα αυτός είναι ο τρόπος που λειτουργεί αυτή τη στιγμή. Εμείς δεν σας επιτρέπουν να δείκτη άμεσα αυτές τις ιδιότητες. Κοινό: Tabularizing τα έγγραφά σας. RICK Houlihan: Ακριβώς, ισοπεδώνοντας αυτό, tabularizing, ακριβώς. Αυτό είναι ό, τι κάνετε με αυτό. Κοινό: Σας ευχαριστώ. RICK Houlihan: Ναι, απολύτως, σας ευχαριστώ. Κοινό: Έτσι είναι το είδος του Mongo συναντά Redis classifers. RICK Houlihan: Ναι, είναι πολλά σαν αυτό. Αυτό είναι μια καλή περιγραφή για αυτό. Δροσερός.