Erstellen Sie diese Beispiel-App, um zu entdecken, wie einfach Datenbanken sein können.
Die zentralen Thesen
- DynamoDB ist eine leistungsstarke NoSQL-Datenbank von AWS, die große Mengen unterschiedlicher Daten verarbeiten kann, ohne Kompromisse bei Leistung, Haltbarkeit oder Zuverlässigkeit einzugehen.
- Um mit DynamoDB in Node.js zu beginnen, müssen Sie das client-dynamodb-Paket aus dem aws-sdk installieren und Ihre Anmeldeinformationen konfigurieren.
- Mit DynamoDB können Sie mithilfe der Methoden und Parameter des Clients problemlos Tabellen erstellen, Daten schreiben und lesen, Datensätze aktualisieren und Datensätze löschen. Es bietet Flexibilität und Skalierbarkeit für eine effiziente Anwendungsentwicklung.
Ein großer Teil der modernen App-Entwicklung erfordert eine Mischung aus robusten Programmiersprachen und leistungsstarken Datenbanken.
Eine der Lösungen, die Amazon Web Services (AWS) bietet, ist DynamoDB, ein Tool, das Ihr Datenmanagement revolutionieren kann. Damit können Sie schnell eine Datenbank bereitstellen, um große Mengen unterschiedlicher Daten zu verarbeiten.
Was ist DynamoDB?
AWS bietet Dienste für unterschiedliche Datenbankanforderungen an, z Amazon RDS für relationale Datenbankenund DocumentDB für Dokumentdatenbanken wie MongoDB. DynamoDB ist eine NoSQL-Datenbank zum Speichern von Daten in einem Schlüsselwertformat.
DynamoDB kann große Datenmengen in einer verteilten Infrastruktur verarbeiten, ohne die Leistung, Haltbarkeit oder Zuverlässigkeit zu beeinträchtigen. Es bietet ein flexibles Modell, mit dem Sie Daten problemlos speichern und abfragen können, unabhängig davon, ob sie strukturiert oder unstrukturiert sind.
Sie können DynamoDB als Datenbank für verschiedene Arten von Anwendungen verwenden. Sie können direkt über die AWS-Webkonsole und programmgesteuert über die AWS-CLI oder über Webanwendungen mit dem AWS-SDK darauf zugreifen.
Erste Schritte mit DynamoDB in Node.js
Da sind viele Tools zum Erstellen von Backend-APIs in Node.js und Sie können die Datenbank für Ihre API frei wählen, wenn Sie mit einem dieser Tools arbeiten. Node.js bietet umfassende Unterstützung für externe Dienste, einschließlich Datenbanken wie AWS DynamoDB.
Alles, was Sie benötigen, um über Ihre Node-App auf einen AWS-Service zuzugreifen, ist der Client aws-sdk Paket für diesen Dienst. Um beispielsweise auf DynamoDB zugreifen zu können, müssen Sie Folgendes installieren client-dynamodb Paket unten aws-sdk.
Führen Sie diesen Befehl in Ihrem Projektverzeichnis aus, um das Paket zu installieren:
npm install @aws-sdk/client-dynamodb
Nach der Installation aws-sdk/client-dynamodb In Ihrem Node.js-Projekt müssen Sie den Bereich Ihrer DynamoDB-Tabelle zur Konfiguration hinzufügen, bevor Sie mit ihr interagieren. Sie werden dies tun, wenn Sie den DynamoDB-Client initialisieren.
Wenn Sie AWS-CLI bereits auf Ihrem Computer installiert und verwendet haben, sind in Ihrer Umgebung wahrscheinlich bereits AWS-Anmeldeinformationen festgelegt, und das SDK ruft Ihre Werte automatisch aus der Umgebung ab.
Aber wenn nicht, können Sie zum gehen AWS Identity Access Management (IAM) Dienst in Ihrer Konsole und erstellen Sie einen neuen Benutzer. Nach dem Erstellen des Benutzers können Sie eine Zugriffsschlüssel-ID und einen geheimen Schlüssel erhalten, bei denen es sich um Ihre persönlichen Anmeldeinformationen handelt.
Fügen Sie diese Anmeldeinformationen zu Ihrer Umgebung hinzu, indem Sie die folgenden Terminalbefehle für Ihre Plattform ausführen:
Unter Unix, Linux oder macOS:
export AWS_ACCESS_KEY_ID='your access key ID'
export AWS_SECRET_ACCESS_KEY='you secret access key'
Unter Windows (CMD):
set AWS_ACCESS_KEY_ID='your access key ID'
set AWS_SECRET_ACCESS_KEY='you secret access key'
Unter Windows (PowerShell):
$env: AWS_ACCESS_KEY_ID='your access key ID'
$env: AWS_SECRET_ACCESS_KEY='you secret access key'
Erstellen Sie dann zurück in Ihrem Node.js-Projekt eine neue Datei und benennen Sie sie dynamodb.js. Instanziieren Sie in dieser Datei einen neuen AWS DynamoDB-Client mit dem folgenden Code:
const { DynamoDB } = require('@aws-sdk/client-dynamodb')
const region = "us-east-1"// your preferred region
const client = new DynamoDB({ region })
Ziemlich einfach! AWS stellt sicher, dass Sie keine Ihrer Sicherheitsanmeldeinformationen in Ihrem Code preisgeben, also während des Codes Wenn oben versucht wird, den Client zu erstellen, liest er zunächst den Zugriffsschlüssel und den geheimen Schlüssel aus Ihrer Umgebung.
Das neu Geschaffene Klient ermöglicht Ihnen die Durchführung verschiedener Vorgänge, z. B. das Erstellen von Tabellen sowie das Lesen und Schreiben von Daten.
DynamoDB ist wie andere NoSQL-Datenbanken schemalos, sodass Sie jederzeit neue Attribute (Felder) zu einer Tabelle hinzufügen können. Aus diesem Grund müssen Sie beim Erstellen einer DynamoDB-Tabelle nur Attribute hinzufügen, die als Primärschlüssel dienen.
Schauen Sie sich den folgenden Code an, der eine neue Tabelle erstellt (Kunde) in 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();
Der Attributdefinitionen In diesem Feld definieren Sie die Schlüsselattribute der Tabelle und deren Typen. Der Email Das Attribut hier hat Typ S was bedeutet, dass das Feld a erwartet Zeichenfolge als dessen Wert. Die drei verfügbaren Attributtypen sind S, N, Und B (String, Zahl und Binär).
Du brauchst das Schlüsselschema um Primärschlüssel zu definieren, die dabei helfen, Elemente schnell zu finden und zu organisieren. DynamoDB erwartet, dass die Attribute, die Sie beim Erstellen der Tabelle hinzufügen, Schlüsselattribute sind, daher ist E-Mail hier der Primärschlüssel. Sie müssen es zum KeySchema hinzufügen und angeben Schlüsselart (HASH).
Der andere verfügbare KeyType-Wert ist REICHWEITE welches für Sortierschlüssel verwendet wird. Sortierschlüssel sind in Fällen nützlich, in denen Sie möglicherweise Daten mit denselben HASH-Schlüsseln in einer Tabelle haben und dies möchten Um sie nach einigen zusätzlichen Daten wie Datum oder Farbe zu gruppieren, können Sie die zusätzlichen Daten zu einem RANGE machen Schlüssel.
Der dritte wichtige Parameter im obigen Code ist der Bereitgestellter Durchsatz. Hier definieren Sie die Anzahl der Lese- und Schreibvorgänge, die DynamoDb pro Sekunde für die Tabelle zulassen soll.
Wenn Sie den obigen Code ausführen, sollten Sie eine Ausgabe erhalten, die wie folgt aussieht:
Wenn Sie Ihr DynamoDB-Tabellen-Dashboard in der Webkonsole überprüfen, sehen Sie, dass die Tabelle entweder noch bereitgestellt wird oder den Status hat aktiv bereits.
Berücksichtigen Sie bei der Spezifikation immer Ihre Anwendungsanforderungen ReadCapacityUnits Und WriteCapacityUnits denn ein unpassender Wert kann zu Leistungsproblemen oder hohen Abrechnungskosten auf Ihrem Konto führen.
Sobald Sie sicher sind, dass die Tabelle bereits aktiv ist, können Sie CRUD-Operationen daran durchführen.
Im Folgenden finden Sie einige Codebeispiele, die Ihnen zeigen, wie Sie Daten aus dem schreiben und lesen Kunde Tisch.
-
Fügen Sie Daten zur Tabelle hinzu. Um Daten in eine Tabelle zu schreiben, benötigen Sie die des Clients putItem Methode. Der folgende Code fügt einen neuen Kunden hinzu Kunde Tabelle in DynamoDB.
Der Parameter Objekt enthält die Tabellenname Welches ist die Tabelle, an die Sie schreiben, und die Artikel Feld, das die von Ihnen hinzugefügten Daten mit ihren spezifischen Typen enthält. Beachten Sie die neuen Felder, die ursprünglich nicht in der Tabelle enthalten waren. So funktioniert DynamoDB flexibel. Sie können die Daten in Ihrer Datenbank in Ihrer Konsole wie folgt anzeigen: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)
-
Lesen Sie Daten aus der Tabelle. Mit DynamoDB können Sie Daten auf verschiedene Arten lesen. Die SDKs Scan Funktion liest die gesamte Tabelle, while getItem liest nur bestimmte Daten. Der folgende Code ruft beispielsweise alle Kunden ab:
Während der folgende Code den Benutzer anhand des E-Mail-Werts abruft: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]")
-
Aktualisieren Sie die Daten in der Tabelle. Um vorhandene Daten in einer Tabelle zu aktualisieren, verwenden Sie die SDKs updateItem Funktion. Der folgende Code zeigt, wie ein bestimmter Datensatz aktualisiert wird:
Sie können Ihre Funktion auch dynamisch gestalten, indem Sie Aktualisierungsausdrücke aus Ihren Aktualisierungsdaten erstellen. Die Flexibilität von DynamoDB ermöglicht es Ihnen, jeden Vorgang entsprechend Ihren Anforderungen abzuwickeln.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)
} -
Daten aus der Tabelle löschen. Um einen Datensatz aus DynamoDB zu löschen, benötigen Sie die Element löschen Funktion und den Schlüssel des jeweiligen Datensatzes. So implementieren Sie es:
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]")
Effiziente Anwendungen mit DynamoDB erstellen
Amazon Web Services floriert weiterhin. Es bietet eine zugängliche Plattform, mit der Sie effiziente und sichere digitale Lösungen bereitstellen können. DynamoDB ist die perfekte Wahl, wenn Sie eine Datenbank suchen, die Sie in Betrieb nehmen können, ohne sich Gedanken über Infrastruktur oder Sicherheit machen zu müssen.
Sie sind jetzt mit allem ausgestattet, was Sie für den Einstieg mit DynamoDB in Node.js benötigen, und können sich getrost für DynamoDB für Ihre nächste Node.js-Anwendung entscheiden.