Sestavte si tuto ukázkovou aplikaci a zjistěte, jak snadné mohou být databáze.
Klíčové věci
- DynamoDB je výkonná NoSQL databáze nabízená společností AWS, která dokáže zpracovat velké množství různorodých dat bez kompromisů ve výkonu, odolnosti nebo spolehlivosti.
- Chcete-li začít s DynamoDB v Node.js, musíte nainstalovat balíček client-dynamodb z aws-sdk a nakonfigurovat své přihlašovací údaje.
- DynamoDB umožňuje snadno vytvářet tabulky, zapisovat a číst data, aktualizovat záznamy a mazat záznamy pomocí metod a parametrů klienta. Nabízí flexibilitu a škálovatelnost pro efektivní vývoj aplikací.
Velká část vývoje moderních aplikací potřebuje kombinaci robustních programovacích jazyků a výkonných databází.
Jedním z řešení, které Amazon Web Services (AWS) nabízí, je DynamoDB, nástroj, který může způsobit revoluci ve správě dat. S jeho pomocí můžete rychle zřídit databázi pro zpracování velkého množství různorodých dat.
Co je DynamoDB?
AWS nabízí služby pro různé databázové potřeby, např Amazon RDS pro relační databáze
a DocumentDB pro databáze dokumentů, jako je MongoDB. DynamoDB je databáze NoSQL pro ukládání dat ve formátu klíč-hodnota.DynamoDB dokáže zpracovat velké množství dat napříč distribuovanou infrastrukturou, aniž by došlo ke snížení výkonu, odolnosti nebo spolehlivosti. Nabízí flexibilní model, který vám umožní snadno ukládat a dotazovat data, ať už jsou strukturovaná nebo nestrukturovaná.
DynamoDB můžete použít jako databázi pro různé typy aplikací. Můžete k němu přistupovat přímo z webové konzole AWS a programově přes AWS-CLI, nebo z webových aplikací pomocí AWS-SDK.
Začínáme s DynamoDB v Node.js
Je jich mnoho nástroje pro vytváření backendových API v Node.js a při práci s kterýmkoli z těchto nástrojů si můžete vybrat databázi pro své API. Node.js poskytuje širokou podporu pro externí služby včetně databází jako AWS DynamoDB.
Vše, co potřebujete pro přístup ke službě AWS z aplikace Node, je klient aws-sdk balíček pro tuto službu. Například pro přístup k DynamoDB musíte nainstalovat klient-dynamodb balíček pod aws-sdk.
Spusťte tento příkaz v adresáři projektu a nainstalujte balíček:
npm install @aws-sdk/client-dynamodb
Po instalaci aws-sdk/client-dynamodb ve vašem projektu Node.js musíte přidat oblast vaší tabulky DynamoDB do konfigurace, než s ní začnete pracovat. To provedete při inicializaci klienta DynamoDB.
Pokud jste na svém počítači již dříve nainstalovali a používali AWS-CLI, pravděpodobně již máte ve svém prostředí nastavené přihlašovací údaje AWS a SDK automaticky získá vaše hodnoty z prostředí.
Ale pokud ne, můžete se vydat na AWS Identity Access Management (IAM) službu ve vaší konzoli a vytvořte nového uživatele. Po vytvoření uživatele můžete získat ID přístupového klíče a tajný klíč, což jsou vaše osobní přihlašovací údaje.
Přidejte tato pověření do svého prostředí spuštěním následujících příkazů terminálu pro vaši platformu:
V systémech Unix, Linux nebo macOS:
export AWS_ACCESS_KEY_ID='your access key ID'
export AWS_SECRET_ACCESS_KEY='you secret access key'
V systému Windows (CMD):
set AWS_ACCESS_KEY_ID='your access key ID'
set AWS_SECRET_ACCESS_KEY='you secret access key'
V systému Windows (PowerShell):
$env: AWS_ACCESS_KEY_ID='your access key ID'
$env: AWS_SECRET_ACCESS_KEY='you secret access key'
Poté v projektu Node.js vytvořte nový soubor a pojmenujte jej dynamodb.js. V tomto souboru vytvořte instanci nového klienta AWS DynamoDB pomocí následujícího kódu:
const { DynamoDB } = require('@aws-sdk/client-dynamodb')
const region = "us-east-1"// your preferred region
const client = new DynamoDB({ region })
Docela jednoduché! AWS zajišťuje, že ve svém kódu neodhalujete žádné z vašich bezpečnostních pověření, takže zatímco kód výše se pokusí vytvořit klienta, nejprve načte přístupový klíč a tajný klíč z vašeho prostředí.
Nově vytvořené klienta umožňuje provádět různé operace, jako je vytváření tabulek a čtení a zápis dat.
DynamoDB je bez schématu stejně jako ostatní databáze NoSQL, takže do tabulky můžete kdykoli přidat nové atributy (pole). To je důvod, proč stačí přidat atributy, které budou sloužit jako primární klíče do tabulky DynamoDB při jejím vytváření.
Podívejte se na následující kód, který vytvoří novou tabulku (Zákazník) v 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 Definice atributů pole je místo, kde definujete klíčové atributy tabulky a jejich typy. The E-mailem atribut zde má typ S což znamená, že pole očekává a Tětiva jako jeho hodnotu. K dispozici jsou tři typy atributů S, N, a B (Řetězec, Číslo a Binární).
Potřebujete KeySchema k definování primárních klíčů, které pomáhají rychle najít a uspořádat položky. DynamoDB očekává, že atributy, které přidáte při vytváření tabulky, budou klíčovými atributy, takže primárním klíčem je zde e-mail. Musíte jej přidat do KeySchema a zadat jeho KeyType (HASH).
Další dostupná hodnota KeyType je ROZSAH který se používá pro klíče řazení. Třídicí klíče jsou užitečné v případech, kdy můžete mít data se stejnými HASH klíči v tabulce a chcete chcete-li je seskupit podle některých dalších údajů, jako je datum nebo barva, můžete z těchto údajů vytvořit ROZSAH klíč.
Třetí důležitý parametr ve výše uvedeném kódu je ProvisionedThroughput. Zde definujete počet čtení a zápisů, které má DynamoDb povolit na stole za sekundu.
Když spustíte výše uvedený kód, měli byste získat výstup, který vypadá takto:
Pokud zkontrolujete řídicí panel tabulek DynamoDB ve webové konzoli, uvidíte, že tabulka je buď stále zajišťována, nebo se stavem aktivní již.
Při specifikaci vždy zvažte potřeby vaší aplikace ReadCapacityUnits a WriteCapacityUnits protože nevhodná hodnota může vést k problémům s výkonem nebo vysokým fakturačním nákladům na vašem účtu.
Jakmile jste si jisti, že tabulka je již aktivní, můžete na ní provádět operace CRUD.
Následuje několik příkladů kódu, které vám ukazují, jak zapisovat a číst data z Zákazník stůl.
-
Přidejte data do tabulky. K zápisu dat do tabulky potřebujete klienta putItem metoda. Níže uvedený kód přidá nového zákazníka do Zákazník tabulka v DynamoDB.
The parametry objekt obsahuje Název_tabulky což je tabulka, do které píšete, a Položka pole, které obsahuje data, která přidáváte, s jejich konkrétními typy. Všimněte si nových polí, která původně v tabulce nebyla, takto funguje DynamoDB flexibilně. Data ve vaší databázi můžete zobrazit ve vaší konzoli takto: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)
-
Přečtěte si data z tabulky. DynamoDB umožňuje číst data různými způsoby. SDK skenovat funkce čte celou tabulku, zatímco getItem čte pouze konkrétní data. Například kód níže získá všechny zákazníky:
Zatímco následující kód získá uživatele pomocí e-mailové hodnoty: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]")
-
Aktualizujte údaje v tabulce. Chcete-li aktualizovat existující data v tabulce, použijte sady SDK updateItem funkce. Následující kód ukazuje, jak aktualizovat konkrétní záznam:
Můžete také zvolit, aby byla vaše funkce dynamická vytvořením aktualizačních výrazů z vašich aktualizačních dat. Flexibilita DynamoDB vám umožňuje zvládnout každou operaci podle vašich potřeb.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)
} -
Odstraňte data z tabulky. Chcete-li odstranit záznam z DynamoDB, potřebujete deleteItem funkce a klíč konkrétního záznamu. Postup implementace:
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]")
Vytváření efektivních aplikací s DynamoDB
Amazon Web Services nadále prosperuje. Poskytuje dostupnou platformu, kterou můžete použít k poskytování efektivních a bezpečných digitálních řešení. DynamoDB je perfektní volbou, pokud hledáte databázi, kterou byste mohli provozovat bez obav o infrastrukturu nebo zabezpečení.
Nyní jste vybaveni vším, co potřebujete, abyste mohli začít s DynamoDB v Node.js, a můžete si s jistotou vybrat DynamoDB pro svou další aplikaci Node.js.