Tartalomjegyzék
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, például az Amazon RDS-t relációs adatbázisokhoz, és a DocumentDB-t a dokumentumadatbázisokhoz, például a MongoDB-hez. 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
A Node.js-ben számos eszköz létezik a háttér-API-k létrehozására, é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 AWS-szolgáltatás eléréséhez a Node-alkalmazásból kell az adott szolgáltatáshoz tartozó aws-sdk ügyfélcsomag. Például a DynamoDB eléréséhez telepítenie kell a client-dynamodb csomagot az aws-sdk alatt.
A csomag telepítéséhez futtassa ezt a parancsot a projektkönyvtárban:
npm install @aws-sdk/client-dynamodb
Az aws-sdk/client-dynamodb Node.js projektben való telepítése után hozzá kell adnia a DynamoDB tábla régióját a konfigurációhoz, mielőtt kapcsolatba 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-nek. 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"
const client = new DynamoDB({ region })
Nagyon egyszerű! Az AWS gondoskodik arról, hogy ne tegye közzé biztonsági hitelesítő adatait a kódban, így miközben a fenti kód megpróbálja létrehozni az ügyfelet, először beolvassa a hozzáférési kulcsot és a titkos kulcsot a környezetéből.
Az újonnan létrehozott kliens különféle műveletek végrehajtását teszi lehetővé, 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 egy új táblát (Ügyfél) hoz létre 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();
Az AttributeDefinitions mezőben határozhatja meg a tábla legfontosabb attribútumait és típusait. Az Email attribútum itt S típusú, ami azt jelenti, hogy a mező karakterláncot vár értékeként. A három elérhető attribútumtípus az S, N és B (karakterlánc, szám és bináris).
A KeySchema-ra van szükség az elsődleges kulcsok meghatározásához, 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 a kulcstípust (HASH).
A másik elérhető KeyType érték a RANGE, amely a rendezési kulcsokhoz használatos. A rendezési kulcsok olyan esetekben hasznosak, amikor előfordulhat, hogy egy táblázatban ugyanazokkal a HASH-kulcsokkal rendelkező adatok vannak, és bizonyos extra adatok, például dátum vagy szín szerint csoportosítani szeretné őket, az extra adatot RANGE-kulccsá teheti.
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 már aktív.
Mindig vegye figyelembe az alkalmazás igényeit a ReadCapacityUnits és WriteCapacityUnits megadásakor, 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 abban, 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 ki adatokat az Ügyfél táblából.
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)
A params objektum tartalmazza a TableName-et, amely az a tábla, amelybe ír, és az Elem mezőt, amely tartalmazza a hozzáadni kívánt adatokat, azok adott típusaival együtt. 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 getAllCustomers = async () => {
const params = {
TableName: "Customer"
}const customers = await client.scan(params)
console.log(customers)
}
Míg a következő kód az e-mail érték alapján kapja meg a felhasználót:
const getCustomerByEmail = async (email) => {
const params = {
TableName: "Customer",
Key: {
Email: { "S": email }
}
}const customer = await client.getItem(params)
console.log(customer)
}getCustomerByEmail("[email protected]")
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)
}
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 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.