Zostavte si túto vzorovú aplikáciu a zistite, aké jednoduché môžu byť databázy.
Kľúčové informácie
- DynamoDB je výkonná NoSQL databáza, ktorú ponúka AWS a ktorá dokáže spracovať veľké množstvo rôznych údajov bez kompromisov vo výkone, životnosti alebo spoľahlivosti.
- Ak chcete začať s DynamoDB v Node.js, musíte si nainštalovať balík client-dynamodb z aws-sdk a nakonfigurovať svoje poverenia.
- DynamoDB vám umožňuje jednoducho vytvárať tabuľky, zapisovať a čítať údaje, aktualizovať záznamy a odstraňovať záznamy pomocou metód a parametrov klienta. Ponúka flexibilitu a škálovateľnosť pre efektívny vývoj aplikácií.
Veľká časť moderného vývoja aplikácií potrebuje kombináciu robustných programovacích jazykov a výkonných databáz.
Jedným z riešení, ktoré Amazon Web Services (AWS) ponúka, je DynamoDB, nástroj, ktorý môže spôsobiť revolúciu vo vašej správe údajov. Pomocou neho môžete rýchlo vytvoriť databázu na spracovanie veľkého množstva rôznych údajov.
Čo je DynamoDB?
AWS ponúka služby pre rôzne databázové potreby, napr
Amazon RDS pre relačné databázya DocumentDB pre databázy dokumentov, ako je MongoDB. DynamoDB je databáza NoSQL na ukladanie údajov vo formáte kľúč-hodnota.DynamoDB dokáže spracovať veľké množstvo údajov v rámci distribuovanej infraštruktúry bez kompromisov vo výkone, životnosti alebo spoľahlivosti. Ponúka flexibilný model, ktorý vám umožňuje jednoducho ukladať a vyhľadávať údaje, či už sú štruktúrované alebo neštruktúrované.
DynamoDB môžete použiť ako databázu pre rôzne typy aplikácií. Môžete k nemu pristupovať priamo z webovej konzoly AWS a programovo cez AWS-CLI, alebo z webových aplikácií pomocou AWS-SDK.
Začíname s DynamoDB v Node.js
Je ich veľa nástroje na vytváranie backendových rozhraní API v Node.js a pri práci s ktorýmkoľvek z týchto nástrojov si môžete vybrať databázu pre svoje API. Node.js poskytuje širokú podporu pre externé služby vrátane databáz ako AWS DynamoDB.
Všetko, čo potrebujete na prístup k službe AWS z aplikácie Node, je klient aws-sdk balík pre danú službu. Napríklad, ak chcete získať prístup k DynamoDB, musíte nainštalovať klient-dynamodb balík pod aws-sdk.
Spustite tento príkaz v adresári projektu a nainštalujte balík:
npm install @aws-sdk/client-dynamodb
Po inštalácii aws-sdk/client-dynamodb vo svojom projekte Node.js musíte pridať oblasť vašej tabuľky DynamoDB do konfigurácie predtým, ako s ňou budete pracovať. Urobíte to pri inicializácii klienta DynamoDB.
Ak ste už na svojom počítači nainštalovali a používali AWS-CLI, pravdepodobne už máte vo svojom prostredí nastavené poverenia AWS a SDK automaticky získa vaše hodnoty z prostredia.
Ale ak nie, môžete ísť do AWS Identity Access Management (IAM) službu vo vašej konzole a vytvorte nového používateľa. Po vytvorení používateľa môžete získať ID prístupového kľúča a tajný kľúč, čo sú vaše osobné prihlasovacie údaje.
Pridajte tieto poverenia do svojho prostredia spustením nasledujúcich príkazov terminálu pre vašu platformu:
V systéme Unix, Linux alebo macOS:
export AWS_ACCESS_KEY_ID='your access key ID'
export AWS_SECRET_ACCESS_KEY='you secret access key'
V systéme Windows (CMD):
set AWS_ACCESS_KEY_ID='your access key ID'
set AWS_SECRET_ACCESS_KEY='you secret access key'
V systéme Windows (PowerShell):
$env: AWS_ACCESS_KEY_ID='your access key ID'
$env: AWS_SECRET_ACCESS_KEY='you secret access key'
Potom v projekte Node.js vytvorte nový súbor a pomenujte ho dynamodb.js. V tomto súbore vytvorte inštanciu nového klienta AWS DynamoDB pomocou nasledujúceho kódu:
const { DynamoDB } = require('@aws-sdk/client-dynamodb')
const region = "us-east-1"// your preferred region
const client = new DynamoDB({ region })
Celkom jednoduché! AWS zaisťuje, že vo svojom kóde neodhaľujete žiadne z vašich bezpečnostných poverení, takže kým kód vyššie sa pokúsi vytvoriť klienta, najprv načíta prístupový kľúč a tajný kľúč z vášho prostredia.
Novovytvorený zákazník umožňuje vykonávať rôzne operácie, ako je vytváranie tabuliek a čítanie a zápis údajov.
DynamoDB je bez schém rovnako ako iné databázy NoSQL, takže do tabuľky môžete kedykoľvek pridať nové atribúty (polia). To je dôvod, prečo pri vytváraní tabuľky DynamoDB stačí pridať atribúty, ktoré budú slúžiť ako primárne kľúče.
Pozrite si nasledujúci kód, ktorý vytvorí novú tabuľku (Zákazník) 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 Definície atribútov pole je miesto, kde definujete kľúčové atribúty tabuľky a ich typy. The Email atribút tu má typ S čo znamená, že pole očakáva a Reťazec ako jeho hodnotu. Dostupné sú tri typy atribútov S, N, a B (Reťazec, Číslo a Binárne).
Potrebujete KeySchema na definovanie primárnych kľúčov, ktoré pomáhajú rýchlo nájsť a usporiadať položky. DynamoDB očakáva, že atribúty, ktoré pridáte pri vytváraní tabuľky, budú kľúčovými atribútmi, takže e-mail je tu primárnym kľúčom. Musíte ho pridať do KeySchema a špecifikovať jeho KeyType (HASH).
Ďalšia dostupná hodnota KeyType je ROZSAH ktorý sa používa pre kľúče triedenia. Kľúče triedenia sú užitočné v prípadoch, keď môžete mať v tabuľke údaje s rovnakými kľúčmi HASH a chcete ak ich chcete zoskupiť podľa niektorých dodatočných údajov, ako je dátum alebo farba, môžete z dodatočných údajov vytvoriť ROZSAH kľúč.
Tretím dôležitým parametrom vo vyššie uvedenom kóde je ProvisionedThroughput. Tu definujete počet čítaní a zápisov, ktoré má DynamoDb povoliť na stole za sekundu.
Keď spustíte vyššie uvedený kód, mali by ste dostať výstup, ktorý vyzerá takto:
Ak skontrolujete dashboard tabuliek DynamoDB vo webovej konzole, uvidíte, že tabuľka sa stále poskytuje alebo má stav aktívny už
Pri špecifikácii vždy zvážte potreby vašej aplikácie ReadCapacityUnits a WriteCapacityUnits pretože nevhodná hodnota môže viesť k problémom s výkonom alebo vysokým fakturačným nákladom na vašom účte.
Keď ste si istí, že tabuľka je už aktívna, môžete na nej vykonávať operácie CRUD.
Nasleduje niekoľko príkladov kódu, ktoré vám ukážu, ako zapisovať a čítať údaje z Zákazník tabuľky.
-
Pridajte údaje do tabuľky. Ak chcete zapisovať údaje do tabuľky, potrebujete klienta putItem metóda. Nižšie uvedený kód pridá nového zákazníka do Zákazník tabuľky v DynamoDB.
The parametre objekt obsahuje TableName čo je tabuľka, do ktorej píšete, a Položka pole, ktoré obsahuje údaje, ktoré pridávate, s ich konkrétnymi typmi. Všimnite si nové polia, ktoré pôvodne neboli v tabuľke, takto funguje DynamoDB flexibilne. Údaje vo svojej databáze môžete zobraziť v konzole takto: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)
-
Prečítajte si údaje z tabuľky. DynamoDB vám umožňuje čítať dáta rôznymi spôsobmi. SDK skenovať funkcia prečíta celú tabuľku, zatiaľ čo getItem číta iba špecifické údaje. Napríklad kód uvedený nižšie získa všetkých zákazníkov:
Zatiaľ čo nasledujúci kód dostane používateľa podľa e-mailovej hodnoty: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]")
-
Aktualizujte údaje v tabuľke. Ak chcete aktualizovať existujúce údaje v tabuľke, použite súpravy SDK updateItem funkciu. Nasledujúci kód ukazuje, ako aktualizovať konkrétny záznam:
Môžete si tiež zvoliť, aby bola vaša funkcia dynamická vytvorením aktualizačných výrazov z vašich aktualizačných údajov. Flexibilita DynamoDB vám umožňuje zvládnuť každú operáciu podľa vašich potrieb.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)
} -
Odstráňte údaje z tabuľky. Ak chcete odstrániť záznam z DynamoDB, potrebujete deleteItem funkciu a kľúč konkrétneho záznamu. Postup implementácie:
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]")
Vytváranie efektívnych aplikácií s DynamoDB
Amazon Web Services naďalej prosperuje. Poskytuje dostupnú platformu, ktorú môžete použiť na poskytovanie efektívnych a bezpečných digitálnych riešení. DynamoDB je ideálnou voľbou, ak hľadáte databázu, ktorá by sa dala spustiť bez obáv o infraštruktúru alebo bezpečnosť.
Teraz ste vybavení všetkým, čo potrebujete, aby ste mohli začať s DynamoDB v Node.js, a môžete si s istotou vybrať DynamoDB pre svoju ďalšiu aplikáciu Node.js.