Aws Dynamodb
DodaTech
2 min read
title: "Cum să lucrezi cu DynamoDB în AWS — Ghid rapid" description: "Creare tabele DynamoDB, inserare itemi, interogări și gestionare indexuri în AWS" weight: 818 date: 2025-01-15 draft: false tags: [aws, dynamodb, nosql, baze-de-date, quick-fix]
Amazon DynamoDB este un serviciu de baze de date NoSQL complet gestionat, care oferă performanță la nivel de milisecunde la orice scară, ideal pentru aplicații web, mobile și IoT.
Problema
Bazele de date relaționale tradiționale au dificultăți cu scalarea orizontală și performanța la volume mari de date. Administrarea clusterelor și optimizarea interogărilor devin complexe pe măsură ce aplicația crește.
Abordarea Greșită
-- Interogare lentă pe MySQL cu milioane de rânduri
SELECT * FROM users WHERE email = 'test@example.com';
-- Index lipsă → full table scan (secunde)
Abordarea Corectă
Creează un tabel DynamoDB și interoghează-l:
# Creare tabel
aws dynamodb create-table \
--table-name Users \
--attribute-definitions AttributeName=UserId,AttributeType=S \
--key-schema AttributeName=UserId,KeyType=HASH \
--billing-mode PAY_PER_REQUEST
# Verificare tabel
aws dynamodb describe-table --table-name Users
Output:
{
"Table": {
"TableName": "Users",
"TableStatus": "ACTIVE",
"ItemCount": 0
}
}
Operațiuni CRUD
# Inserare item
aws dynamodb put-item \
--table-name Users \
--item '{
"UserId": {"S": "user-1"},
"Nume": {"S": "Popescu"},
"Email": {"S": "popescu@example.com"},
"Varsta": {"N": "30"}
}'
# Citire item după cheie
aws dynamodb get-item \
--table-name Users \
--key '{"UserId": {"S": "user-1"}}'
# Interogare
aws dynamodb query \
--table-name Users \
--key-condition-expression "UserId = :uid" \
--expression-attribute-values '{":uid": {"S": "user-1"}}'
# Scanare (evită în producție)
aws dynamodb scan --table-name Users --limit 10
Indexuri Secundare
# Creare GSI pentru interogări după Email
aws dynamodb update-table \
--table-name Users \
--attribute-definitions AttributeName=Email,AttributeType=S \
--global-secondary-index-updates '[{
"Create": {
"IndexName": "EmailIndex",
"KeySchema": [{"AttributeName": "Email", "KeyType": "HASH"}],
"Projection": {"ProjectionType": "ALL"}
}
}]'
Greșeli Comune
- Scan în loc de Query —
scancitește tot tabelul; foloseștequerycu cheia primară. - Fără GSI pentru pattern-uri de acces — proiectează tabelele pe baza modului în care interoghezi.
- Throughput provisionat ineficient — folosește
PAY_PER_REQUESTpentru trafic imprevizibil. - Item-uri prea mari — DynamoDB limitează item-urile la 400 KB.
- Fără TTL — setează Time-to-Live pentru ștergerea automată a datelor vechi.
FAQ
Construit de dezvoltătorii Doda Browser, DodaZIP și Durga Antivirus Pro. DodaTech integrează securitatea în fiecare soluție cloud.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro