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.