डेटाबेस कितना आसान हो सकता है, यह जानने के लिए यह नमूना ऐप बनाएं।
चाबी छीनना
- DynamoDB AWS द्वारा प्रस्तुत एक शक्तिशाली NoSQL डेटाबेस है जो प्रदर्शन, स्थायित्व या विश्वसनीयता से समझौता किए बिना बड़ी मात्रा में विविध डेटा को संभाल सकता है।
- Node.js में DynamoDB के साथ आरंभ करने के लिए, आपको aws-sdk से क्लाइंट-डायनेमोडब पैकेज इंस्टॉल करना होगा और अपने क्रेडेंशियल्स को कॉन्फ़िगर करना होगा।
- DynamoDB आपको क्लाइंट के तरीकों और मापदंडों का उपयोग करके आसानी से टेबल बनाने, डेटा लिखने और पढ़ने, रिकॉर्ड अपडेट करने और रिकॉर्ड हटाने की अनुमति देता है। यह कुशल अनुप्रयोग विकास के लिए लचीलापन और मापनीयता प्रदान करता है।
आधुनिक ऐप विकास के एक बड़े हिस्से को मजबूत प्रोग्रामिंग भाषाओं और शक्तिशाली डेटाबेस के मिश्रण की आवश्यकता होती है।
अमेज़ॅन वेब सर्विसेज (एडब्ल्यूएस) द्वारा पेश किए जाने वाले समाधानों में से एक डायनेमोडीबी है, एक उपकरण जो आपके डेटा प्रबंधन में क्रांतिकारी बदलाव ला सकता है। इसका उपयोग करके, आप बड़ी मात्रा में विविध डेटा को संभालने के लिए तुरंत एक डेटाबेस का प्रावधान कर सकते हैं।
डायनेमोडीबी क्या है?
AWS विभिन्न डेटाबेस आवश्यकताओं के लिए सेवाएँ प्रदान करता है, जैसे रिलेशनल डेटाबेस के लिए अमेज़ॅन आरडीएस, और DocumentDB के लिए MongoDB जैसे दस्तावेज़ डेटाबेस. DynamoDB कुंजी-मूल्य प्रारूप में डेटा संग्रहीत करने के लिए एक NoSQL डेटाबेस है।
DynamoDB प्रदर्शन, स्थायित्व या विश्वसनीयता से समझौता किए बिना वितरित बुनियादी ढांचे में बड़ी मात्रा में डेटा को संभाल सकता है। यह एक लचीला मॉडल प्रदान करता है, जिससे आप डेटा को आसानी से संग्रहीत और क्वेरी कर सकते हैं, चाहे वह संरचित हो या असंरचित।
आप विभिन्न प्रकार के एप्लिकेशन के लिए डेटाबेस के रूप में DynamoDB का उपयोग कर सकते हैं। आप इसे सीधे AWS वेब कंसोल से और प्रोग्रामेटिक रूप से AWS-CLI के माध्यम से, या AWS-SDK का उपयोग करके वेब एप्लिकेशन से एक्सेस कर सकते हैं।
Node.js में DynamoDB के साथ शुरुआत करना
वहां कई हैं Node.js में बैकएंड एपीआई बनाने के लिए उपकरण और इनमें से किसी भी टूल के साथ काम करते समय आप अपने एपीआई के लिए डेटाबेस चुनने के लिए स्वतंत्र हैं। Node.js AWS DynamoDB जैसे डेटाबेस सहित बाहरी सेवाओं के लिए व्यापक समर्थन प्रदान करता है।
आपको अपने नोड ऐप से AWS सेवा तक पहुंचने के लिए केवल क्लाइंट की आवश्यकता है aws-sdk उस सेवा के लिए पैकेज. उदाहरण के लिए, DynamoDB तक पहुँचने के लिए, आपको इंस्टॉल करना होगा client-dynamodb पैकेज के अंतर्गत aws-sdk.
पैकेज को स्थापित करने के लिए इस कमांड को अपनी प्रोजेक्ट निर्देशिका में चलाएँ:
npm install @aws-sdk/client-dynamodb
इंस्टाल करने के बाद aws-sdk/client-dynamodb अपने Node.js प्रोजेक्ट में, आपको इसके साथ इंटरैक्ट करने से पहले अपनी DynamoDB तालिका के क्षेत्र को कॉन्फ़िगरेशन में जोड़ना होगा। DynamoDB क्लाइंट प्रारंभ करते समय आप ऐसा करेंगे।
यदि आपने पहले अपने कंप्यूटर पर AWS-CLI स्थापित और उपयोग किया है, तो संभवतः आपके वातावरण में AWS क्रेडेंशियल पहले से ही सेट हैं, और SDK स्वचालित रूप से वातावरण से आपके मान प्राप्त कर लेगा।
लेकिन यदि आपने नहीं किया है, तो आप यहां जा सकते हैं AWS आइडेंटिटी एक्सेस मैनेजमेंट (IAM) अपने कंसोल में सेवा और एक नया उपयोगकर्ता बनाएं। उपयोगकर्ता बनाने के बाद, आप एक एक्सेस कुंजी आईडी और गुप्त कुंजी प्राप्त कर सकते हैं, जो आपकी व्यक्तिगत साख हैं।
अपने प्लेटफ़ॉर्म के लिए निम्नलिखित टर्मिनल कमांड चलाकर इन क्रेडेंशियल्स को अपने वातावरण में जोड़ें:
यूनिक्स, लिनक्स, या macOS पर:
export AWS_ACCESS_KEY_ID='your access key ID'
export AWS_SECRET_ACCESS_KEY='you secret access key'
विंडोज़ पर (सीएमडी):
set AWS_ACCESS_KEY_ID='your access key ID'
set AWS_SECRET_ACCESS_KEY='you secret access key'
विंडोज़ पर (पॉवरशेल):
$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();
गुणपरिभाषाएँ फ़ील्ड वह जगह है जहां आप तालिका की प्रमुख विशेषताओं और उनके प्रकारों को परिभाषित करते हैं। ईमेल यहाँ विशेषता का प्रकार है एस जिसका अर्थ है कि क्षेत्र एक की अपेक्षा करता है डोरी इसके मूल्य के रूप में. तीन उपलब्ध विशेषता प्रकार हैं एस, एन, और बी (स्ट्रिंग, संख्या और बाइनरी)।
आपको चाहिए कुंजीस्कीमा प्राथमिक कुंजी को परिभाषित करने के लिए जो आइटम को शीघ्रता से ढूंढने और व्यवस्थित करने में मदद करती है। DynamoDB अपेक्षा करता है कि तालिका बनाते समय आपके द्वारा जोड़ी गई विशेषताएँ मुख्य विशेषताएँ हों, इसलिए ईमेल यहाँ प्राथमिक कुंजी है। आपको इसे KeySchema में जोड़ना होगा और निर्दिष्ट करना होगा कुंजी प्रकार (हैश).
अन्य उपलब्ध KeyType मान है श्रेणी जिसका उपयोग सॉर्ट कुंजियों के लिए किया जाता है। सॉर्ट कुंजियाँ उन मामलों में उपयोगी होती हैं जहाँ आपके पास तालिका में समान HASH कुंजियों वाला डेटा हो सकता है, और आप चाहते हैं उन्हें कुछ अतिरिक्त डेटा जैसे दिनांक या रंग के अनुसार समूहित करने के लिए, आप अतिरिक्त डेटा को RANGE बना सकते हैं चाबी।
उपरोक्त कोड में तीसरा महत्वपूर्ण पैरामीटर है प्रावधानितथ्रूपुट. यह वह जगह है जहां आप पढ़ने और लिखने की संख्या को परिभाषित करते हैं जिसे आप चाहते हैं कि DynamoDb प्रति सेकंड टेबल पर अनुमति दे।
जब आप उपरोक्त कोड चलाते हैं, तो आपको ऐसा आउटपुट मिलना चाहिए जो इस तरह दिखता है:
यदि आप वेब कंसोल में अपने DynamoDB टेबल डैशबोर्ड की जांच करते हैं, तो आप देखेंगे कि टेबल या तो अभी भी प्रावधानित है या उसकी स्थिति के साथ है सक्रिय पहले से।
निर्दिष्ट करते समय हमेशा अपनी एप्लिकेशन आवश्यकताओं पर विचार करें ReadCapacityUnits और WriteCapacityUnits क्योंकि अनुचित मूल्य आपके खाते में प्रदर्शन संबंधी समस्याएं या उच्च बिलिंग लागत पैदा कर सकता है।
एक बार जब आप सुनिश्चित हो जाएं कि तालिका पहले से ही सक्रिय है, तो आप उस पर सीआरयूडी संचालन कर सकते हैं।
निम्नलिखित कुछ कोड उदाहरण हैं जो आपको दिखाते हैं कि डेटा कैसे लिखना और पढ़ना है ग्राहक मेज़।
-
तालिका में डेटा जोड़ें. किसी तालिका में डेटा लिखने के लिए, आपको क्लाइंट की आवश्यकता होती है आइटम डालो तरीका। नीचे दिया गया कोड एक नया ग्राहक जोड़ता है ग्राहक DynamoDB में तालिका।
पैरामीटर ऑब्जेक्ट में शामिल है तालिका नाम वह तालिका कौन सी है जिस पर आप लिख रहे हैं, और वह वस्तु फ़ील्ड जिसमें वह डेटा शामिल है जिसे आप उनके विशिष्ट प्रकारों के साथ जोड़ रहे हैं। उन नए फ़ील्ड पर ध्यान दें जो प्रारंभ में तालिका में नहीं थे, इस प्रकार 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)
-
तालिका से डेटा पढ़ें. DynamoDB आपको विभिन्न तरीकों से डेटा पढ़ने की अनुमति देता है। एसडीके स्कैन फ़ंक्शन पूरी तालिका पढ़ता है, जबकि वस्तु ले आओ केवल विशिष्ट डेटा पढ़ता है। उदाहरण के लिए, नीचे दिया गया कोड सभी ग्राहकों को मिलता है:
जबकि निम्नलिखित कोड उपयोगकर्ता को ईमेल मान द्वारा प्राप्त होता है: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]")
-
तालिका में डेटा अद्यतन करें. किसी तालिका में मौजूदा डेटा को अद्यतन करने के लिए, SDK का उपयोग करें अद्यतनआइटम समारोह। निम्नलिखित कोड दर्शाता है कि किसी विशिष्ट रिकॉर्ड को कैसे अद्यतन किया जाए:
आप अपने अपडेट डेटा से अपडेट एक्सप्रेशन बनाकर अपने फ़ंक्शन को गतिशील बनाना भी चुन सकते हैं। DynamoDB का लचीलापन आपको अपनी आवश्यकताओं के अनुसार हर ऑपरेशन को संभालने की अनुमति देता है।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 से किसी रिकॉर्ड को हटाने के लिए, आपको इसकी आवश्यकता होगी चीज़ें हटाएं फ़ंक्शन और विशेष रिकॉर्ड की कुंजी। इसे लागू करने का तरीका यहां बताया गया है:
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 के साथ कुशल अनुप्रयोगों का निर्माण
अमेज़ॅन वेब सेवाएँ लगातार फल-फूल रही हैं। यह एक सुलभ मंच प्रदान करता है जिसका उपयोग आप कुशल, सुरक्षित डिजिटल समाधान देने के लिए कर सकते हैं। यदि आप बुनियादी ढांचे या सुरक्षा की चिंता किए बिना चलाने के लिए डेटाबेस की तलाश कर रहे हैं तो DynamoDB सही विकल्प है।
अब आप Node.js में DynamoDB के साथ आरंभ करने के लिए आवश्यक सभी चीज़ों से सुसज्जित हैं, और आप आत्मविश्वास से अपने अगले Node.js एप्लिकेशन के लिए DynamoDB चुन सकते हैं।