Best practice per la gestione dei dati di serie temporali in DynamoDB - 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 la gestione dei dati di serie temporali in DynamoDB

I principi di progettazione generali di Amazon DynamoDB consigliano di mantenere al minimo il numero di tabelle utilizzate. Per la maggior parte delle applicazioni, una singola tabella è sufficiente. Tuttavia, spesso è meglio gestire i dati delle serie temporali usando una tabella per applicazione per periodo.

Modello di progetto per i dati di serie temporali

Prendi in considerazione uno scenario tipico relativo alle serie temporali, in cui vuoi tenere traccia di un elevato volume di eventi. Il tuo modello di accesso in scrittura equivale a quello di tutti gli eventi registrati con la data odierna. Il tuo modello di accesso in lettura potrebbe prevedere la lettura degli eventi odierni con più frequenza, degli eventi di ieri con meno frequenza e quindi degli eventi più vecchi con una frequenza ridotta. Una soluzione di gestione prevede l'aggiunta della data e dell'ora correnti alla chiave primaria.

Il seguente modello di progetto spesso è in grado di gestire questo tipo di scenario in modo efficace:

  • Crea una tabella per periodo che abbia la capacità in lettura e scrittura e gli indici richiesti.

  • Prima della fine di ogni periodo, prepara la tabella per il periodo successivo. Non appena termina il periodo corrente, dirigi il traffico degli eventi alla nuova tabella. A queste tabelle puoi assegnare dei nomi che specifichino i periodi registrati.

  • Non appena non è più possibile scrivere su una tabella, riduci la capacità di scrittura assegnata a un valore inferiore (ad esempio, 1WCU) e fornisci la capacità di lettura appropriata. Riduci la capacità in lettura assegnata delle tabelle precedenti man mano che passa il tempo. Puoi scegliere di archiviare o eliminare le tabelle di cui utilizzi raramente o mai i contenuti.

L'idea è allocare le risorse necessarie per il periodo corrente con il volume di traffico più alto e di ridurre il provisioning per le tabelle precedenti che non vengono utilizzate attivamente, riducendo così i costi. A seconda delle esigenze aziendali, può essere utile partizionare la scrittura per distribuire equamente il traffico alla chiave di partizione logica. Per ulteriori informazioni, consulta Utilizzo dello sharding di scrittura per distribuire i carichi di lavoro in modo uniforme nella tabella DynamoDB.

Esempi di tabella di serie temporali

Di seguito è presentato un esempio di dati delle serie temporali in cui viene eseguito il provisioning della tabella corrente con una capacità in lettura/scrittura più alta, mentre le tabelle precedenti vengono ridimensionate perché utilizzate di rado.

Schema di tabella di volumi elevati di dati di serie temporali.