Izveidojiet šo lietotnes paraugu, lai atklātu, cik vienkāršas var būt datubāzes.

Key Takeaways

  • DynamoDB ir jaudīga NoSQL datu bāze, ko piedāvā AWS un kas var apstrādāt lielu daudzumu dažādu datu, neapdraudot veiktspēju, izturību vai uzticamību.
  • Lai sāktu darbu ar DynamoDB pakalpojumā Node.js, jums ir jāinstalē klienta-dynamodb pakotne no aws-sdk un jākonfigurē savi akreditācijas dati.
  • DynamoDB ļauj ērti izveidot tabulas, rakstīt un lasīt datus, atjaunināt ierakstus un dzēst ierakstus, izmantojot klienta metodes un parametrus. Tas piedāvā elastību un mērogojamību efektīvai lietojumprogrammu izstrādei.

Lielai daļai mūsdienu lietotņu izstrādes ir nepieciešamas spēcīgas programmēšanas valodas un jaudīgas datu bāzes.

Viens no Amazon Web Services (AWS) piedāvātajiem risinājumiem ir DynamoDB — rīks, kas var mainīt jūsu datu pārvaldību. Izmantojot to, varat ātri nodrošināt datu bāzi, lai apstrādātu lielu daudzumu dažādu datu.

Kas ir DynamoDB?

AWS piedāvā pakalpojumus dažādām datu bāzes vajadzībām, piemēram

Amazon RDS relāciju datu bāzēm, un DocumentDB par dokumentu datu bāzes, piemēram, MongoDB. DynamoDB ir NoSQL datu bāze datu glabāšanai atslēgas vērtības formātā.

DynamoDB var apstrādāt lielu datu apjomu sadalītajā infrastruktūrā, neapdraudot veiktspēju, izturību vai uzticamību. Tas piedāvā elastīgu modeli, ļaujot ērti uzglabāt un meklēt datus neatkarīgi no tā, vai tie ir strukturēti vai nestrukturēti.

Varat izmantot DynamoDB kā datu bāzi dažāda veida lietojumprogrammām. Tam var piekļūt tieši no AWS tīmekļa konsoles un programmatiski, izmantojot AWS-CLI, vai no tīmekļa lietojumprogrammām, izmantojot AWS-SDK.

Darba sākšana ar DynamoDB pakalpojumā Node.js

Tur ir daudz rīki aizmugursistēmas API izveidei pakalpojumā Node.js un, strādājot ar kādu no šiem rīkiem, varat brīvi izvēlēties datu bāzi savai API. Node.js nodrošina plašu atbalstu ārējiem pakalpojumiem, tostarp tādām datu bāzēm kā AWS DynamoDB.

Viss, kas jums nepieciešams, lai piekļūtu AWS pakalpojumam no lietotnes Node, ir klients aws-sdk šī pakalpojuma paketi. Piemēram, lai piekļūtu DynamoDB, jums ir jāinstalē klients-dynamodb iepakojums zem aws-sdk.

Palaidiet šo komandu savā projekta direktorijā, lai instalētu pakotni:

npm install @aws-sdk/client-dynamodb

Pēc instalēšanas aws-sdk/client-dynamodb savā Node.js projektā konfigurācijai jāpievieno DynamoDB tabulas reģions, pirms ar to mijiedarbojaties. Jūs to darīsit, inicializējot DynamoDB klientu.

Ja datorā jau esat instalējis un izmantojis AWS-CLI, iespējams, jūsu vidē jau ir iestatīti AWS akreditācijas dati, un SDK automātiski iegūs jūsu vērtības no vides.

Bet, ja jums tā nav, varat doties uz AWS identitātes piekļuves pārvaldība (IAM) pakalpojumu savā konsolē un izveidojiet jaunu lietotāju. Pēc lietotāja izveidošanas varat iegūt piekļuves atslēgas ID un slepeno atslēgu, kas ir jūsu personīgie akreditācijas dati.

Pievienojiet šos akreditācijas datus savai videi, izpildot šādas termināļa komandas savai platformai:

Operētājsistēmā Unix, Linux vai macOS:

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

Operētājsistēmā Windows (CMD):

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

Operētājsistēmā Windows (PowerShell):

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

Pēc tam atkal savā Node.js projektā izveidojiet jaunu failu un piešķiriet tam nosaukumu dynamodb.js. Šajā failā izveidojiet jaunu AWS DynamoDB klientu, izmantojot šādu kodu:

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

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

const client = new DynamoDB({ region })

Diezgan vienkārši! AWS nodrošina, ka kodā netiek atklāti nekādi drošības akreditācijas dati, tāpēc, kamēr kods iepriekš mēģina izveidot klientu, tas vispirms nolasa piekļuves atslēgu un slepeno atslēgu no jūsu vides.

Jaunizveidotais klients ļauj veikt dažādas darbības, piemēram, tabulu izveidi un datu lasīšanu un rakstīšanu.

DynamoDB nav shēmas, tāpat kā citas NoSQL datu bāzes, tāpēc jūs vienmēr varat pievienot jaunus atribūtus (laukus) tabulai jebkurā vietā. Tāpēc DynamoDB tabulai, veidojot to, ir jāpievieno tikai atribūti, kas kalpos kā primārās atslēgas.

Pārbaudiet šo kodu, kas izveido jaunu tabulu (Klients) 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 Atribūtu definīcijas lauks ir vieta, kur definējat tabulas galvenos atribūtus un to veidus. The E-pasts atribūtam šeit ir veids S kas nozīmē, ka lauks sagaida a Stīga kā tās vērtību. Trīs pieejamie atribūtu veidi ir S, N, un B (virkne, skaitlis un binārs).

Jums ir nepieciešams Atslēgas shēma lai definētu primārās atslēgas, kas palīdz ātri atrast un sakārtot vienumus. DynamoDB sagaida, ka atribūti, ko pievienojat, veidojot tabulu, būs galvenie atribūti, tāpēc e-pasts šeit ir primārā atslēga. Jums tas jāpievieno atslēgas shēmai un jānorāda KeyType (HASH).

Otra pieejamā KeyType vērtība ir RANGE ko izmanto kārtošanas atslēgām. Kārtošanas atslēgas ir noderīgas gadījumos, kad tabulā var būt dati ar vienādām HASH atslēgām un jūs vēlaties lai grupētu tos pēc dažiem papildu datiem, piemēram, datuma vai krāsas, varat iestatīt papildu datus RANGE taustiņu.

Trešais svarīgais parametrs iepriekš minētajā kodā ir Nodrošinātā caurlaidspēja. Šeit jūs definējat lasīšanas un rakstīšanas reižu skaitu, ko vēlaties, lai DynamoDb atļautu tabulā sekundē.

Palaižot iepriekš minēto kodu, jums vajadzētu iegūt izvadi, kas izskatās šādi:

Ja tīmekļa konsolē pārbaudīsit DynamoDB tabulu informācijas paneli, jūs redzēsiet, ka tabula joprojām tiek nodrošināta vai ar statusu aktīvs jau.

Vienmēr ņemiet vērā savas pieteikuma vajadzības, norādot ReadCapacityUnits un WriteCapacityUnits jo neatbilstoša vērtība var izraisīt veiktspējas problēmas vai lielas norēķinu izmaksas jūsu kontā.

Kad esat pārliecināts, ka tabula jau ir aktīva, varat tajā veikt CRUD darbības.

Tālāk ir sniegti daži koda piemēri, kas parāda, kā rakstīt un nolasīt datus no Klients tabula.

  1. Pievienojiet datus tabulai. Lai ierakstītu datus tabulā, jums ir nepieciešams klienta putItem metodi. Tālāk norādītais kods pievieno jaunu klientu Klients tabula 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 parametri objekts satur Tabulas nosaukums kura ir tabula, kurā rakstāt, un Lieta lauks, kurā ir dati, ko pievienojat ar to konkrētajiem veidiem. Ievērojiet jaunos laukus, kas sākotnēji nebija iekļauti tabulā. Šādi DynamoDB darbojas elastīgi. Varat skatīt datus savā datubāzē savā konsolē šādi:
  2. Lasiet datus no tabulas. DynamoDB ļauj nolasīt datus dažādos veidos. SDK skenēt funkcija nolasa visu tabulu, kamēr getItem nolasa tikai konkrētus datus. Piemēram, tālāk norādītais kods iegūst visus klientus:
    const getAllCustomers = async () => {
    const params = {
    TableName: "Customer"
    }

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

    Lai gan tālāk norādītais kods iegūst lietotāju pēc e-pasta vērtības:
    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. Atjauniniet datus tabulā. Lai atjauninātu esošos datus tabulā, izmantojiet SDK updateItem funkciju. Šis kods parāda, kā atjaunināt konkrētu ierakstu:
     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)
     }

    Varat arī izvēlēties padarīt savu funkciju dinamisku, veidojot atjaunināšanas izteiksmes no atjaunināšanas datiem. DynamoDB elastība ļauj veikt katru darbību atbilstoši jūsu vajadzībām.
  4. Dzēst datus no tabulas. Lai izdzēstu ierakstu no DynamoDB, jums ir nepieciešams dzēst vienumu funkcija un konkrētā ieraksta atslēga. Lūk, kā to ieviest:
    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]")

Efektīvu lietojumprogrammu izveide, izmantojot DynamoDB

Amazon Web Services turpina attīstīties. Tā nodrošina pieejamu platformu, ko varat izmantot, lai sniegtu efektīvus, drošus digitālos risinājumus. DynamoDB ir lieliska izvēle, ja meklējat datu bāzi, lai tā varētu darboties, neuztraucoties par infrastruktūru vai drošību.

Tagad esat aprīkots ar visu nepieciešamo, lai sāktu darbu ar DynamoDB pakalpojumā Node.js, un varat droši izvēlēties DynamoDB savai nākamajai Node.js lietojumprogrammai.