Utilisation de vues dans Amazon DocumentDB 8.0 - Amazon DocumentDB

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.

Utilisation de vues dans Amazon DocumentDB 8.0

  • Amazon DocumentDB 8.0 prend désormais en charge les vues. Les vues fonctionnent comme des collections virtuelles qui présentent des données basées sur des opérations d'agrégation spécifiées. Lorsque vous créez une vue, vous définissez une requête qui transforme les données d'une ou de plusieurs collections sources. Amazon DocumentDB 8.0 exécute cette requête à chaque accès à la vue, sans consommer de ressources de stockage supplémentaires. Contrairement aux collections standard, les vues d'Amazon DocumentDB 8.0 ne stockent pas de documents sur disque, ce qui en fait une solution efficace pour présenter des données transformées ou filtrées aux applications. Pour créer une vue dans Amazon DocumentDB, vous pouvez utiliser la commande CreateView ou la méthode d'assistance DB.createView () :

    db.createView("viewName","sourceCollection", [ { $match: { status: "active" } }, { $project: { _id: 1, name: 1, email: 1 } } ] )

    Cela crée une vue nommée « ViewName » basée sur « SourceCollection » qui inclut uniquement les documents actifs et les projets, uniquement les champs _id, name et email. Les vues dans Amazon DocumentDB sont en lecture seule. Les opérations d'écriture sur les vues renverront une erreur. Pour des performances optimales avec de grands ensembles de données, vous pouvez structurer vos pipelines de vues afin d'optimiser l'efficacité. Pour les pipelines d'agrégation complexes, il est recommandé d'utiliser l'étape $match comme première étape ou au début du pipeline afin de réduire le nombre de documents que les étapes suivantes doivent traiter, améliorant ainsi les performances des requêtes.

Bonnes pratiques

Certaines des meilleures pratiques à suivre avec Views sont répertoriées ci-dessous.

  • Filtrer tôt : utilisez les étapes $match dès le début de la visualisation des pipelines afin de réduire la quantité de données traitées.

  • Évitez les agrégations complexes : pour les vues fréquemment consultées comportant des agrégations complexes, pensez à créer une collection distincte avec des résultats précalculés qui sont mis à jour périodiquement.

  • Planification de l'index : assurez-vous que les champs utilisés dans les pipelines de vues, en particulier dans les opérations $match et $sort, sont correctement indexés dans la collection source.

  • Optimisation des requêtes : utilisez la commande explain pour comprendre comment vos requêtes de vue sont exécutées et optimisez-les en conséquence.

  • Alternatives pour les vues : étant donné les différences fonctionnelles entre les vues Amazon DocumentDB et MongoDB, envisagez d'utiliser des collections régulières avec des mises à jour planifiées comme alternative aux vues lorsque vous rencontrez des limites.

Compatibilité avec les opérateurs d'agrégateurs

Amazon DocumentDB prend en charge de nombreux opérateurs d'agrégation dans les définitions de vues tout en continuant à étendre la compatibilité. Lorsque vous utilisez des vues, concentrez-vous sur les opérateurs pris en charge suivants :

  • $match pour filtrer les documents

  • $project pour la sélection et la transformation des champs

  • $addFields pour ajouter des champs calculés

  • $sort pour les résultats de commande

  • $limit et $skip pour la pagination

Certains opérateurs spécialisés tels que $currentOp, $replaceRoot et $GeoNear fonctionnent actuellement sur des requêtes d'agrégation directe plutôt que sur des définitions de vues.

Tirer parti des index et des vues

Les vues dans Amazon DocumentDB 8.0 utilisent les index de la collection sous-jacente. Par conséquent, vous ne pouvez pas créer, supprimer ou reconstruire des index directement sur une vue. Cependant, des index bien conçus sur la collection source peuvent améliorer de manière significative les performances des requêtes de vue. Voici quelques étapes pour optimiser les performances des requêtes sur les vues :

  • Assurez-vous que les index appropriés existent sur les champs de collection source utilisés dans le pipeline de la vue, en particulier dans les opérations $match et $sort

  • Utilisez la méthode explain () pour analyser les plans d'exécution des requêtes et vérifier l'utilisation de l'index. Par exemple, db.viewName.find({...}).explain()