Създайте това примерно приложение, за да откриете колко лесни могат да бъдат базите данни.

Ключови изводи

  • DynamoDB е мощна NoSQL база данни, предлагана от AWS, която може да обработва големи количества разнообразни данни, без да прави компромис с производителността, издръжливостта или надеждността.
  • За да започнете с DynamoDB в Node.js, трябва да инсталирате пакета client-dynamodb от aws-sdk и да конфигурирате вашите идентификационни данни.
  • DynamoDB ви позволява лесно да създавате таблици, да пишете и четете данни, да актуализирате записи и да изтривате записи, като използвате методите и параметрите на клиента. Предлага гъвкавост и мащабируемост за ефективно разработване на приложения.

Голяма част от модерното разработване на приложения се нуждае от комбинация от стабилни езици за програмиране и мощни бази данни.

Едно от решенията, които Amazon Web Services (AWS) предлага, е DynamoDB, инструмент, който може да направи революция в управлението на вашите данни. Използвайки го, можете бързо да предоставите база данни за обработка на големи количества разнообразни данни.

instagram viewer

Какво е DynamoDB?

AWS предлага услуги за различни нужди от бази данни, като Amazon RDS за релационни бази даннии DocumentDB за бази данни с документи като MongoDB. DynamoDB е NoSQL база данни за съхраняване на данни във формат ключ-стойност.

DynamoDB може да обработва големи количества данни в разпределена инфраструктура без компромис с производителността, издръжливостта или надеждността. Той предлага гъвкав модел, който ви позволява лесно да съхранявате и заявявате данни, независимо дали са структурирани или неструктурирани.

Можете да използвате DynamoDB като база данни за различни видове приложения. Можете да получите достъп до него директно от уеб конзолата на AWS и програмно чрез AWS-CLI или от уеб приложения, използващи AWS-SDK.

Първи стъпки с DynamoDB в Node.js

Има много инструменти за изграждане на backend API в Node.js и вие сте свободни да изберете базата данни за вашия API, когато работите с някой от тези инструменти. Node.js предоставя широка поддръжка за външни услуги, включително бази данни като AWS DynamoDB.

Всичко, от което се нуждаете за достъп до AWS услуга от вашето приложение Node, е клиентът aws-sdk пакет за тази услуга. Например, за да получите достъп до DynamoDB, трябва да инсталирате клиент-dynamodb пакет под aws-sdk.

Изпълнете тази команда в директорията на вашия проект, за да инсталирате пакета:

npm install @aws-sdk/client-dynamodb

След инсталиране aws-sdk/клиент-dynamodb във вашия проект Node.js, трябва да добавите региона на вашата DynamoDB таблица към конфигурацията, преди да взаимодействате с нея. Ще направите това, когато инициализирате DynamoDB клиента.

Ако сте инсталирали и използвали AWS-CLI на вашия компютър преди, вероятно вече имате зададени идентификационни данни за AWS във вашата среда и SDK автоматично ще получи вашите стойности от средата.

Но ако не сте, можете да се насочите към AWS Identity Access Management (IAM) услуга във вашата конзола и създайте нов потребител. След като създадете потребителя, можете да получите идентификатор на ключ за достъп и таен ключ, които са вашите лични идентификационни данни.

Добавете тези идентификационни данни към вашата среда, като изпълните следните терминални команди за вашата платформа:

Под Unix, Linux или macOS:

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'

След това, обратно във вашия проект Node.js, създайте нов файл и го наименувайте dynamodb.js. В този файл създайте нов клиент на AWS DynamoDB, като използвате следния код:

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

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

const client = new DynamoDB({ region })

Доста просто! AWS се уверява, че не разкривате никакви идентификационни данни за сигурност във вашия код, така че докато кодът по-горе се опитва да създаде клиента, той първо чете ключа за достъп и секретния ключ от вашата среда.

Новосъздаденият клиент ви позволява да извършвате различни операции, като създаване на таблици и четене и запис на данни.

DynamoDB е без схема точно като другите NoSQL бази данни, така че винаги можете да добавяте нови атрибути (полета) към таблица по всяко време. Ето защо трябва да добавите само атрибути, които ще служат като първични ключове към таблица DynamoDB, когато я създавате.

Вижте следния код, който създава нова таблица (Клиент) в 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 AttributeDefinitions е мястото, където дефинирате ключовите атрибути на таблицата и техните типове. The електронна поща атрибутът тук има тип С което означава, че полето очаква a низ като негова стойност. Трите налични типа атрибути са С, н, и б (Низ, число и двоичен).

Имате нужда от KeySchema за определяне на първични ключове, които помагат за бързо намиране и организиране на елементи. DynamoDB очаква атрибутите, които добавяте при създаването на таблицата, да бъдат ключови атрибути, така че имейлът е основният ключ тук. Трябва да го добавите към KeySchema и да посочите неговия KeyType (ХЕШ).

Другата налична стойност на KeyType е ОБХВАТ който се използва за ключове за сортиране. Ключовете за сортиране са полезни в случаите, когато може да имате данни със същите HASH ключове в таблица и искате за да ги групирате според някои допълнителни данни като дата или цвят, можете да направите допълнителните данни ДИАПАЗОН ключ.

Третият важен параметър в горния код е Осигурена пропускателна способност. Това е мястото, където определяте броя на четенията и записите, които искате DynamoDb да разреши на таблицата за секунда.

Когато стартирате кода по-горе, трябва да получите резултат, който изглежда така:

Ако проверите таблото за управление на вашите DynamoDB таблици в уеб конзолата, ще видите таблицата или все още да се осигурява, или със състояние активен вече.

Винаги вземайте предвид нуждите на вашето приложение, когато посочвате ReadCapacityUnits и WriteCapacityUnits тъй като неподходяща стойност може да доведе до проблеми с производителността или високи разходи за фактуриране на вашия акаунт.

След като сте сигурни, че таблицата вече е активна, можете да извършвате CRUD операции върху нея.

Следват някои примери за код, които ви показват как да пишете и четете данни от Клиент маса.

  1. Добавете данни към таблицата. За да запишете данни в таблица, имате нужда от клиентска putItem метод. Кодът по-долу добавя нов клиент към Клиент таблица в 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 параметри обектът съдържа TableName коя е таблицата, на която пишете, и Вещ поле, което съдържа данните, които добавяте, с техните специфични типове. Забележете новите полета, които първоначално не бяха в таблицата, така DynamoDB работи гъвкаво. Можете да видите данните във вашата база данни в конзолата си по следния начин:
  2. Прочетете данните от таблицата. DynamoDB ви позволява да четете данни по различни начини. SDK сканиране функция чете цялата таблица, докато getItem чете само конкретни данни. Например кодът по-долу получава всички клиенти:
    const getAllCustomers = async () => {
    const params = {
    TableName: "Customer"
    }

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

    Докато следният код получава потребителя чрез имейл стойността:
    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. Актуализирайте данните в таблицата. За да актуализирате съществуващи данни в таблица, използвайте SDK updateItem функция. Следният код демонстрира как да актуализирате конкретен запис:
     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)
     }

    Можете също така да изберете да направите функцията си динамична чрез изграждане на изрази за актуализиране от вашите данни за актуализиране. Гъвкавостта на DynamoDB ви позволява да управлявате всяка операция според вашите нужди.
  4. Изтрийте данните от таблицата. За да изтриете запис от DynamoDB, имате нужда от deleteItem функция и ключа на конкретния запис. Ето как да го приложите:
    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]")

Изграждане на ефективни приложения с DynamoDB

Amazon Web Services продължава да процъфтява. Той предоставя достъпна платформа, която можете да използвате, за да предоставяте ефективни и сигурни цифрови решения. DynamoDB е идеалният избор, ако търсите база данни, която да стартирате, без да се притеснявате за инфраструктура или сигурност.

Вече разполагате с всичко необходимо, за да започнете с DynamoDB в Node.js, и можете уверено да изберете DynamoDB за следващото си приложение Node.js.