DynamoDB - Panoramica
DynamoDB consente agli utenti di creare database in grado di archiviare e recuperare qualsiasi quantità di dati e di servire qualsiasi quantità di traffico. Distribuisce automaticamente i dati e il traffico sui server per gestire dinamicamente le richieste di ogni cliente e mantiene anche prestazioni veloci.
DynamoDB contro RDBMS
DynamoDB utilizza un modello NoSQL, il che significa che utilizza un sistema non relazionale. La tabella seguente evidenzia le differenze tra DynamoDB e RDBMS -
Attività comuni | RDBMS | DynamoDB |
---|---|---|
Connect to the Source | Utilizza una connessione persistente e comandi SQL. | Utilizza richieste HTTP e operazioni API |
Create a Table | Le sue strutture fondamentali sono le tabelle e devono essere definite. | Utilizza solo chiavi primarie e nessuno schema durante la creazione. Utilizza varie fonti di dati. |
Get Table Info | Tutte le informazioni sulla tabella rimangono accessibili | Vengono rivelate solo le chiavi primarie. |
Load Table Data | Utilizza righe composte da colonne. | Nelle tabelle, utilizza elementi costituiti da attributi |
Read Table Data | Utilizza istruzioni SELECT e istruzioni di filtro. | Utilizza GetItem, Query e Scan. |
Manage Indexes | Utilizza indici standard creati tramite istruzioni SQL. Le modifiche si verificano automaticamente al cambio di tabella. | Utilizza un indice secondario per ottenere la stessa funzione. Richiede specifiche (chiave di partizione e chiave di ordinamento). |
Modify Table Data | Utilizza un'istruzione UPDATE. | Utilizza un'operazione UpdateItem. |
Delete Table Data | Utilizza un'istruzione DELETE. | Utilizza un'operazione DeleteItem. |
Delete a Table | Utilizza un'istruzione DROP TABLE. | Utilizza un'operazione DeleteTable. |
Vantaggi
I due principali vantaggi di DynamoDB sono la scalabilità e la flessibilità. Non impone l'uso di una particolare origine dati e struttura, consentendo agli utenti di lavorare praticamente con qualsiasi cosa, ma in modo uniforme.
Il suo design supporta anche un'ampia gamma di utilizzo, da attività e operazioni più leggere a funzionalità aziendali impegnative. Consente inoltre un semplice utilizzo di più linguaggi: Ruby, Java, Python, C #, Erlang, PHP e Perl.
Limitazioni
DynamoDB soffre di alcune limitazioni, tuttavia, queste limitazioni non creano necessariamente problemi enormi o ostacolano un solido sviluppo.
Puoi rivederli dai seguenti punti:
Capacity Unit Sizes- Un'unità di capacità di lettura è una singola lettura coerente al secondo per elementi non superiori a 4 KB. Un'unità di capacità di scrittura è una singola scrittura al secondo per elementi non superiori a 1 KB.
Provisioned Throughput Min/Max- Tutte le tabelle e gli indici secondari globali hanno un minimo di un'unità di capacità di lettura e una di scrittura. I massimi dipendono dalla regione. Negli Stati Uniti, 40.000 letture e scritture rimangono il limite per tabella (80.000 per account) e altre regioni hanno un limite di 10.000 per tabella con un limite per account di 20.000.
Provisioned Throughput Increase and Decrease - È possibile aumentarlo tutte le volte che è necessario, ma le riduzioni rimangono limitate a non più di quattro volte al giorno per tabella.
Table Size and Quantity Per Account - Le dimensioni delle tabelle non hanno limiti, ma gli account hanno un limite di 256 tabelle a meno che tu non richieda un limite superiore.
Secondary Indexes Per Table - Sono consentiti cinque locali e cinque globali.
Projected Secondary Index Attributes Per Table - DynamoDB consente 20 attributi.
Partition Key Length and Values - La loro lunghezza minima è di 1 byte e massima di 2048 byte, tuttavia DynamoDB non pone limiti ai valori.
Sort Key Length and Values - La sua lunghezza minima è di 1 byte e massima di 1024 byte, senza limiti di valori a meno che la tabella non utilizzi un indice secondario locale.
Table and Secondary Index Names - I nomi devono avere una lunghezza minima di 3 caratteri e un massimo di 255. Utilizzano i seguenti caratteri: AZ, az, 0-9, "_", "-" e ".".
Attribute Names - Un carattere rimane il minimo e 64 KB il massimo, con eccezioni per chiavi e determinati attributi.
Reserved Words - DynamoDB non impedisce l'uso di parole riservate come nomi.
Expression Length- Le stringhe di espressione hanno un limite di 4KB. Le espressioni di attributi hanno un limite di 255 byte. Le variabili di sostituzione di un'espressione hanno un limite di 2 MB.