Bosh sahifa Wiki DynamoDB

DynamoDB

DynamoDBkey-value va document modelini qo‘llaydigan, gorizontal scale, replication va managed operationga mo‘ljallangan cloud database xizmati. U past latency bilan katta request hajmini qayta ishlash uchun partitionlangan arxitekturadan foydalanadi.

DynamoDB data modeli access pattern va primary key tanloviga kuchli bog‘liq.

Table

Table itemlar to‘plamidir.

Har item attribute’lardan iborat.

Itemlar bir xil attribute to‘plamiga ega bo‘lishi shart emas, ammo primary key schema barcha itemlar uchun umumiy.

Item

Item JSONga o‘xshash structure.

Attribute turlari:

  • string;
  • number;
  • binary;
  • boolean;
  • null;
  • list;
  • map;
  • set.

Item hajmi platforma limitiga ega.

Katta binary fayllar object storage’da saqlanib, table’da reference yoziladi.

Partition key

Primary key faqat partition keydan iborat bo‘lishi mumkin.

Partition key hash qilinib data qaysi partitionga tushishini aniqlaydi.

Yuqori cardinality va teng taqsimlangan key kerak.

Bitta mashhur key hot partition yaratishi mumkin.

Sort key

Composite primary key partition key va sort keydan iborat.

Bir xil partition keydagi itemlar sort key bo‘yicha tartiblangan.

Masalan:

PK = USER#15
SK = ORDER#2026-07-14#100

Bu bitta userning orderlarini range bilan olishga yordam beradi.

Single-table design

Turli entitylar bitta table’da key patternlari bilan saqlanishi mumkin.

Masalan:

PK = USER#15, SK = PROFILE
PK = USER#15, SK = ORDER#100

Bu bir requestda bog‘liq data’ni olishga yordam beradi.

Kamchiligi — schema va key convention murakkablashadi.

GetItem

Primary key to‘liq ma’lum bo‘lsa bitta item olinadi.

Bu eng aniq va tez access patternlardan biri.

Primary key bo‘lmagan field bo‘yicha GetItem ishlamaydi.

Secondary index yoki scan talab qilinadi.

Query

Bir partition key ichidagi itemlar sort key sharti bilan olinadi.

Shartlar:

  • equality;
  • between;
  • prefix;
  • comparison.

Query natijasi pagination bilan qaytadi.

Filter key conditiondan keyin qo‘llanishi mumkin, shu sababli o‘qilgan capacity kamaymasligi ehtimoli bor.

Scan

Scan table yoki indexdagi barcha itemlarni ko‘rib chiqadi.

Filter faqat natijani kamaytiradi, o‘qilgan data hajmini har doim kamaytirmaydi.

Katta production table’da scan qimmat.

Parallel scan analytics yoki migration uchun boshqariladigan segmentlarda ishlatilishi mumkin.

Secondary index

Global secondary index

Boshqa partition va sort keyga ega.

U mustaqil partitionlangan index sifatida ishlaydi.

Update asynchronous bo‘lishi mumkin.

Local secondary index

Asosiy table bilan bir partition key, boshqa sort key.

Table yaratilishida belgilanadi va imkoniyatlari cheklangan bo‘lishi mumkin.

Capacity

Requestlar read va write capacity birliklari bilan o‘lchanishi mumkin.

Model:

  • provisioned;
  • on-demand.

Item hajmi, consistency va operation turi capacity sarfiga ta’sir qiladi.

Traffic spike va throttling metriclari kuzatiladi.

Adaptive capacity

Storage hot partition loadini ma’lum darajada boshqa resource bilan muvozanatlashtirishi mumkin.

Bu noto‘g‘ri partition keyni to‘liq tuzatmaydi.

Bitta key fizik va logical limitlarga urilishi mumkin.

Consistent read

Read eventual yoki strongly consistent variantga ega bo‘lishi mumkin.

Strong read ko‘proq capacity va latency talab qilishi mumkin.

Global replication yoki secondary indexda consistency imkoniyati farq qiladi.

Conditional write

Item faqat condition true bo‘lsa update qilinadi.

Masalan:

version = 7
attribute_not_exists(id)
stock >= quantity

Bu optimistic locking va uniquenessga yaqin patternlar uchun ishlatiladi.

Transaction

Bir nechta item uchun atomic read yoki write transactionlari qo‘llanishi mumkin.

Transaction:

talablariga ega.

Data model ko‘p transaction ehtiyojini kamaytirishga intiladi.

TTL

Item attribute’i expiration timestamp sifatida belgilanadi.

Expired item background jarayonda o‘chiriladi.

U aniq sekundda darhol yo‘qolmasligi mumkin.

Application expired vaqtni o‘zi ham tekshirishi mumkin.

Stream

Table’dagi insert, update va delete hodisalari ordered stream shardlariga yozilishi mumkin.

Consumer:

uchun foydalanadi.

Har item keyi bo‘yicha event tartibi saqlanishi mumkin.

Global table

Table bir nechta regionda replicated bo‘lishi mumkin.

Har region local write qabul qilishi ehtimoli bor.

Conflict resolution timestamp yoki platforma qoidalariga asoslanadi.

Parallel bir xil item update’lari business conflict yaratishi mumkin.

Backup

Point-in-time recovery ma’lum retention oynasida table holatini tiklashga yordam beradi.

On-demand backup uzoqroq saqlanishi mumkin.

Restore yangi table yaratishi va index, policy yoki stream konfiguratsiyasini alohida tiklash talab qilishi mumkin.

Pagination

Query va scan javobi bir requestda cheklangan hajm qaytaradi.

Davom etish uchun oxirgi evaluated key keyingi requestga beriladi.

Bu cursor opaque saqlanadi va filter hamda index bilan bir xil contextda ishlatiladi.

Optimistic locking

Item ichida version attribute saqlanadi.

Update faqat kutilgan version mos bo‘lsa bajariladi.

Muvaffaqiyatli update versionni oshiradi.

Conflict bo‘lsa client yangi itemni o‘qib, business qoidaga ko‘ra retry yoki rad etadi.

Batch operation

Batch read va write network requestlarini birlashtiradi. Ayrim itemlar throttling sabab bajarilmasligi mumkin, shuning uchun unprocessed ro‘yxat backoff bilan qayta yuboriladi.

Bog‘liq tushunchalar

Key-value database, Document database, Partition key, Sort key, Secondary index, Conditional write, TTL, Change stream, Global table, NoSQL