Ehitage see näidisrakendus, et avastada, kui lihtsad võivad andmebaasid olla.

Võtmed kaasavõtmiseks

  • DynamoDB on võimas AWS-i pakutav NoSQL-andmebaas, mis suudab käsitleda suuri koguseid erinevaid andmeid, ilma et see kahjustaks jõudlust, vastupidavust või töökindlust.
  • DynamoDB-ga Node.js-s alustamiseks peate installima aws-sdk-st paketi client-dynamodb ja konfigureerima oma mandaadid.
  • DynamoDB võimaldab hõlpsasti luua tabeleid, kirjutada ja lugeda andmeid, värskendada kirjeid ja kustutada kirjeid kasutades kliendi meetodeid ja parameetreid. See pakub paindlikkust ja mastaapsust tõhusaks rakenduste arendamiseks.

Suur osa tänapäevasest rakenduste arendamisest vajab tugevate programmeerimiskeelte ja võimsate andmebaaside kombinatsiooni.

Üks lahendusi, mida Amazon Web Services (AWS) pakub, on DynamoDB, tööriist, mis võib teie andmehalduse revolutsiooniliselt muuta. Seda kasutades saate kiiresti luua andmebaasi suure hulga erinevate andmete käsitlemiseks.

Mis on DynamoDB?

AWS pakub teenuseid erinevate andmebaasivajaduste jaoks, näiteks

Amazon RDS relatsiooniliste andmebaaside jaoksja DocumentDB jaoks dokumentide andmebaasid, näiteks MongoDB. DynamoDB on NoSQL-i andmebaas andmete salvestamiseks võtmeväärtuse vormingus.

DynamoDB suudab hajutatud infrastruktuuris käsitleda suuri andmemahtusid, ilma et see kahjustaks jõudlust, vastupidavust või töökindlust. See pakub paindlikku mudelit, mis võimaldab teil hõlpsasti salvestada ja päringuid teha, olenemata sellest, kas need on struktureeritud või struktureerimata.

DynamoDB-d saate kasutada erinevat tüüpi rakenduste andmebaasina. Sellele pääsete juurde otse AWS-i veebikonsoolist ja programmiliselt AWS-CLI kaudu või veebirakendustest, kasutades AWS-SDK-d.

DynamoDB-ga alustamine rakenduses Node.js

Seal on palju tööriistad taustaprogrammi API-de loomiseks Node.js-is ja nende tööriistadega töötades võite vabalt valida oma API jaoks andmebaasi. Node.js pakub laialdast tuge välistele teenustele, sealhulgas sellistele andmebaasidele nagu AWS DynamoDB.

Kõik, mida vajate oma Node'i rakendusest AWS-teenusele juurdepääsuks, on klient aws-sdk selle teenuse pakett. Näiteks DynamoDB-le juurdepääsuks peate installima klient-dynamodb pakend all aws-sdk.

Käivitage see käsk oma projekti kataloogis paketi installimiseks:

npm install @aws-sdk/client-dynamodb

Pärast paigaldamist aws-sdk/client-dynamodb Node.js projektis peate enne sellega suhtlemist lisama konfiguratsioonile oma DynamoDB tabeli piirkonna. Teete seda DynamoDB kliendi lähtestamisel.

Kui olete AWS-CLI-d arvutisse varem installinud ja kasutanud, on teie keskkonnas tõenäoliselt juba AWS-mandaadid seatud ja SDK saab teie väärtused keskkonnast automaatselt.

Aga kui te pole seda teinud, võite minna aadressile AWS-i identiteedi juurdepääsu haldus (IAM) teenust oma konsoolis ja looge uus kasutaja. Pärast kasutaja loomist saate juurdepääsuvõtme ID ja salajase võtme, mis on teie isiklikud mandaadid.

Lisage need mandaadid oma keskkonda, käivitades oma platvormi jaoks järgmised terminalikäsud:

Unixis, Linuxis või macOS-is:

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

Windowsis (CMD):

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

Windowsis (PowerShell):

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

Seejärel looge oma Node.js projektis uus fail ja pange sellele nimi dynamodb.js. Selles failis looge uus AWS DynamoDB klient, kasutades järgmist koodi:

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

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

const client = new DynamoDB({ region })

Päris lihtne! AWS tagab, et te ei avalda oma koodis ühtegi oma turvamandaati, nii et kui kood ülaltoodud proovib klienti luua, loeb see kõigepealt teie keskkonnast juurdepääsuvõtme ja salajase võtme.

Vastloodud klient võimaldab teil teha erinevaid toiminguid, näiteks luua tabeleid ning lugeda ja kirjutada andmeid.

DynamoDB on skeemivaba, nagu ka teised NoSQL-i andmebaasid, nii et saate alati igal hetkel tabelisse uusi atribuute (välju) lisada. Seetõttu peate DynamoDB tabeli loomisel lisama ainult atribuudid, mis toimivad esmaste võtmetena.

Vaadake järgmist koodi, mis loob uue tabeli (Klient) DynamoDB-s:

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 AtribuutDefinitsioonid väljal saate määrata tabeli võtmeatribuudid ja nende tüübid. The Meil atribuudil on tüüp S mis tähendab, et väli ootab a String selle väärtusena. Kolm saadaolevat atribuuditüüpi on S, Nja B (String, arv ja kahend).

Teil on vaja Võtmeskeem primaarvõtmete määratlemiseks, mis aitavad üksusi kiiresti leida ja korraldada. DynamoDB eeldab, et tabeli loomisel lisatavad atribuudid on võtmeatribuudid, seega on siin primaarvõti e-post. Peate selle võtmeskeemile lisama ja selle määrama Võtmetüüp (HASH).

Teine saadaolev KeyType'i väärtus on VAHEND mida kasutatakse sortimisvõtmete jaoks. Sorteerimisklahvid on kasulikud juhtudel, kui teil võib olla tabelis samade HASH-võtmetega andmeid ja soovite Nende rühmitamiseks lisaandmete (nt kuupäev või värv) järgi saate teha lisaandmetest VALIKKU võti.

Kolmas oluline parameeter ülaltoodud koodis on Provisioned Throughput. Siin saate määrata lugemis- ja kirjutamiskordade arvu, mida DynamoDb tabelis lubab sekundis.

Kui käivitate ülaltoodud koodi, peaksite saama väljundi, mis näeb välja järgmine:

Kui kontrollite veebikonsoolis oma DynamoDB tabelite armatuurlauda, ​​näete, et tabel on kas alles ettevalmistamisel või olekuga aktiivne juba.

Mõelge alati oma rakendusvajadustele, kui täpsustate Read Capacity Units ja WriteCapacityUnits sest sobimatu väärtus võib teie kontol põhjustada toimivusprobleeme või suuri arvelduskulusid.

Kui olete kindel, et tabel on juba aktiivne, saate sellega teha CRUD-toiminguid.

Järgnevalt on toodud mõned koodinäited, mis näitavad teile, kuidas failist andmeid kirjutada ja lugeda Klient laud.

  1. Lisage andmed tabelisse. Andmete tabelisse kirjutamiseks vajate kliendi oma paneItem meetod. Allolev kood lisab teenusesse uue kliendi Klient tabel DynamoDB-s.
    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 parameetrid objekt sisaldab Tabelinimi mis on tabel, kuhu kirjutate, ja Üksus väljale, mis sisaldab lisatavaid andmeid koos nende konkreetsete tüüpidega. Pange tähele uusi välju, mida algselt tabelis polnud, nii töötab DynamoDB paindlikult. Saate vaadata oma andmebaasis olevaid andmeid oma konsoolis järgmiselt:
  2. Lugege andmeid tabelist. DynamoDB võimaldab teil andmeid lugeda mitmel viisil. SDK-d skannida funktsioon loeb kogu tabelit, while hankige üksus loeb ainult konkreetseid andmeid. Näiteks allolev kood saab kõik kliendid:
    const getAllCustomers = async () => {
    const params = {
    TableName: "Customer"
    }

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

    Kuigi järgmine kood saab kasutaja e-posti väärtuse järgi:
    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. Värskendage tabelis olevaid andmeid. Tabelis olemasolevate andmete värskendamiseks kasutage SDK-sid värskenda üksust funktsiooni. Järgmine kood näitab, kuidas konkreetset kirjet värskendada.
     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)
     }

    Samuti saate oma funktsiooni dünaamiliseks muuta, luues värskendusandmetest värskendusavaldised. DynamoDB paindlikkus võimaldab teil iga toiminguga hakkama saada vastavalt teie vajadustele.
  4. Kustutage andmed tabelist. Kirje kustutamiseks DynamoDB-st on teil vaja kustuta üksus funktsiooni ja konkreetse kirje klahvi. Seda saab rakendada järgmiselt.
    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]")

Tõhusate rakenduste loomine DynamoDB abil

Amazon Web Services areneb jätkuvalt. See pakub juurdepääsetavat platvormi, mida saate kasutada tõhusate ja turvaliste digitaalsete lahenduste pakkumiseks. DynamoDB on ideaalne valik, kui otsite andmebaasi, mis hakkab tööle ilma infrastruktuuri või turvalisuse pärast muretsemata.

Nüüd on teil olemas kõik, mida vajate DynamoDB-ga Node.js-is alustamiseks, ja saate julgelt valida DynamoDB oma järgmise Node.js-i rakenduse jaoks.