Zgradite to vzorčno aplikacijo, da ugotovite, kako enostavne so lahko baze podatkov.
Ključni zaključki
- DynamoDB je zmogljiva baza podatkov NoSQL, ki jo ponuja AWS in lahko obdeluje velike količine različnih podatkov, ne da bi pri tem ogrozila zmogljivost, vzdržljivost ali zanesljivost.
- Če želite začeti uporabljati DynamoDB v Node.js, morate namestiti paket client-dynamodb iz aws-sdk in konfigurirati svoje poverilnice.
- DynamoDB vam omogoča preprosto ustvarjanje tabel, pisanje in branje podatkov, posodabljanje zapisov in brisanje zapisov z uporabo metod in parametrov odjemalca. Ponuja prilagodljivost in razširljivost za učinkovit razvoj aplikacij.
Velik del sodobnega razvoja aplikacij potrebuje mešanico robustnih programskih jezikov in zmogljivih baz podatkov.
Ena od rešitev, ki jih ponuja Amazon Web Services (AWS), je DynamoDB, orodje, ki lahko spremeni vaše upravljanje podatkov. Z njegovo uporabo lahko hitro zagotovite bazo podatkov za obdelavo velikih količin različnih podatkov.
Kaj je DynamoDB?
AWS ponuja storitve za različne potrebe podatkovnih baz, kot so Amazon RDS za relacijske baze podatkovin DocumentDB za podatkovne baze dokumentov, kot je MongoDB. DynamoDB je baza podatkov NoSQL za shranjevanje podatkov v obliki ključ-vrednost.
DynamoDB lahko obdeluje velike količine podatkov v porazdeljeni infrastrukturi brez ogrožanja zmogljivosti, vzdržljivosti ali zanesljivosti. Ponuja prilagodljiv model, ki vam omogoča preprosto shranjevanje in poizvedovanje po podatkih, ne glede na to, ali so strukturirani ali nestrukturirani.
DynamoDB lahko uporabite kot bazo podatkov za različne vrste aplikacij. Do njega lahko dostopate neposredno iz spletne konzole AWS in programsko prek AWS-CLI ali iz spletnih aplikacij z uporabo AWS-SDK.
Kako začeti z DynamoDB v Node.js
Veliko jih je orodja za izdelavo zalednih API-jev v Node.js in pri delu s katerim koli od teh orodij lahko prosto izberete bazo podatkov za svoj API. Node.js zagotavlja široko podporo za zunanje storitve, vključno z bazami podatkov, kot je AWS DynamoDB.
Vse, kar potrebujete za dostop do storitve AWS iz vaše aplikacije Node, je odjemalec aws-sdk paket za to storitev. Na primer, za dostop do DynamoDB morate namestiti odjemalec-dynamodb paket pod aws-sdk.
Zaženite ta ukaz v imeniku vašega projekta, da namestite paket:
npm install @aws-sdk/client-dynamodb
Po namestitvi aws-sdk/client-dynamodb v vašem projektu Node.js morate dodati regijo tabele DynamoDB v konfiguracijo, preden začnete z njo. To boste storili pri inicializaciji odjemalca DynamoDB.
Če ste v računalnik že namestili in uporabljali AWS-CLI, imate verjetno že nastavljene poverilnice AWS v svojem okolju in SDK bo samodejno pridobil vaše vrednosti iz okolja.
Če pa še niste, se lahko odpravite na AWS Identity Access Management (IAM) storitev v vaši konzoli in ustvarite novega uporabnika. Ko ustvarite uporabnika, lahko dobite ID ključa za dostop in tajni ključ, ki sta vaši osebni poverilnici.
Dodajte te poverilnice v svoje okolje tako, da zaženete naslednje terminalske ukaze za svojo platformo:
V sistemu Unix, Linux ali macOS:
export AWS_ACCESS_KEY_ID='your access key ID'
export AWS_SECRET_ACCESS_KEY='you secret access key'
V sistemu Windows (CMD):
set AWS_ACCESS_KEY_ID='your access key ID'
set AWS_SECRET_ACCESS_KEY='you secret access key'
V sistemu Windows (PowerShell):
$env: AWS_ACCESS_KEY_ID='your access key ID'
$env: AWS_SECRET_ACCESS_KEY='you secret access key'
Nato znova v svojem projektu Node.js ustvarite novo datoteko in jo poimenujte dynamodb.js. V tej datoteki instanciirajte novega odjemalca AWS DynamoDB z naslednjo kodo:
const { DynamoDB } = require('@aws-sdk/client-dynamodb')
const region = "us-east-1"// your preferred region
const client = new DynamoDB({ region })
Precej preprosto! AWS poskrbi, da v kodi ne razkrijete nobenih svojih varnostnih poverilnic, zato med kodo zgoraj poskuša ustvariti odjemalca, najprej prebere ključ za dostop in skrivni ključ iz vašega okolja.
Novoustvarjeni stranka vam omogoča izvajanje različnih operacij, kot je ustvarjanje tabel ter branje in pisanje podatkov.
DynamoDB je tako kot druge baze podatkov NoSQL brez sheme, tako da lahko kadar koli dodate nove atribute (polja) v tabelo. Zato morate pri ustvarjanju tabele DynamoDB dodati le atribute, ki bodo služili kot primarni ključi.
Oglejte si naslednjo kodo, ki ustvari novo tabelo (Stranka) v 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();
The Definicije atributov je polje, kjer določite ključne atribute tabele in njihove vrste. The E-naslov atribut ima tukaj vrsto S kar pomeni, da polje pričakuje a Vrvica kot svojo vrednost. Na voljo so tri vrste atributov S, n, in B (Niz, število in dvojiško).
Potrebujete KeySchema za določitev primarnih ključev, ki pomagajo hitro najti in organizirati elemente. DynamoDB pričakuje, da bodo atributi, ki jih dodate pri ustvarjanju tabele, ključni atributi, zato je e-pošta tukaj primarni ključ. Dodati ga morate v KeySchema in določiti njegov KeyType (HASH).
Druga razpoložljiva vrednost KeyType je RANGE ki se uporablja za razvrstitvene ključe. Ključi za razvrščanje so uporabni v primerih, ko imate morda podatke z enakimi ključi HASH v tabeli in želite če jih želite razvrstiti v skupine glede na nekatere dodatne podatke, kot sta datum ali barva, lahko dodatne podatke spremenite v RANGE ključ.
Tretji pomemben parameter v zgornji kodi je ProvisionedThroughput. Tukaj določite število branj in zapisov, ki jih želite, da DynamoDb omogoči v tabeli na sekundo.
Ko zaženete zgornjo kodo, bi morali dobiti rezultat, ki je videti takole:
Če preverite nadzorno ploščo tabel DynamoDB v spletni konzoli, boste videli, da je tabela še vedno oskrbljena ali ima status aktivna že.
Pri navajanju vedno upoštevajte potrebe svoje aplikacije ReadCapacityUnits in WriteCapacityUnits ker lahko neustrezna vrednost povzroči težave pri delovanju ali visoke stroške zaračunavanja na vašem računu.
Ko ste prepričani, da je tabela že aktivna, lahko na njej izvedete operacije CRUD.
Sledi nekaj primerov kode, ki vam pokažejo, kako pisati in brati podatke iz Stranka tabela.
-
Dodajte podatke v tabelo. Če želite zapisati podatke v tabelo, potrebujete strankino putItem metoda. Spodnja koda doda novo stranko v Stranka tabelo v DynamoDB.
The params predmet vsebuje TableName katera je miza, v katero pišete, in Postavka polje, ki vsebuje podatke, ki jih dodajate, z njihovimi posebnimi vrstami. Bodite pozorni na nova polja, ki na začetku niso bila v tabeli, tako DynamoDB deluje prilagodljivo. Podatke v svoji bazi podatkov si lahko ogledate v svoji konzoli takole: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)
-
Preberi podatke iz tabele. DynamoDB omogoča branje podatkov na različne načine. SDK-ji skeniranje funkcija prebere celotno tabelo, medtem ko getItem bere samo določene podatke. Na primer, spodnja koda pridobi vse stranke:
Medtem ko naslednja koda pridobi uporabnika po e-poštni vrednosti: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]")
-
Posodobite podatke v tabeli. Če želite posodobiti obstoječe podatke v tabeli, uporabite SDK updateItem funkcijo. Naslednja koda prikazuje, kako posodobiti določen zapis:
Izberete lahko tudi, da svojo funkcijo naredite dinamično, tako da zgradite izraze za posodabljanje iz svojih podatkov za posodabljanje. Prilagodljivost DynamoDB vam omogoča, da upravljate vsako operacijo glede na vaše potrebe.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)
} -
Brisanje podatkov iz tabele. Če želite izbrisati zapis iz DynamoDB, potrebujete deleteItem funkcijo in ključ določenega zapisa. Evo, kako to implementirati:
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]")
Gradnja učinkovitih aplikacij z DynamoDB
Spletne storitve Amazon še naprej uspevajo. Zagotavlja dostopno platformo, ki jo lahko uporabite za zagotavljanje učinkovitih in varnih digitalnih rešitev. DynamoDB je odlična izbira, če iščete zbirko podatkov, ki bi jo lahko zagnali brez skrbi za infrastrukturo ali varnost.
Zdaj imate vse, kar potrebujete za začetek uporabe DynamoDB v Node.js, in lahko samozavestno izberete DynamoDB za svojo naslednjo aplikacijo Node.js.