Best practice per l'implementazione di un sistema di database ibrido - Amazon DynamoDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Best practice per l'implementazione di un sistema di database ibrido

In alcune circostanze, la migrazione da uno o più sistemi di gestione di database relazionali (RDBMS) ad Amazon DynamoDB può non essere vantaggiosa. In questi casi, è meglio creare un sistema ibrido.

Se non desideri migrare tutto a DynamoDB

Ad esempio, alcune organizzazioni hanno investito molto nel codice che produce una serie di rapporti necessari per la contabilità e le operazioni. Quanto tempo serve per generare un rapporto non è importante per loro. La flessibilità del sistema relazionale va bene per questo tipo di attività e ricreare tutti quei rapporti in un contesto NoSQL può essere molto difficile.

Alcune organizzazioni mantengono anche una serie di sistemi relazionali di legacy che hanno acquisito o ereditato nei decenni. La migrazione dei dati da questi sistemi può essere troppo rischioso e costoso per giustificare gli sforzi necessari.

Tuttavia, le stesse organizzazioni possono rendersi conto che le loro operazioni dipendono da un alto traffico sui siti Web rivolti ai clienti, dove i tempi di risposta in millisecondi sono essenziali. I sistemi relazionali non possono ridimensionarsi per soddisfare questo requisito se non con spese importanti (e spesso inaccettabili).

In queste situazioni, la risposta può essere la creazione di un sistema ibrido, in cui DynamoDB crea una vista materializzata dei dati archiviati in uno o più sistemi relazionali e gestisce richieste ad alto traffico in questa vista. Questo tipo di sistema può potenzialmente ridurre i costi eliminando l'hardware del server, la manutenzione e le licenze RDBMS necessarie in precedenza per gestire un traffico rivolto ai clienti.

Come può essere implementato un sistema ibrido

DynamoDB può sfruttare DynamoDB Streams AWS Lambda e integrarsi perfettamente con uno o più sistemi di database relazionali esistenti:

Diagramma che illustra come integrare DynamoDB con i sistemi SQL esistenti.

Un sistema che integra DynamoDB Streams e può offrire diversi vantaggi: AWS Lambda

  • Può operare come cache persistente di visualizzazioni materializzate.

  • Può essere configurato per l'inserimento di dati graduale quando i dati vengono richiesti e quando i dati vengono modificati nel sistema SQL. Ciò significa che l'intera vista non deve essere prepopolata. Questo a sua volta significa che è più probabile che la capacità di throughput assegnata venga utilizzata in modo efficiente.

  • Ha costi amministrativi bassi ed è altamente disponibile e affidabile.

Per l'implementazione di questo tipo di integrazione, essenzialmente tre tipi di interoperabilità devono essere forniti.

Codice necessario per integrare DynamoDB con i sistemi SQL esistenti.
  1. Riempi la cache di DynamoDB in modo incrementale. Quando viene eseguita una query su un elemento, ricercarla prima in DynamoDB. Se non è presente, cercarla nel sistema SQL e caricarla in DynamoDB.

  2. Scrivi tramite una cache di DynamoDB. Quando un cliente modifica un valore in DynamoDB, viene attivata una funzione Lambda per scrivere i nuovi dati nel sistema SQL.

  3. Aggiorna DynamoDB dal sistema SQL. Quando i processi interni come la gestione dell'inventario o i prezzi modificano un valore nel sistema SQL, le procedure archiviate vengono attivate per propagare la modifica nella vista materializzata di DynamoDB.

Queste operazioni sono semplici e non tutte sono necessarie per ogni scenario.

Una soluzione ibrida può essere utile quando si desidera contare principalmente su DynamoDB ma anche mantenere un sistema relazionale piccolo per le query una tantum o per le operazioni che necessitano di sicurezza speciale o che non sono urgenti.