DynamoDB Partition Keys, Sort Keys आणि Hot Partitions सोप्या भाषेत
Chioma: celebrity USER# hot. PK/SK, hot partitions, sharding. Modeling chapter link.
या chapter मध्ये तुम्ही काय शिकाल
- Everyday story
- Why/What/How
- Commands + meaning
- Industries
- Lab + cleanup
1. रोजचे उदाहरण: एक busy lift
एक lift = hot partition. अनेक lifts = sharding. SK = floor buttons.
2. Vertical steps
3. हे का लागतं?
हे का लागतं?
एक popular key -> throttle. Table-level spare असूनही.
4. हे काय आहे?
हे काय आहे?
PK places; SK orders. Hot = overload. Fix: shard/cache/GSI.
5. कसं करायचं
कसं करायचं (step by step)
- Peak per PK.
- Low cardinality टाळा.
- Shard suffixes.
- CW metrics.
- Event re-test.
6. Sharding
Write PK#shard; read scatter किंवा materialize.
7. CloudWatch
Throttle metrics + Contributor Insights.
8. Commands: output आणि अर्थ
aws dynamodb describe-table --table-name lab-dda-shop --query 'Table.KeySchema'
# Output: HASH PK, RANGE SK — confirms key roles
aws cloudwatch get-metric-statistics --namespace AWS/DynamoDB --metric-name ThrottledRequests \
--dimensions Name=TableName,Value=lab-dda-shop --start-time 2026-10-31T00:00:00Z --end-time 2026-10-31T23:59:59Z \
--period 3600 --statistics Sum --region ap-south-1
# Output: datapoints Sum>0 means throttling happened. Meaning: investigate hot keys, not only table capacity.
KeySchema = roles. Throttles = hot key investigation.
9. Industry stories
- Gaming shard
- IoT day PK
- Retail sale
- Social
- Ads
10. Lab
कसं करायचं (step by step)
- Hammer + watch.
- Shard retry.
- Delete.
Cleanup
- Lab delete करा.
- Confirm gone.
11. Access-pattern workshop (आधी कागदावर)
- प्रत्येक screen/API लिहा.
- प्रत्येकासाठी key/query English मध्ये.
- Relationships mark करा.
- Range गरज गोल करा.
- मगच PK/SK/GSI.
- Peak per PK.
- Entity JSON नमुना.
- Peer review.
12. Copy-paste DynamoDB CLI starters
# Region habit for this series
export AWS_DEFAULT_REGION=ap-south-1
# Describe + sample
aws dynamodb describe-table --table-name ShopApp
aws dynamodb scan --table-name ShopApp --max-items 3
# Query by PK (replace names)
aws dynamodb query --table-name ShopApp --key-condition-expression "PK = :pk" --expression-attribute-values '{":pk":{"S":"USER#u123"}}'
# On-demand capacity mode check
aws dynamodb describe-table --table-name ShopApp --query 'Table.BillingModeSummary'
# Streams status
aws dynamodb describe-table --table-name ShopApp --query 'Table.StreamSpecification'
13. अजून industry stories
- Retail cart single-table
- Gaming leaderboard shard
- IoT time-series TTL
- Clinic conditional Put
- Fintech audit Streams
- Travel global tables
14. Glossary
| Term | अर्थ |
|---|---|
| PK | Partition ठरवणारी key |
| SK | Partition आतील क्रम |
| Item collection | एक PK चे सर्व items |
| GSI | Alternate index |
| LSI | Same PK, वेगळा SK |
| RCU/WCU | Provisioned units |
| Conditional write | Condition true तरच write |
| Stream view | Stream मध्ये काय येतं |
15. Practice: मोठ्याने explain
- 60s access patterns first.
- 60s hot + shard.
- 60s GSI vs LSI.
- 60s capacity modes.
- 60s version lock.
- 60s Streams audit.
- Record ×2.
16. Safe lab hygiene
- Budget alert.
- lab- prefix.
- On-demand labs.
- Delete after.
- DLQ required.
- Owner+Expiry tags.
17. या set ची links
- Intro chapter
- CRUD survey
- CLI chapter
- SDK chapter
- Serverless projects
18. Single-table sketch pad
Console आधी एक mentally table. Shop: USER#, ORD#, ITEM#, PROD#.
| Entity | PK | SK | Attrs |
|---|---|---|---|
| User | USER#u1 | PROFILE | name, city |
| Order | USER#u1 | ORD#... | total, status |
| Order item | ORD#o9 | ITEM#sku1 | qty, price |
| Product | PROD#sku1 | META | title, stock |
19. दहा oral drills
- Access pattern?
- PK prefixes?
- Hot symptom?
- Sparse GSI?
- LSI timing?
- On-demand bill?
- attribute_not_exists?
- View type trade-off?
- Poison loop?
- Which chapter for Put?
20. Capacity / throttle drill
- CW metrics उघडा.
- Mode note.
- RCU/WCU लिहा.
- Hottest PK.
- Mitigation.
- Budget alert.
- GSI audit.
- Streams audit.
21. Condition cheatsheet
# Create-once
attribute_not_exists(PK)
# Optimistic lock
version = :v
# Stock / seat
stock > :zero
#status = :free
# Combine
attribute_not_exists(PK) AND #type = :user
Conditions = seatbelt. SDK chapter = full samples.
22. Streams consumer checklist
- View type.
- DLQ.
- Idempotent.
- IteratorAge.
- No loop.
- Fan-out.
- Lab disable.
23. Link map batch 1
- Sequence.
- No duplicate verbs.
- Projects later.
24. अधिक oral drills
- 45s PM.
- Chat PK/SK.
- 3 metrics.
- Refuse GSI.
- Txn story.
- ALO.
- Scan->Query.
- Cleanup.
25. Teacher story: notebook → database
Ravindra Sir नी एका दुकानात सगळं एका notebook मध्ये बघितलं — customer, order, payment. unpaid bills शोधायला पाने उलटायला लागत. DynamoDB single-table म्हणजे तोच notebook नीट लेबल (PK/SK) आणि गरज असेल तरच दुसरी tab (GSI). दहा वेगळे books तयार करू नका जोपर्यंत खरंच दहा वेगळे व्यवसाय नाहीत.
Meera (clinic), Omar (travel), Aisha (retail) एकत्र design करतात तेव्हाही आधी कागद: screen यादी, key sketch, sample JSON, peer review. Console शेवटी. म्हणूनच ही deep series PutItem पुन्हा लिहित नाही — intro आणि CRUD ला link करते.
26. सोळा mini tasks (self-check)
- Cart साठी तीन access patterns.
- User + orders PK/SK.
- एक hot anti-pattern.
- 40s मध्ये write sharding.
- GSI vs LSI without notes.
- Sparse index projection का?
- Flash sale mode.
- पाच bill line items.
- Create-once condition शब्दात.
- Version lock वर्णन.
- Txn कधी?
- Audit view type.
- दोन consumer safety rules.
- Stream lag metric.
- PutItem CLI कुठे?
- Lab cleanup checklist.
27. मराठी classroom lines
- Mantra: patterns first.
- Hot = गर्दी.
- GSI vs LSI.
- Modes.
- Seatbelt.
- ALO.
28. Hindi bridge lines
- Patterns first.
- Hot load.
- GSI/LSI.
- Modes.
- Txn.
- Idempotent.
29. सामान्य errors आणि fixes
प्रत्येक row = खरी चूक. Panic करण्याआधी fix वाचा.
| Error / लक्षण | Fix |
|---|---|
| Status PK | Add id |
| No alarm | Alarm |
| Shard=1 | Retune |
| No cache | Cache |
| Hot GSI | Design GSI |
| Huge | Small |
| No CI | Enable |
| Mode blame | Fix key |
| No test | Test |
30. Troubleshooting checklist
- Hot key.
- Per-user PK.
- Read shards.
- GSI hot.
- Time skew.
31. FAQ
प्र. Single table always?
Related patterns साठी हो; religion नाही.
प्र. RDS अजून?
Joins/SQL reports साठी हो — intro chapter.
प्र. Scan वाईट?
Hot path = Query/Get; Scan rare.
प्र. Put/Get कुठे?
CRUD/CLI/SDK chapters — link.
प्र. Hot?
एक PK overload.
प्र. Shard?
Suffix spread.
प्र. On-demand?
Still limits.
प्र. SK?
Order/range.
32. Interview Q&A
प्र. PK/SK?
Place vs order.
प्र. Symptom?
Throttle.
प्र. How shard?
Suffix.
प्र. Cardinality?
Few PKs.
प्र. MNC celeb
Shard+cache.
प्र. Prove?
Metrics.
33. Tips — English, मराठी आणि हिंदी
Ravindra Bagale's Tip (EN)
Measure per-key traffic before adding capacity.
Ravindra Bagale's Tip (MR)
Capacity आधी per-key मोजा.
Tip (HI)
पहले per-key traffic नापें।
घरी करून बघा
- Top 5 keys.
- Shard plan.
- Modeling re-read.
थोडक्यात सांगायचं तर
- PK/SK roles.
- Hot != empty.
- Fixes.
- Metrics.
उजळणी, मुलाखत आणि तुलना cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.








अजून cards: Ravi Sir's Cards.
सराव Tasks
Vidarbha Cotton Mills हा नागपूर मधला वस्त्रोद्योग व्यवसाय आहे. Ganesh Wankhede त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.
0 / 16
सोपं Hot
का: Def.
काय करायचं: Hot uneven तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
सोपं Shard
का: Fix.
काय करायचं: Shard spread तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
सोपं SK
का: Range.
काय करायचं: SK range तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
सोपं Low card
का: Anti.
काय करायचं: Low card hot तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
सोपं Describe table
का: CLI.
काय करायचं: ShopApp describe.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
सोपं Hot YAML
का: Note.
काय करायचं: दोन्ही keys.
- Task मधल्या top-level keys पासून सुरू करा.
- Child keys 2 spaces ने indent करा (tabs नकोत).
- प्रत्येक property मध्ये task मधली value भरा.
- Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.
सोपं PK
का: Def.
काय करायचं: PK places तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
मध्यम Throttle
का: CW.
काय करायचं: Throttle metric तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
मध्यम Sparse
का: Sparse.
काय करायचं: Sparse तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
मध्यम Burst
का: Trap.
काय करायचं: Burst hide तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
मध्यम IoT PK
का: Pattern.
काय करायचं: device#day तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
मध्यम Scan sample
का: CLI.
काय करायचं: max 3 scan.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
अवघड CI
का: Tool.
काय करायचं: CI hot keys तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
अवघड Fan-in
का: Read.
काय करायचं: Fan-in तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
अवघड CWCU
का: Metric.
काय करायचं: CWCU तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.
अवघड Mitigate
का: Options.
काय करायचं: Mitigate तर 1.
- Task मधले numbers लिहून घ्या.
- कागदावर step by step काढा.
- Box मध्ये फक्त final उत्तर लिहा.
- Check answer दाबा.