Készítse el ezt a példaalkalmazást, hogy megtudja, milyen egyszerűek is lehetnek az adatbázisok.
Kulcs elvitelek
- A DynamoDB az AWS által kínált hatékony NoSQL-adatbázis, amely nagy mennyiségű, változatos adatot képes kezelni a teljesítmény, a tartósság vagy a megbízhatóság veszélyeztetése nélkül.
- A DynamoDB Node.js-ben való használatának megkezdéséhez telepítenie kell a client-dynamodb csomagot az aws-sdk fájlból, és konfigurálnia kell a hitelesítő adatait.
- A DynamoDB lehetővé teszi a táblák egyszerű létrehozását, az adatok írását és olvasását, a rekordok frissítését és a rekordok törlését az ügyfél metódusai és paraméterei segítségével. Rugalmasságot és méretezhetőséget kínál a hatékony alkalmazásfejlesztéshez.
A modern alkalmazásfejlesztés nagy részének robusztus programozási nyelvek és hatékony adatbázisok keverékére van szüksége.
Az Amazon Web Services (AWS) egyik megoldása a DynamoDB, egy olyan eszköz, amely forradalmasíthatja az adatkezelést. Segítségével gyorsan létrehozhat egy adatbázist nagy mennyiségű, változatos adat kezelésére.
Mi az a DynamoDB?
Az AWS különféle adatbázis-szükségletekhez kínál szolgáltatásokat, mint pl Amazon RDS relációs adatbázisokhoz, és DocumentDB for dokumentumadatbázisok, például a MongoDB. A DynamoDB egy NoSQL adatbázis az adatok kulcsérték formátumban történő tárolására.
A DynamoDB nagy mennyiségű adatot képes kezelni az elosztott infrastruktúrán keresztül a teljesítmény, a tartósság vagy a megbízhatóság veszélyeztetése nélkül. Rugalmas modellt kínál, amely lehetővé teszi az adatok egyszerű tárolását és lekérdezését, legyenek azok strukturált vagy strukturálatlanok.
A DynamoDB adatbázisként használható különféle típusú alkalmazásokhoz. Hozzáférhet közvetlenül az AWS webkonzolról és programozottan az AWS-CLI-n keresztül, vagy az AWS-SDK használatával webalkalmazásokból.
A DynamoDB használatának megkezdése a Node.js-ben
Sokan vannak eszközök a háttér API-k Node.js-ben való felépítéséhez és szabadon választhatja ki az API adatbázisát, ha ezen eszközök bármelyikével dolgozik. A Node.js széles körű támogatást nyújt a külső szolgáltatásokhoz, beleértve az olyan adatbázisokat, mint az AWS DynamoDB.
Mindössze az ügyfélre van szüksége ahhoz, hogy elérje az AWS szolgáltatást a Node alkalmazásból aws-sdk csomag az adott szolgáltatáshoz. Például a DynamoDB eléréséhez telepítenie kell a kliens-dynamodb alatti csomag aws-sdk.
A csomag telepítéséhez futtassa ezt a parancsot a projektkönyvtárban:
npm install @aws-sdk/client-dynamodb
Telepítés után aws-sdk/client-dynamodb a Node.js projektben hozzá kell adnia a DynamoDB tábla régióját a konfigurációhoz, mielőtt interakcióba lépne vele. Ezt a DynamoDB kliens inicializálásakor kell megtennie.
Ha korábban telepítette és használta az AWS-CLI-t a számítógépén, akkor valószínűleg már beállította az AWS-hitelesítési adatokat a környezetben, és az SDK automatikusan megkapja az értékeket a környezetből.
De ha még nem, akkor irány a AWS Identity Access Management (IAM) szolgáltatást a konzolon, és hozzon létre egy új felhasználót. A felhasználó létrehozása után hozzáférési kulcsazonosítót és titkos kulcsot kaphat, amelyek az Ön személyes hitelesítő adatai.
Adja hozzá ezeket a hitelesítő adatokat a környezetéhez a következő terminálparancsok futtatásával a platformon:
Unix, Linux vagy macOS rendszeren:
export AWS_ACCESS_KEY_ID='your access key ID'
export AWS_SECRET_ACCESS_KEY='you secret access key'
Windowson (CMD):
set AWS_ACCESS_KEY_ID='your access key ID'
set AWS_SECRET_ACCESS_KEY='you secret access key'
Windowson (PowerShell):
$env: AWS_ACCESS_KEY_ID='your access key ID'
$env: AWS_SECRET_ACCESS_KEY='you secret access key'
Ezután a Node.js projektben hozzon létre egy új fájlt, és nevezze el dynamodb.js. Ebben a fájlban hozzon létre egy új AWS DynamoDB-ügyfelet a következő kóddal:
const { DynamoDB } = require('@aws-sdk/client-dynamodb')
const region = "us-east-1"// your preferred region
const client = new DynamoDB({ region })
Elég egyszerű! Az AWS gondoskodik arról, hogy ne tegye közzé biztonsági hitelesítő adatait a kódban, így míg a kód A fentiek során megpróbálja létrehozni a klienst, először beolvassa a hozzáférési kulcsot és a titkos kulcsot a környezetéből.
Az újonnan létrehozott ügyfél lehetővé teszi különféle műveletek végrehajtását, például táblázatok létrehozását, valamint adatok olvasását és írását.
A DynamoDB a többi NoSQL-adatbázishoz hasonlóan sémamentes, így bármikor hozzáadhat új attribútumokat (mezőket) egy táblához. Ezért csak olyan attribútumokat kell hozzáadnia, amelyek elsődleges kulcsként szolgálnak a DynamoDB táblához annak létrehozásakor.
Nézze meg a következő kódot, amely új táblázatot hoz létre (Vevő) a DynamoDB-ben:
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();
A Attribútumdefiníciók mezőben határozhatja meg a tábla legfontosabb attribútumait és típusait. A Email Az attribútumnak típusa van S ami azt jelenti, hogy a mezőny elvárja a Húr mint annak értéke. A három elérhető attribútumtípus a következő S, N, és B (karakterlánc, szám és bináris).
Szükséged van a KeySchema elsődleges kulcsok meghatározása, amelyek segítenek az elemek gyors megtalálásában és rendszerezésében. A DynamoDB elvárja, hogy a tábla létrehozásakor hozzáadott attribútumok kulcsattribútumok legyenek, ezért az e-mail itt az elsődleges kulcs. Hozzá kell adnia a KeySchemához, és meg kell adnia KeyType (HASH).
A másik elérhető KeyType érték a HATÓTÁVOLSÁG amelyet a rendezési kulcsokhoz használnak. A rendezési kulcsok olyan esetekben hasznosak, amikor előfordulhat, hogy egy táblázatban ugyanazokkal a HASH-kulcsokkal rendelkező adatok vannak, és szeretné ha néhány extra adat, például dátum vagy szín szerint csoportosítja őket, az extra adatokat TARTOMÁNY-ba állíthatja kulcs.
A harmadik fontos paraméter a fenti kódban a ProvisionedThroughput. Itt adhatja meg, hogy a DynamoDb másodpercenként hány olvasást és írást engedélyezzen az asztalon.
A fenti kód futtatásakor a következő kimenetet kell kapnia:
Ha ellenőrzi a DynamoDB táblák irányítópultját a webkonzolon, akkor azt fogja látni, hogy a tábla vagy még ki van építve, vagy állapota aktív már.
Mindig vegye figyelembe az alkalmazási igényeit, amikor meghatározza a ReadCapacityUnits és WriteCapacityUnits mert a nem megfelelő érték teljesítményproblémákat vagy magas számlázási költségeket okozhat a fiókjában.
Ha biztos benne, hogy a tábla már aktív, CRUD műveleteket hajthat végre rajta.
Az alábbiakban néhány kódpélda látható, amelyek bemutatják, hogyan írjon és olvasson adatokat a Vevő asztal.
-
Adjon hozzá adatokat a táblázathoz. Az adatok táblába írásához szükség van az ügyfélre putItem módszer. Az alábbi kód új ügyfelet ad hozzá a Vevő táblázat a DynamoDB-ben.
A params az objektum tartalmazza a Táblanév melyik az a táblázat, amelyre írsz, és a Tétel mezőbe, amely tartalmazza a hozzáadni kívánt adatokat, azok adott típusával. Figyelje meg azokat az új mezőket, amelyek kezdetben nem voltak a táblázatban, így működik a DynamoDB rugalmasan. Az adatbázisában lévő adatokat a következőképpen tekintheti meg a konzolon: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)
-
Olvassa el az adatokat a táblázatból. A DynamoDB különféle módokon teszi lehetővé az adatok olvasását. Az SDK-k letapogatás függvény beolvassa a teljes táblázatot, míg getItem csak meghatározott adatokat olvas. Például az alábbi kód minden ügyfélhez eljut:
Míg a következő kód az e-mail érték alapján kapja meg a felhasználót: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]")
-
Frissítse az adatokat a táblázatban. A táblázatban lévő meglévő adatok frissítéséhez használja az SDK-kat updateItem funkció. A következő kód bemutatja, hogyan frissíthet egy adott rekordot:
Dinamikussá teheti a függvényt, ha frissítési kifejezéseket épít fel a frissítési adatokból. A DynamoDB rugalmassága lehetővé teszi, hogy minden műveletet az Ön igényei szerint kezeljen.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)
} -
Törölje az adatokat a táblázatból. Egy rekord DynamoDB-ből való törléséhez szüksége van a elem törlése funkciót és az adott rekord kulcsát. A megvalósítás módja:
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]")
Hatékony alkalmazások létrehozása a DynamoDB segítségével
Az Amazon Web Services továbbra is virágzik. Hozzáférhető platformot biztosít, amellyel hatékony, biztonságos digitális megoldásokat kínálhat. A DynamoDB a tökéletes választás, ha olyan adatbázist keres, amely anélkül futhat, hogy aggódnia kellene az infrastruktúra vagy a biztonság miatt.
Most már mindennel fel van szerelve, amire szüksége van a DynamoDB használatának megkezdéséhez a Node.js-ben, és magabiztosan választhatja a DynamoDB-t a következő Node.js-alkalmazásához.