DynamoDB इंडेक्स, स्ट्रीम्स, और ऑप्टिमाइजेशन
AWS में Data Stores का उपयोग
Dunieski Otano
AWS Solutions Architect
जो क्वेरी हो नहीं सकती थी
Table: userId (partition key), orderDate (sort key)
आवश्यकता: ईमेल पते से ऑर्डर ढूँढें
समस्या: non-key एट्रिब्यूट्स पर क्वेरी नहीं कर सकते
समाधान: Global Secondary Index
इंडेक्स कई एक्सेस पैटर्न सक्षम करते हैं
Global Secondary Index (GSI)
बेस टेबल से
अलग partition key
टेबल बनने के बाद कभी भी जोड़ें
केवल eventually consistent reads
उपयोग: non-primary key एट्रिब्यूट्स पर क्वेरी
Local Secondary Index (LSI)
वही partition key
, अलग sort key
टेबल बनाते समय ही बनाना होगा
strongly consistent reads को सपोर्ट करता है
उपयोग: एक partition में वैकल्पिक sort orders
GSI बनाम LSI - कब क्या उपयोग करें
GSI
: अलग partition key, कभी भी जोड़ें, eventual consistency
LSI
: वही partition key, टेबल बनाते समय बनाएँ, strong consistency
सबसे आम: लचीले एक्सेस पैटर्न के लिए GSI
DynamoDB के लिए डेटा सीरियलाइज़ेशन
समस्या
: DynamoDB Python objects स्टोर नहीं करता
समाधान
: JSON या binary में serialize करें
JSON
: सरल डेटा (dicts, lists) - json.dumps()
Base64
: बाइनरी डेटा (images, tokens)
चेंज डेटा कैप्चर के लिए DynamoDB Streams
Streams
: सभी टेबल बदलावों का ordered लॉग
कैप्चर करता है: inserts, updates, deletes
उपयोग: ऑडिट लॉग, replication, triggers
real-time रिएक्शन के लिए Lambda से प्रोसेस करें
ऑटोमैटिक एक्सपायरी के लिए Time-to-Live
TTL
: एक्सपायरी के बाद items का ऑटो-डिलीशन
TTL एट्रिब्यूट में Unix timestamp सेट करें
उपयोगी: sessions, अस्थायी tokens, cache
TTL deletions का कोई खर्च नहीं
इंडेक्स प्रोजेक्शन टाइप्स और क्वेरी परफॉर्मेंस
KEYS_ONLY
: केवल key एट्रिब्यूट्स, सबसे छोटा साइज़
INCLUDE
: keys + चुने हुए एट्रिब्यूट्स
ALL
: सभी एट्रिब्यूट्स, सबसे बड़ा साइज़, कोई fetch नहीं
ट्रेड-ऑफ: स्टोरेज कॉस्ट बनाम क्वेरी परफॉर्मेंस
बैच ऑपरेशंस और ट्रांज़ैक्शंस
BatchGetItem
: अधिकतम 100 items पढ़ें, 16MB मैक्स
BatchWriteItem
: अधिकतम 25 items लिखें
TransactWriteItems
: अधिकतम 100 items पर ACID
उपयोग: दक्षता (batch) या संगति (transactions)
अभ्यास करते हैं!
AWS में Data Stores का उपयोग
Preparing Video For Download...