Creați acest exemplu de aplicație pentru a descoperi cât de simple pot fi bazele de date.

Recomandări cheie

  • DynamoDB este o bază de date NoSQL puternică oferită de AWS, care poate gestiona cantități mari de date diverse fără a compromite performanța, durabilitatea sau fiabilitatea.
  • Pentru a începe cu DynamoDB în Node.js, trebuie să instalați pachetul client-dynamodb din aws-sdk și să vă configurați acreditările.
  • DynamoDB vă permite să creați cu ușurință tabele, să scrieți și să citiți date, să actualizați înregistrări și să ștergeți înregistrări folosind metodele și parametrii clientului. Oferă flexibilitate și scalabilitate pentru dezvoltarea eficientă a aplicațiilor.

O mare parte a dezvoltării de aplicații moderne necesită o combinație de limbaje de programare robuste și baze de date puternice.

Una dintre soluțiile pe care le oferă Amazon Web Services (AWS) este DynamoDB, un instrument care vă poate revoluționa gestionarea datelor. Folosind-o, puteți furniza rapid o bază de date pentru a gestiona cantități mari de date diverse.

instagram viewer

Ce este DynamoDB?

AWS oferă servicii pentru diferite nevoi de baze de date, cum ar fi Amazon RDS pentru baze de date relaționale, și DocumentDB pentru baze de date de documente, cum ar fi MongoDB. DynamoDB este o bază de date NoSQL pentru stocarea datelor într-un format cheie-valoare.

DynamoDB poate gestiona cantități mari de date în infrastructura distribuită fără a compromite performanța, durabilitatea sau fiabilitatea. Oferă un model flexibil, permițându-vă să stocați și să interogați cu ușurință date, fie că sunt structurate sau nestructurate.

Puteți utiliza DynamoDB ca bază de date pentru diferite tipuri de aplicații. Îl puteți accesa direct din consola web AWS și în mod programatic prin intermediul AWS-CLI sau din aplicații web folosind AWS-SDK.

Noțiuni introductive cu DynamoDB în Node.js

Există multe instrumente pentru construirea de API-uri backend în Node.js și sunteți liber să alegeți baza de date pentru API-ul dvs. atunci când lucrați cu oricare dintre aceste instrumente. Node.js oferă suport larg pentru servicii externe, inclusiv baze de date precum AWS DynamoDB.

Tot ce aveți nevoie pentru a accesa un serviciu AWS din aplicația dvs. Node este clientul aws-sdk pachet pentru acel serviciu. De exemplu, pentru a accesa DynamoDB, trebuie să instalați client-dynamodb pachet sub aws-sdk.

Rulați această comandă în directorul de proiect pentru a instala pachetul:

npm install @aws-sdk/client-dynamodb

După instalare aws-sdk/client-dynamodb în proiectul dvs. Node.js, trebuie să adăugați regiunea tabelului DynamoDB la configurație înainte de a interacționa cu acesta. Veți face acest lucru când inițializați clientul DynamoDB.

Dacă ați instalat și utilizat AWS-CLI pe computerul dvs. înainte, probabil că aveți deja acreditările AWS setate în mediul dvs., iar SDK-ul vă va prelua automat valorile din mediu.

Dar dacă nu ați făcut-o, puteți merge la AWS Identity Access Management (IAM) serviciu în consola dvs. și creați un utilizator nou. După crearea utilizatorului, puteți obține un ID de cheie de acces și o cheie secretă, care sunt acreditările dvs. personale.

Adăugați aceste acreditări în mediul dvs. rulând următoarele comenzi de terminal pentru platforma dvs.:

Pe Unix, Linux sau macOS:

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

Pe Windows (CMD):

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

Pe Windows (PowerShell):

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

Apoi, înapoi în proiectul dvs. Node.js, creați un fișier nou și denumiți-l dynamodb.js. În acest fișier, instanțiați un nou client AWS DynamoDB utilizând următorul cod:

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

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

const client = new DynamoDB({ region })

Destul de simplu! AWS se asigură că nu expuneți niciuna dintre acreditările dvs. de securitate în codul dvs., deci în timp ce codul de mai sus încearcă să creeze clientul, mai întâi citește cheia de acces și cheia secretă din mediul dumneavoastră.

Cel nou creat client vă permite să efectuați diverse operațiuni, cum ar fi crearea de tabele și citirea și scrierea datelor.

DynamoDB este fără schemă, la fel ca alte baze de date NoSQL, astfel încât puteți adăuga oricând noi atribute (câmpuri) la un tabel în orice moment. Acesta este motivul pentru care trebuie doar să adăugați atribute care vor servi drept chei primare la un tabel DynamoDB atunci când îl creați.

Consultați următorul cod care creează un tabel nou (Client) în 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 Definiții de atribute câmpul este locul în care definiți atributele cheie ale tabelului și tipurile acestora. The E-mail atributul aici are tip S ceea ce înseamnă că câmpul se așteaptă la a Şir ca valoare a acestuia. Cele trei tipuri de atribute disponibile sunt S, N, și B (Șir, număr și binar).

Ai nevoie de KeySchema pentru a defini cheile primare care ajută la găsirea și organizarea rapidă a elementelor. DynamoDB se așteaptă ca atributele pe care le adăugați la crearea tabelului să fie atribute cheie, așa că e-mailul este cheia principală aici. Trebuie să-l adăugați la KeySchema și să-l specificați KeyType (HASH).

Cealaltă valoare disponibilă KeyType este GAMĂ care este folosit pentru cheile de sortare. Cheile de sortare sunt utile în cazurile în care este posibil să aveți date cu aceleași chei HASH într-un tabel și doriți pentru a le grupa în funcție de unele date suplimentare, cum ar fi data sau culoarea, puteți face din datele suplimentare un RANGE cheie.

Al treilea parametru important din codul de mai sus este Debit furnizat. Aici definiți numărul de citiri și scrieri pe care doriți să le permită DynamoDb pe tabel pe secundă.

Când rulați codul de mai sus, ar trebui să obțineți rezultate care arată astfel:

Dacă verificați tabloul de bord pentru tabelele DynamoDB în consola web, veți vedea tabelul fie în curs de furnizare, fie cu o stare de activ deja.

Luați în considerare întotdeauna nevoile aplicației dvs. atunci când specificați ReadCapacityUnits și WriteCapacityUnits deoarece o valoare neadecvată poate duce la probleme de performanță sau la costuri mari de facturare pentru contul dvs.

Odată ce sunteți sigur că tabelul este deja activ, puteți efectua operațiuni CRUD pe acesta.

Următoarele sunt câteva exemple de cod care vă arată cum să scrieți și să citiți date din Client masa.

  1. Adăugați date în tabel. Pentru a scrie date într-un tabel, aveți nevoie de cele ale clientului putItem metodă. Codul de mai jos adaugă un nou client la Client tabel în DynamoDB.
    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 parametrii obiectul conține TableName care este masa la care scrieți și Articol câmp care conține datele pe care le adăugați cu tipurile lor specifice. Observați noile câmpuri care nu erau în tabel inițial, așa funcționează DynamoDB în mod flexibil. Puteți vizualiza datele din baza de date în consola dvs. astfel:
  2. Citiți datele din tabel. DynamoDB vă permite să citiți datele în diferite moduri. SDK-urile scanează funcția citește întregul tabel, în timp ce getItem citește doar date specifice. De exemplu, codul de mai jos primește toți clienții:
    const getAllCustomers = async () => {
    const params = {
    TableName: "Customer"
    }

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

    În timp ce următorul cod primește utilizatorul după valoarea de e-mail:
    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. Actualizați datele din tabel. Pentru a actualiza datele existente într-un tabel, utilizați SDK-urile updateItem funcţie. Următorul cod demonstrează cum se actualizează o anumită înregistrare:
     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)
     }

    De asemenea, puteți alege să vă faceți funcția dinamică creând expresii de actualizare din datele dvs. de actualizare. Flexibilitatea DynamoDB vă permite să gestionați fiecare operațiune în funcție de nevoile dvs.
  4. Ștergeți datele din tabel. Pentru a șterge o înregistrare din DynamoDB, aveți nevoie de Sterge articolul funcția și cheia înregistrării particulare. Iată cum să o implementați:
    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]")

Construirea de aplicații eficiente cu DynamoDB

Amazon Web Services continuă să prospere. Oferă o platformă accesibilă pe care o poți folosi pentru a oferi soluții digitale eficiente și sigure. DynamoDB este alegerea perfectă dacă sunteți în căutarea unei baze de date care să ruleze fără să vă faceți griji cu privire la infrastructură sau securitate.

Acum sunteți echipat cu tot ce aveți nevoie pentru a începe cu DynamoDB în Node.js și puteți alege cu încredere DynamoDB pentru următoarea aplicație Node.js.