Δημιουργήστε αυτό το δείγμα εφαρμογής για να ανακαλύψετε πόσο εύκολες μπορεί να είναι οι βάσεις δεδομένων.
Βασικά Takeaways
- Η DynamoDB είναι μια ισχυρή βάση δεδομένων NoSQL που προσφέρεται από την AWS που μπορεί να χειριστεί μεγάλες ποσότητες διαφορετικών δεδομένων χωρίς να θέτει σε κίνδυνο την απόδοση, την ανθεκτικότητα ή την αξιοπιστία.
- Για να ξεκινήσετε με το DynamoDB στο Node.js, πρέπει να εγκαταστήσετε το πακέτο client-dynamodb από το aws-sdk και να διαμορφώσετε τα διαπιστευτήριά σας.
- Το DynamoDB σάς επιτρέπει να δημιουργείτε εύκολα πίνακες, να γράφετε και να διαβάζετε δεδομένα, να ενημερώνετε εγγραφές και να διαγράφετε εγγραφές χρησιμοποιώντας τις μεθόδους και τις παραμέτρους του πελάτη. Προσφέρει ευελιξία και επεκτασιμότητα για αποτελεσματική ανάπτυξη εφαρμογών.
Ένα μεγάλο μέρος της σύγχρονης ανάπτυξης εφαρμογών χρειάζεται έναν συνδυασμό ισχυρών γλωσσών προγραμματισμού και ισχυρών βάσεων δεδομένων.
Μία από τις λύσεις που προσφέρει το Amazon Web Services (AWS) είναι το DynamoDB, ένα εργαλείο που μπορεί να φέρει επανάσταση στη διαχείριση των δεδομένων σας. Χρησιμοποιώντας το, μπορείτε να παρέχετε γρήγορα μια βάση δεδομένων για τη διαχείριση μεγάλων ποσοτήτων διαφορετικών δεδομένων.
Τι είναι το DynamoDB;
Το AWS προσφέρει υπηρεσίες για διαφορετικές ανάγκες βάσης δεδομένων, όπως Amazon RDS για σχεσιακές βάσεις δεδομένωνκαι DocumentDB για βάσεις δεδομένων εγγράφων όπως η MongoDB. Το DynamoDB είναι μια βάση δεδομένων NoSQL για την αποθήκευση δεδομένων σε μορφή κλειδιού-τιμής.
Το DynamoDB μπορεί να χειριστεί μεγάλες ποσότητες δεδομένων σε κατανεμημένη υποδομή χωρίς να θέτει σε κίνδυνο την απόδοση, την ανθεκτικότητα ή την αξιοπιστία. Προσφέρει ένα ευέλικτο μοντέλο, επιτρέποντάς σας να αποθηκεύετε και να αναζητάτε εύκολα δεδομένα, είτε είναι δομημένα είτε μη.
Μπορείτε να χρησιμοποιήσετε το DynamoDB ως βάση δεδομένων για διάφορους τύπους εφαρμογών. Μπορείτε να έχετε πρόσβαση απευθείας από την κονσόλα ιστού AWS και μέσω προγραμματισμού μέσω του AWS-CLI ή από εφαρμογές web που χρησιμοποιούν το AWS-SDK.
Ξεκινώντας με το DynamoDB στο Node.js
Υπάρχουν πολλά εργαλεία για τη δημιουργία backend API στο Node.js και είστε ελεύθεροι να επιλέξετε τη βάση δεδομένων για το API σας όταν εργάζεστε με οποιοδήποτε από αυτά τα εργαλεία. Το Node.js παρέχει ευρεία υποστήριξη για εξωτερικές υπηρεσίες, συμπεριλαμβανομένων βάσεων δεδομένων όπως το AWS DynamoDB.
Το μόνο που χρειάζεστε για να αποκτήσετε πρόσβαση σε μια υπηρεσία AWS από την εφαρμογή Node είναι ο πελάτης aws-sdk πακέτο για αυτήν την υπηρεσία. Για παράδειγμα, για να αποκτήσετε πρόσβαση στο DynamoDB, πρέπει να εγκαταστήσετε το πελάτη-dynamodb πακέτο κάτω aws-sdk.
Εκτελέστε αυτήν την εντολή στον κατάλογο του έργου σας για να εγκαταστήσετε το πακέτο:
npm install @aws-sdk/client-dynamodb
Μετά την εγκατάσταση aws-sdk/client-dynamodb στο έργο σας Node.js, πρέπει να προσθέσετε την περιοχή του πίνακα DynamoDB στη διαμόρφωση πριν αλληλεπιδράσετε μαζί του. Θα το κάνετε αυτό κατά την προετοιμασία του προγράμματος-πελάτη DynamoDB.
Εάν έχετε εγκαταστήσει και χρησιμοποιήσει το AWS-CLI στον υπολογιστή σας στο παρελθόν, πιθανότατα έχετε ήδη ορίσει διαπιστευτήρια AWS στο περιβάλλον σας και το SDK θα λάβει αυτόματα τις τιμές σας από το περιβάλλον.
Αλλά αν δεν το έχετε, μπορείτε να κατευθυνθείτε στο Διαχείριση πρόσβασης ταυτότητας AWS (IAM) υπηρεσία στην κονσόλα σας και δημιουργήστε έναν νέο χρήστη. Μετά τη δημιουργία του χρήστη, μπορείτε να λάβετε ένα αναγνωριστικό κλειδιού πρόσβασης και ένα μυστικό κλειδί, τα οποία είναι τα προσωπικά σας διαπιστευτήρια.
Προσθέστε αυτά τα διαπιστευτήρια στο περιβάλλον σας εκτελώντας τις ακόλουθες εντολές τερματικού για την πλατφόρμα σας:
Σε Unix, Linux ή macOS:
export AWS_ACCESS_KEY_ID='your access key ID'
export AWS_SECRET_ACCESS_KEY='you secret access key'
Σε Windows (CMD):
set AWS_ACCESS_KEY_ID='your access key ID'
set AWS_SECRET_ACCESS_KEY='you secret access key'
Στα Windows (PowerShell):
$env: AWS_ACCESS_KEY_ID='your access key ID'
$env: AWS_SECRET_ACCESS_KEY='you secret access key'
Στη συνέχεια, ξανά στο έργο Node.js, δημιουργήστε ένα νέο αρχείο και ονομάστε το dynamodb.js. Σε αυτό το αρχείο, δημιουργήστε ένα νέο πρόγραμμα-πελάτη AWS DynamoDB χρησιμοποιώντας τον ακόλουθο κώδικα:
const { DynamoDB } = require('@aws-sdk/client-dynamodb')
const region = "us-east-1"// your preferred region
const client = new DynamoDB({ region })
Πολύ απλό! Το AWS βεβαιώνεται ότι δεν εκθέτετε κανένα από τα διαπιστευτήρια ασφαλείας σας στον κώδικά σας, οπότε όσο ο κωδικός παραπάνω προσπαθεί να δημιουργήσει τον πελάτη, διαβάζει πρώτα το κλειδί πρόσβασης και το μυστικό κλειδί από το περιβάλλον σας.
Το νεοδημιουργημένο πελάτης σας δίνει τη δυνατότητα να εκτελείτε διάφορες λειτουργίες, όπως τη δημιουργία πινάκων και την ανάγνωση και εγγραφή δεδομένων.
Το DynamoDB είναι χωρίς σχήματα, όπως και άλλες βάσεις δεδομένων NoSQL, ώστε να μπορείτε πάντα να προσθέτετε νέα χαρακτηριστικά (πεδία) σε έναν πίνακα ανά πάσα στιγμή. Αυτός είναι ο λόγος για τον οποίο χρειάζεται μόνο να προσθέσετε χαρακτηριστικά που θα χρησιμεύουν ως κύρια κλειδιά σε έναν πίνακα DynamoDB κατά τη δημιουργία του.
Δείτε τον παρακάτω κώδικα που δημιουργεί έναν νέο πίνακα (Πελάτης) στο DynamoDB:
const createCustomerTable = async () => {
const params = {
TableName: "Customer",
AttributeDefinitions: [
{
AttributeName: "Email",
AttributeType: "S"
},
],
KeySchema: [
{
AttributeName: "Email",
KeyType: "HASH"
}
],
ProvisionedThroughput: {
ReadCapacityUnits: 5,
WriteCapacityUnits: 5
}
};client.createTable(params, (err, data) => {
if (err) {
console.log(err);
} else {
console.log(data);
}
});
}
createCustomerTable();
ο Ορισμοί χαρακτηριστικών Το πεδίο είναι όπου ορίζετε τα βασικά χαρακτηριστικά του πίνακα και τους τύπους τους. ο ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ το χαρακτηριστικό εδώ έχει τύπο μικρό που σημαίνει ότι το πεδίο αναμένει α Σειρά ως αξία του. Οι τρεις διαθέσιμοι τύποι χαρακτηριστικών είναι μικρό, Ν, και σι (Συμβολοσειρά, Αριθμός και Δυαδικό).
Χρειάζεστε το KeySchema για να ορίσετε πρωτεύοντα κλειδιά που βοηθούν στη γρήγορη εύρεση και οργάνωση αντικειμένων. Το DynamoDB αναμένει ότι τα χαρακτηριστικά που προσθέτετε κατά τη δημιουργία του πίνακα θα είναι βασικά χαρακτηριστικά, επομένως το email είναι το κύριο κλειδί εδώ. Πρέπει να το προσθέσετε στο KeySchema και να το καθορίσετε Τύπος κλειδιού (ΧΑΣΙΣΙ).
Η άλλη διαθέσιμη τιμή KeyType είναι ΕΥΡΟΣ που χρησιμοποιείται για τα πλήκτρα ταξινόμησης. Τα κλειδιά ταξινόμησης είναι χρήσιμα σε περιπτώσεις όπου μπορεί να έχετε δεδομένα με τα ίδια κλειδιά HASH σε έναν πίνακα και θέλετε για να τα ομαδοποιήσετε σύμφωνα με κάποια επιπλέον δεδομένα, όπως ημερομηνία ή χρώμα, μπορείτε να ορίσετε τα επιπλέον δεδομένα ΕΜΒΑΔΟΣ κλειδί.
Η τρίτη σημαντική παράμετρος στον παραπάνω κώδικα είναι το Προμηθευμένη Διακίνηση. Εδώ ορίζετε τον αριθμό των αναγνώσεων και εγγραφών που θέλετε να επιτρέπει το DynamoDb στον πίνακα ανά δευτερόλεπτο.
Όταν εκτελείτε τον παραπάνω κώδικα, θα πρέπει να λάβετε έξοδο που μοιάζει με αυτό:
Εάν ελέγξετε τον πίνακα ελέγχου των πινάκων DynamoDB στην κονσόλα ιστού, θα δείτε τον πίνακα είτε να παρέχεται ακόμα είτε με κατάσταση ενεργός ήδη.
Πάντα να λαμβάνετε υπόψη τις ανάγκες της εφαρμογής σας όταν προσδιορίζετε το ReadCapacity Units και WriteCapacity Units επειδή μια ακατάλληλη τιμή μπορεί να οδηγήσει σε προβλήματα απόδοσης ή υψηλό κόστος χρέωσης στον λογαριασμό σας.
Αφού βεβαιωθείτε ότι ο πίνακας είναι ήδη ενεργός, μπορείτε να εκτελέσετε λειτουργίες CRUD σε αυτόν.
Ακολουθούν μερικά παραδείγματα κώδικα που σας δείχνουν πώς να γράφετε και να διαβάζετε δεδομένα από το Πελάτης τραπέζι.
-
Προσθέστε δεδομένα στον πίνακα. Για να γράψετε δεδομένα σε έναν πίνακα, χρειάζεστε τα δεδομένα του πελάτη putItem μέθοδος. Ο παρακάτω κωδικός προσθέτει έναν νέο πελάτη στο Πελάτης πίνακα στο DynamoDB.
ο παραμέτρους αντικείμενο περιέχει το Όνομα πίνακα που είναι ο πίνακας στον οποίο γράφετε και το Είδος πεδίο που περιέχει τα δεδομένα που προσθέτετε με τους συγκεκριμένους τύπους τους. Παρατηρήστε τα νέα πεδία που δεν υπήρχαν αρχικά στον πίνακα, έτσι λειτουργεί ευέλικτα το DynamoDB. Μπορείτε να δείτε τα δεδομένα στη βάση δεδομένων σας στην κονσόλα σας ως εξής:const createCustomer = async (customer) => {
const params = {
TableName: "Customer",
Item: customer
}client.putItem(params, (err, data) => {
if (err) {
console.error(err)
} else {
console.log(data)
}
})
}const customerData = {
Name: { "S": "Timilehin O." },
Email: { "S": "[email protected]" },
Age: { "N": "18"},
Country: { "S": "Nigeria" }
}createCustomer(customerData)
-
Διαβάστε τα δεδομένα από τον πίνακα. Το DynamoDB σάς επιτρέπει να διαβάζετε δεδομένα με διάφορους τρόπους. Τα SDK σάρωση η συνάρτηση διαβάζει ολόκληρο τον πίνακα, ενώ getItem διαβάζει μόνο συγκεκριμένα δεδομένα. Για παράδειγμα, ο παρακάτω κωδικός λαμβάνει όλους τους πελάτες:
Ενώ ο ακόλουθος κώδικας λαμβάνει τον χρήστη από την τιμή του email:const getAllCustomers = async () => {
const params = {
TableName: "Customer"
}const customers = await client.scan(params)
console.log(customers)
}const getCustomerByEmail = async (email) => {
const params = {
TableName: "Customer",
Key: {
Email: { "S": email } // the type is always required
}
}const customer = await client.getItem(params)
console.log(customer)
}getCustomerByEmail("[email protected]")
-
Ενημερώστε τα δεδομένα στον πίνακα. Για να ενημερώσετε τα υπάρχοντα δεδομένα σε έναν πίνακα, χρησιμοποιήστε τα SDK update Item λειτουργία. Ο παρακάτω κώδικας δείχνει πώς να ενημερώσετε μια συγκεκριμένη εγγραφή:
Μπορείτε επίσης να επιλέξετε να κάνετε τη συνάρτησή σας δυναμική δημιουργώντας εκφράσεις ενημέρωσης από τα δεδομένα ενημέρωσης. Η ευελιξία του DynamoDB σάς επιτρέπει να χειρίζεστε κάθε λειτουργία σύμφωνα με τις ανάγκες σας.const updateCustomerLocation = async (email, age) => {
const params = {
TableName: "Customer",
Key: {
Email: { "S": email }
},
UpdateExpression: "SET Age = :newAge",
ExpressionAttributeValues: {
':newAge': { "N": age }
},
ReturnValues: "ALL_NEW"
}const updatedCustomer = await client.updateItem(params)
console.log(updatedCustomer.Attributes)
} -
Διαγραφή δεδομένων από τον πίνακα. Για να διαγράψετε μια εγγραφή από το DynamoDB, χρειάζεστε το διαγραφή αντικειμένου λειτουργία και το κλειδί της συγκεκριμένης εγγραφής. Δείτε πώς μπορείτε να το εφαρμόσετε:
const deleteCustomer = async (email) => {
const params = {
TableName: "Customer",
Key: {
Email: { "S": email }
}
}client.deleteItem(params, (err, data) => {
if (err) {
console.error(err)
} else {
console.log("Customer deleted successfully")
}
})
}deleteCustomer("[email protected]")
Δημιουργία αποτελεσματικών εφαρμογών με το DynamoDB
Οι Υπηρεσίες Ιστού της Amazon συνεχίζουν να ευδοκιμούν. Παρέχει μια προσβάσιμη πλατφόρμα που μπορείτε να χρησιμοποιήσετε για να παρέχετε αποτελεσματικές, ασφαλείς ψηφιακές λύσεις. Το DynamoDB είναι η τέλεια επιλογή αν ψάχνετε για μια βάση δεδομένων για να ξεκινήσετε χωρίς να ανησυχείτε για την υποδομή ή την ασφάλεια.
Τώρα είστε εξοπλισμένοι με όλα όσα χρειάζεστε για να ξεκινήσετε με το DynamoDB στο Node.js και μπορείτε να επιλέξετε με σιγουριά το DynamoDB για την επόμενη εφαρμογή Node.js.