View a markdown version of this page

Bonnes pratiques de gestion des données de séries temporelles dans DynamoDB - Amazon DynamoDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Bonnes pratiques de gestion des données de séries temporelles dans DynamoDB

Les principes de conception généraux dans Amazon DynamoDB recommandent d’utiliser un nombre minimum de tables. Pour la plupart des applications, une seule table est suffisante. Cependant, pour les données chronologiques, il sera souvent préférable d’utiliser une table par application et par période.

Modèle de création des données de séries temporelles

Prenons l’exemple d’un scénario classique avec des données chronologiques, dans lequel vous voulez suivre un grand nombre d’événements. Votre modèle d’accès en écriture se résume au fait que tous les événements enregistrés ont la date du jour. Votre modèle d’accès en lecture se résume comme suit : la lecture des événements du jour est la lecture effectuée le plus fréquemment, la lecture des événements d’hier étant effectuée un peu moins fréquemment et celle des événements des jours suivants étant effectuée très rarement. Un moyen de le faire est d’intégrer la date et l’heure actuelles dans la clé primaire.

Le modèle de création suivant permet souvent de gérer de façon efficace ce scénario :

  • Créez une table par période, à laquelle vous allouez la capacité en lecture et écriture requise et les index nécessaires.

  • Avant la fin de chaque période, générez à l’avance la table pour la période suivante. Lorsque la période en cours se termine, dirigez le trafic d’événements vers la nouvelle table. Vous pouvez affecter à ces tables des noms indiquant les périodes auxquelles elles sont associées.

  • Dès qu’une table ne fait plus l’objet d’écritures, réduisez sa capacité en écriture allouée (par exemple 1 WCU) et allouez la capacité en lecture appropriée. Réduisez la capacité en lecture allouée aux tables plus anciennes à mesure qu’elles vieillissent. Vous pouvez choisir d’archiver ou de supprimer les tables dont le contenu est rarement ou jamais nécessaire.

L’idée est d’allouer les ressources nécessaires pour la période en cours, qui présente le plus haut volume de trafic, et de réduire la capacité allouée aux anciennes tables, qui ne sont pas utilisées activement, de manière à économiser de l’argent. En fonction des besoins de votre entreprise, vous devrez peut-être envisager d’écrire le partitionnement de manière à répartir le trafic uniformément selon la clé de partition logique. Pour de plus amples informations, veuillez consulter Utilisation du partitionnement d’écriture pour une répartition équitable des charges de travail dans votre table DynamoDB.

Optimisez les coûts de stockage grâce à la classe de Standard-IA table

DynamoDB propose deux classes de tables : DynamoDB Standard et DynamoDB Access (DynamoDB). Standard-Infrequent Standard-IA La classe Standard-IA table réduit vos coûts de stockage tout en augmentant le coût du débit de lecture et d'écriture. C'est une solution idéale lorsque le stockage représente la majeure partie du coût d'une table et que la table est rarement consultée.

Ce compromis s'inscrit naturellement dans le schéma des séries chronologiques. La table de la période en cours reçoit la majeure partie du trafic de lecture et d'écriture. Conservez-la donc dans la classe de table DynamoDB Standard, où le débit est moins coûteux. À mesure qu'une table cesse d'être utilisée, elle est rarement écrite (ou pas du tout) et lue rarement, tandis que vous continuez à conserver ses données. Pour ces anciennes tables, le stockage représente généralement le coût le plus important. Le fait de passer à la classe des Standard-IA tables peut donc réduire votre coût global.

Lorsque vous appliquez des classes de tables à des tables de séries chronologiques, tenez compte des points suivants :

  • Conservez la période actuelle (active) dans la classe de table DynamoDB Standard. Le coût de débit plus élevé de Standard-IA pourrait compenser les économies de stockage réalisées pour une table traitant un volume élevé de lectures et d'écritures.

  • Passez à la table d'une période une Standard-IA fois qu'elle n'est plus activement écrite et qu'elle n'est plus consultée fréquemment, mais que vous devez tout de même conserver ses données (par exemple, pour des raisons de conformité ou pour des requêtes historiques occasionnelles).

  • Vous pouvez définir la classe de table lorsque vous créez une table ou la modifier ultérieurement. Évaluez le rapport entre le coût du stockage et le débit de chaque table avant le changement, et surveillez les coûts après le changement.

Pour plus d'informations sur les classes de tables et sur la manière de choisir entre elles, reportez-vous aux Classes de tables DynamoDB sections etÉvaluation de la sélection de votre classe de table DynamoDB.

Exemples de tableaux de séries chronologiques

Voici un exemple de série chronologique dans lequel la table actuelle est provisionnée à une read/write capacité supérieure et les anciennes tables sont réduites car elles ne sont pas fréquemment consultées.

Schéma de table pour les données chronologiques à volume élevé.