Izradite ovaj primjer aplikacije da otkrijete koliko baze podataka mogu biti jednostavne.

Ključni zahvati

  • DynamoDB je moćna NoSQL baza podataka koju nudi AWS i koja može obraditi velike količine različitih podataka bez ugrožavanja performansi, trajnosti ili pouzdanosti.
  • Da biste započeli s DynamoDB u Node.js, trebate instalirati client-dynamodb paket iz aws-sdk i konfigurirati svoje vjerodajnice.
  • DynamoDB vam omogućuje jednostavno stvaranje tablica, pisanje i čitanje podataka, ažuriranje zapisa i brisanje zapisa korištenjem metoda i parametara klijenta. Nudi fleksibilnost i skalabilnost za učinkovit razvoj aplikacija.

Velik dio modernog razvoja aplikacija zahtijeva kombinaciju robusnih programskih jezika i moćnih baza podataka.

Jedno od rješenja koje Amazon Web Services (AWS) nudi je DynamoDB, alat koji može revolucionirati vaše upravljanje podacima. Koristeći ga, možete brzo pripremiti bazu podataka za rukovanje velikim količinama različitih podataka.

Što je DynamoDB?

AWS nudi usluge za različite potrebe baze podataka, kao što su

instagram viewer
Amazon RDS za relacijske baze podataka, i DocumentDB za baze podataka dokumenata kao što je MongoDB. DynamoDB je NoSQL baza podataka za pohranu podataka u formatu ključ-vrijednost.

DynamoDB može obraditi velike količine podataka preko distribuirane infrastrukture bez ugrožavanja performansi, trajnosti ili pouzdanosti. Nudi fleksibilan model koji vam omogućuje jednostavno pohranjivanje podataka i postavljanje upita, bilo da su strukturirani ili nestrukturirani.

DynamoDB možete koristiti kao bazu podataka za razne vrste aplikacija. Možete mu pristupiti izravno s AWS web konzole i programski putem AWS-CLI ili iz web aplikacija pomoću AWS-SDK.

Početak rada s DynamoDB u Node.js

Ima ih mnogo alate za izgradnju pozadinskih API-ja u Node.js i slobodni ste odabrati bazu podataka za svoj API kada radite s bilo kojim od ovih alata. Node.js pruža široku podršku za vanjske usluge uključujući baze podataka kao što je AWS DynamoDB.

Sve što trebate za pristup AWS usluzi iz vaše aplikacije Node je klijent aws-sdk paket za tu uslugu. Na primjer, za pristup DynamoDB-u morate instalirati klijent-dynamodb paket pod aws-sdk.

Pokrenite ovu naredbu u svom direktoriju projekta da biste instalirali paket:

npm install @aws-sdk/client-dynamodb

Nakon instaliranja aws-sdk/klijent-dynamodb u vašem Node.js projektu morate dodati regiju vaše DynamoDB tablice u konfiguraciju prije nego što stupite u interakciju s njom. To ćete učiniti prilikom inicijalizacije DynamoDB klijenta.

Ako ste prije instalirali i koristili AWS-CLI na svom računalu, vjerojatno već imate postavljene AWS vjerodajnice u svom okruženju, a SDK će automatski dobiti vaše vrijednosti iz okruženja.

Ali ako niste, možete otići do AWS upravljanje pristupom identitetu (IAM) uslugu u svojoj konzoli i kreirajte novog korisnika. Nakon kreiranja korisnika, možete dobiti ID pristupnog ključa i tajni ključ, koji su vaše osobne vjerodajnice.

Dodajte ove vjerodajnice svom okruženju pokretanjem sljedećih naredbi terminala za svoju platformu:

Na Unixu, Linuxu ili macOS-u:

export AWS_ACCESS_KEY_ID='your access key ID'
export AWS_SECRET_ACCESS_KEY='you secret access key'

U sustavu Windows (CMD):

set AWS_ACCESS_KEY_ID='your access key ID'
set AWS_SECRET_ACCESS_KEY='you secret access key'

U sustavu Windows (PowerShell):

$env: AWS_ACCESS_KEY_ID='your access key ID'
$env: AWS_SECRET_ACCESS_KEY='you secret access key'

Zatim, vratite se u svoj Node.js projekt, stvorite novu datoteku i dajte joj naziv dynamodb.js. U ovoj datoteci instancirajte novi AWS DynamoDB klijent pomoću sljedećeg koda:

const { DynamoDB } = require('@aws-sdk/client-dynamodb')

const region = "us-east-1"// your preferred region

const client = new DynamoDB({ region })

Prilično jednostavno! AWS osigurava da ne izlažete svoje sigurnosne vjerodajnice u svom kodu, pa dok kod iznad pokušava kreirati klijenta, prvo čita pristupni ključ i tajni ključ iz vašeg okruženja.

Novostvoreni klijent omogućuje izvođenje raznih operacija, poput stvaranja tablica te čitanja i pisanja podataka.

DynamoDB je bez sheme kao i druge NoSQL baze podataka, tako da uvijek možete dodati nove atribute (polja) u tablicu u bilo kojem trenutku. Zbog toga trebate dodati samo atribute koji će služiti kao primarni ključevi DynamoDB tablici kada je kreirate.

Pogledajte sljedeći kod koji stvara novu tablicu (Kupac) u DynamoDB-u:

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 atributa polje je mjesto gdje definirate ključne atribute tablice i njihove vrste. The E-mail atribut ovdje ima tip S što znači da polje očekuje a Niz kao svoju vrijednost. Tri dostupna tipa atributa su S, N, i B (Niz, broj i binarni).

Trebate KeySchema za definiranje primarnih ključeva koji pomažu u brzom pronalaženju i organiziranju stavki. DynamoDB očekuje da atributi koje dodate prilikom izrade tablice budu ključni atributi, tako da je e-pošta ovdje primarni ključ. Morate ga dodati u KeySchema i navesti ga KeyType (HASH).

Druga dostupna vrijednost KeyType je RANGE koji se koristi za ključeve sortiranja. Ključevi za sortiranje korisni su u slučajevima kada možda imate podatke s istim HASH ključevima u tablici, a želite da biste ih grupirali prema nekim dodatnim podacima kao što su datum ili boja, možete učiniti dodatne podatke RASPONOM ključ.

Treći važan parametar u gornjem kodu je ProvisionedThroughput. Ovdje definirate broj čitanja i pisanja koje želite da DynamoDb dopusti na tablici po sekundi.

Kada pokrenete gornji kod, trebali biste dobiti izlaz koji izgleda ovako:

Ako provjerite svoju nadzornu ploču DynamoDB tablica na web konzoli, vidjet ćete da je tablica još uvijek u pripremi ili ima status aktivan već.

Uvijek uzmite u obzir potrebe svoje aplikacije kada specificirate ReadCapacityUnits i Zapiši jedinice kapaciteta jer neodgovarajuća vrijednost može dovesti do problema s izvedbom ili visokih troškova naplate na vašem računu.

Nakon što ste sigurni da je tablica već aktivna, možete izvršiti CRUD operacije na njoj.

Slijedi nekoliko primjera koda koji vam pokazuju kako pisati i čitati podatke iz Kupac stol.

  1. Dodajte podatke u tablicu. Za upisivanje podataka u tablicu potrebna vam je klijentova putItem metoda. Kôd u nastavku dodaje novog kupca u Kupac tablica u DynamoDB-u.
    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)

    The parametri objekt sadrži TableName koji je stol na koji pišete i Artikal polje koje sadrži podatke koje dodajete s njihovim određenim vrstama. Primijetite nova polja koja u početku nisu bila u tablici, ovako DynamoDB radi fleksibilno. Možete vidjeti podatke u svojoj bazi podataka na svojoj konzoli ovako:
  2. Pročitajte podatke iz tablice. DynamoDB vam omogućuje čitanje podataka na razne načine. SDK-ovi skenirati funkcija čita cijelu tablicu, dok getitem čita samo određene podatke. Na primjer, kod u nastavku dobiva sve kupce:
    const getAllCustomers = async () => {
    const params = {
    TableName: "Customer"
    }

    const customers = await client.scan(params)
    console.log(customers)
    }

    Dok sljedeći kod dobiva korisnika prema vrijednosti e-pošte:
    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]")

  3. Ažurirajte podatke u tablici. Za ažuriranje postojećih podataka u tablici upotrijebite SDK updateItem funkcija. Sljedeći kod pokazuje kako ažurirati određeni zapis:
     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)
     }

    Također možete izabrati da svoju funkciju učinite dinamičnom izgradnjom izraza ažuriranja iz vaših podataka ažuriranja. Fleksibilnost DynamoDB-a omogućuje vam rukovanje svakom operacijom prema vašim potrebama.
  4. Brisanje podataka iz tablice. Da biste izbrisali zapis iz DynamoDB-a, trebate deleteItem funkciju i ključ određenog 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]")

Izrada učinkovitih aplikacija s DynamoDB-om

Amazon Web Services nastavlja napredovati. Pruža pristupačnu platformu koju možete koristiti za isporuku učinkovitih, sigurnih digitalnih rješenja. DynamoDB je savršen izbor ako tražite bazu podataka za pokretanje bez brige o infrastrukturi ili sigurnosti.

Sada ste opremljeni svime što vam je potrebno za početak rada s DynamoDB u Node.js i možete s pouzdanjem odabrati DynamoDB za svoju sljedeću Node.js aplikaciju.