Sukurkite šią pavyzdinę programą, kad sužinotumėte, kokios paprastos gali būti duomenų bazės.

Key Takeaways

  • DynamoDB yra galinga NoSQL duomenų bazė, kurią siūlo AWS, kuri gali tvarkyti didelius įvairių duomenų kiekius nepakenkiant našumui, patvarumui ar patikimumui.
  • Norėdami pradėti naudoti DynamoDB sistemoje Node.js, turite įdiegti kliento-dynamodb paketą iš aws-sdk ir sukonfigūruoti kredencialus.
  • DynamoDB leidžia lengvai kurti lenteles, rašyti ir skaityti duomenis, atnaujinti įrašus ir ištrinti įrašus naudojant kliento metodus ir parametrus. Tai suteikia lankstumo ir mastelio, kad būtų galima efektyviai kurti programas.

Didelė dalis šiuolaikinių programų kūrimo reikalauja patikimų programavimo kalbų ir galingų duomenų bazių.

Vienas iš sprendimų, kurį siūlo „Amazon Web Services“ (AWS), yra „DynamoDB“ – įrankis, galintis pakeisti jūsų duomenų valdymą. Naudodami jį galite greitai sukurti duomenų bazę, kad galėtumėte tvarkyti didelius įvairių duomenų kiekius.

Kas yra DynamoDB?

AWS siūlo paslaugas įvairiems duomenų bazių poreikiams, pvz

Amazon RDS reliacinėms duomenų bazėmsir DocumentDB dokumentų duomenų bazės, tokios kaip MongoDB. DynamoDB yra NoSQL duomenų bazė, skirta duomenims saugoti rakto-reikšmių formatu.

„DynamoDB“ gali tvarkyti didelius duomenų kiekius paskirstytoje infrastruktūroje nepakenkdama našumui, patvarumui ar patikimumui. Jis siūlo lankstų modelį, leidžiantį lengvai saugoti duomenis ir pateikti užklausas, nesvarbu, ar jie struktūrizuoti, ar nestruktūrizuoti.

„DynamoDB“ galite naudoti kaip įvairių tipų programų duomenų bazę. Jį galite pasiekti tiesiogiai iš AWS žiniatinklio konsolės ir programiškai per AWS-CLI arba iš žiniatinklio programų naudodami AWS-SDK.

Darbo su DynamoDB pradžia Node.js

Yra daug įrankiai, skirti kurti pagrindines API Node.js ir dirbdami su bet kuriuo iš šių įrankių galite laisvai pasirinkti savo API duomenų bazę. Node.js teikia platų išorinių paslaugų palaikymą, įskaitant tokias duomenų bazes kaip AWS DynamoDB.

Viskas, ko jums reikia norint pasiekti AWS paslaugą iš „Node“ programos, yra klientas aws-sdk tos paslaugos paketą. Pavyzdžiui, norėdami pasiekti „DynamoDB“, turite įdiegti klientas-dinamodb pakuotė po aws-sdk.

Vykdykite šią komandą savo projekto kataloge, kad įdiegtumėte paketą:

npm install @aws-sdk/client-dynamodb

Po įdiegimo aws-sdk/client-dynamodb savo Node.js projekte prieš sąveikaudami su konfigūracija turite pridėti savo DynamoDB lentelės regioną. Tai padarysite inicijuodami DynamoDB klientą.

Jei anksčiau savo kompiuteryje įdiegėte ir naudojote AWS-CLI, tikriausiai jau turite nustatyti AWS kredencialus savo aplinkoje, o SDK automatiškai gaus jūsų vertes iš aplinkos.

Bet jei to nepadarėte, galite eiti į AWS tapatybės prieigos valdymas (IAM) paslaugą savo konsolėje ir susikurkite naują vartotoją. Sukūrę vartotoją, galite gauti prieigos rakto ID ir slaptąjį raktą, kurie yra jūsų asmeniniai kredencialai.

Pridėkite šiuos kredencialus į savo aplinką vykdydami šias platformos terminalo komandas:

„Unix“, „Linux“ arba „MacOS“ sistemoje:

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

„Windows“ (CMD):

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

„Windows“ („PowerShell“):

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

Tada grįžę į Node.js projektą sukurkite naują failą ir pavadinkite jį dynamodb.js. Šiame faile sukurkite naują AWS DynamoDB klientą naudodami šį kodą:

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

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

const client = new DynamoDB({ region })

Gana paprasta! AWS užtikrina, kad kode neatskleidėte jokių saugos kredencialų, todėl kol kodas aukščiau, bando sukurti klientą, jis pirmiausia nuskaito prieigos raktą ir slaptąjį raktą iš jūsų aplinkos.

Naujai sukurtas klientas leidžia atlikti įvairias operacijas, pvz., kurti lenteles ir skaityti bei rašyti duomenis.

„DynamoDB“ yra be schemų, kaip ir kitose „NoSQL“ duomenų bazėse, todėl bet kuriuo metu prie lentelės galite pridėti naujų atributų (laukų). Štai kodėl kuriant „DynamoDB“ lentelę reikia pridėti tik atributus, kurie bus pagrindiniai raktai.

Patikrinkite šį kodą, kuris sukuria naują lentelę (Klientas) „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 Atributų apibrėžimai lauke galite apibrėžti pagrindinius lentelės atributus ir jų tipus. The El. paštas atributas čia turi tipą S o tai reiškia, kad laukas tikisi a Styga kaip jo vertė. Trys galimi atributų tipai yra S, N, ir B (Eilutė, skaičius ir dvejetainis).

Jums reikia Raktų schema nustatyti pirminius raktus, kurie padeda greitai rasti ir tvarkyti elementus. DynamoDB tikisi, kad atributai, kuriuos pridedate kurdami lentelę, bus pagrindiniai atributai, todėl el. paštas čia yra pagrindinis raktas. Turite pridėti jį prie raktų schemos ir nurodyti ją KeyType (HASH).

Kita galima KeyType reikšmė yra DIAPAZONAS kuris naudojamas rūšiavimo raktams. Rūšiavimo raktai yra naudingi tais atvejais, kai lentelėje galite turėti duomenų su tais pačiais HASH raktais ir norite Norėdami sugrupuoti juos pagal kai kuriuos papildomus duomenis, pvz., datą ar spalvą, galite nustatyti papildomus duomenis RANGE Raktas.

Trečiasis svarbus parametras aukščiau pateiktame kode yra ProvisionedThroughput. Čia galite apibrėžti nuskaitymų ir įrašų skaičių, kurį norite, kad „DynamoDb“ leistų lentelėje per sekundę.

Kai paleisite aukščiau pateiktą kodą, turėtumėte gauti išvestį, kuri atrodo taip:

Jei žiniatinklio konsolėje patikrinsite „DynamoDB“ lentelių informacijos suvestinę, pamatysite, kad lentelė vis dar teikiama arba jos būsena aktyvus jau.

Visada apsvarstykite savo poreikius, kai nurodote ReadCapacityUnits ir WriteCapacityUnits nes netinkama vertė gali sukelti našumo problemų arba didelių atsiskaitymo mokesčių paskyroje.

Įsitikinę, kad lentelė jau aktyvi, galite joje atlikti CRUD operacijas.

Toliau pateikiami keli kodo pavyzdžiai, rodantys, kaip rašyti ir skaityti duomenis iš Klientas stalo.

  1. Pridėkite duomenis į lentelę. Norėdami įrašyti duomenis į lentelę, jums reikia kliento įdėtiItem metodas. Toliau pateiktas kodas prideda naują klientą Klientas „DynamoDB“ lentelė.
    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 parametrai objekte yra Lentelės pavadinimas kuri yra lentelė, kurioje rašote, ir Prekė lauką, kuriame yra duomenys, kuriuos pridedate su konkrečiais jų tipais. Atkreipkite dėmesį į naujus laukus, kurių iš pradžių nebuvo lentelėje, taip „DynamoDB“ veikia lanksčiai. Duomenų bazės duomenis galite peržiūrėti konsolėje taip:
  2. Skaitykite duomenis iš lentelės. DynamoDB leidžia skaityti duomenis įvairiais būdais. SDK nuskaityti funkcija skaito visą lentelę, o getItem skaito tik konkrečius duomenis. Pavyzdžiui, toliau pateiktas kodas gauna visus klientus:
    const getAllCustomers = async () => {
    const params = {
    TableName: "Customer"
    }

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

    Nors šis kodas gauna vartotoją pagal el. pašto reikšmę:
    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. Atnaujinkite duomenis lentelėje. Norėdami atnaujinti esamus duomenis lentelėje, naudokite SDK atnaujinti elementą funkcija. Šis kodas parodo, kaip atnaujinti konkretų įrašą:
     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)
     }

    Taip pat galite pasirinkti, kad funkcija būtų dinamiška, sukurdami atnaujinimo išraiškas iš naujinimo duomenų. „DynamoDB“ lankstumas leidžia atlikti kiekvieną operaciją pagal jūsų poreikius.
  4. Ištrinkite duomenis iš lentelės. Norėdami ištrinti įrašą iš DynamoDB, jums reikia ištrinti elementą funkcija ir konkretaus įrašo klavišas. Štai kaip tai įgyvendinti:
    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]")

Kurkite efektyvias programas naudodami „DynamoDB“.

„Amazon Web Services“ ir toliau klesti. Tai yra prieinama platforma, kurią galite naudoti norėdami pateikti efektyvius ir saugius skaitmeninius sprendimus. „DynamoDB“ yra puikus pasirinkimas, jei ieškote duomenų bazės, kuri galėtų veikti nesijaudinant dėl ​​infrastruktūros ar saugumo.

Dabar turite viską, ko reikia norint pradėti naudoti DynamoDB sistemoje Node.js, ir galite drąsiai pasirinkti DynamoDB kitai Node.js programai.