View a markdown version of this page

Clusters élastiques Amazon DocumentDB : comment ça marche - 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.

Clusters élastiques Amazon DocumentDB : comment ça marche

Les rubriques de cette section fournissent des informations sur les mécanismes et les fonctions qui alimentent les clusters élastiques Amazon DocumentDB.

Partage élastique des clusters Amazon DocumentDB

Les clusters élastiques Amazon DocumentDB utilisent le partitionnement basé sur le hachage pour partitionner les données sur un système de stockage distribué. Le partitionnement, également appelé partitionnement, divise les grands ensembles de données en petits ensembles de données répartis sur plusieurs nœuds, ce qui vous permet de faire évoluer votre base de données au-delà des limites de mise à l'échelle verticale. Les clusters élastiques utilisent la séparation, ou « découplage », du calcul et du stockage dans Amazon DocumentDB, ce qui vous permet d'évoluer indépendamment les uns des autres. Plutôt que de repartitionner les collections en déplaçant de petits blocs de données entre des nœuds de calcul, les clusters élastiques copient les données de manière efficace au sein du système de stockage distribué.

Un cluster élastique Amazon DocumentDB contient plusieurs partitions pour diviser les grands ensembles de données en ensembles de données plus petits, ce qui permet d'améliorer la mise à l'échelle de la base de données.

Définitions des fragments

Définitions de la nomenclature des fragments :

  • Partition  : une partition fournit le calcul nécessaire à un cluster élastique. Il comportera une seule instance d'écriture et 0 à 15 répliques lues. Par défaut, un fragment aura deux instances : une réplique en écriture et une réplique en lecture unique. Vous pouvez configurer un maximum de 32 partitions et chaque instance de partition peut avoir un maximum de 64 vCPU.

  • Clé de partition  : une clé de partition est un champ obligatoire de vos documents JSON dans les collections partitionnées que les clusters élastiques utilisent pour distribuer le trafic de lecture et d'écriture vers la partition correspondante.

  • Collection fragmentée  : une collection fragmentée est une collection dont les données sont distribuées sur un cluster élastique dans des partitions de données.

  • Partition  : une partition est une partie logique de données partitionnées. Lorsque vous créez une collection fragmentée, les données sont organisées en partitions au sein de chaque partition automatiquement en fonction de la clé de partition. Chaque fragment possède plusieurs partitions.

Distribution des données entre les partitions configurées

Créez une clé de partition contenant de nombreuses valeurs uniques. Une bonne clé de partition répartira uniformément vos données entre les partitions sous-jacentes, offrant ainsi à votre charge de travail le meilleur débit et les meilleures performances. L'exemple suivant concerne les données relatives au nom des employés qui utilisent une clé de partition nommée « user_id » :

Les données d'un jeu de données sont réparties uniformément sur de nombreux fragments.

DocumentDB utilise le hachage pour partitionner vos données entre les partitions sous-jacentes. Les données supplémentaires sont insérées et distribuées de la même manière :

Les données d'un nouvel ensemble de données sont distribuées entre les fragments via le hachage.

Lorsque vous agrandissez votre base de données en ajoutant des fragments supplémentaires, Amazon DocumentDB redistribue automatiquement les données :

Les données d'un jeu de données sont redistribuées lorsque des fragments supplémentaires sont ajoutés à la base de données.

Migration de clusters élastiques

Amazon DocumentDB prend en charge la migration des données partitionnées de MongoDB vers des clusters élastiques. Les méthodes de migration hors ligne, en ligne et hybrides sont prises en charge. Pour de plus amples informations, veuillez consulter Migration et mise à niveau d'Amazon DocumentDB.

Mise à l'échelle des clusters élastiques

Les clusters élastiques Amazon DocumentDB permettent d'augmenter le nombre de partitions (scalout) dans votre cluster élastique et le nombre de vCPU appliqués à chaque partition (scal-up). Vous pouvez également réduire le nombre de partitions et la capacité de calcul (vCPU) selon vos besoins.

Pour connaître les meilleures pratiques en matière de dimensionnement, consultezMise à l'échelle des clusters élastiques.

Note

Cluster-level la mise à l'échelle est également disponible. Pour de plus amples informations, veuillez consulter Mise à l'échelle des clusters Amazon DocumentDB.

Fiabilité des clusters élastiques

Amazon DocumentDB est conçu pour être fiable, durable et tolérant aux pannes. Pour améliorer la disponibilité, les clusters élastiques déploient deux nœuds par partition placés dans différentes zones de disponibilité. Amazon DocumentDB inclut plusieurs fonctionnalités automatiques qui en font une solution de base de données fiable. Pour de plus amples informations, veuillez consulter Fiabilité d'Amazon DocumentDB.

Stockage et disponibilité des clusters élastiques

Les données Amazon DocumentDB sont stockées dans un volume de cluster, qui est un volume virtuel unique qui utilise des disques SSD. Un volume de cluster se compose de six copies de vos données, qui sont répliquées automatiquement dans plusieurs zones de disponibilité d'une seule AWS région. Cette réplication garantit que vos données sont hautement durables, avec une possibilité moindre de perte des données. Elle permet également de vous assurer que votre cluster est plus disponible pendant un basculement, car les copies de vos données existent déjà dans d'autres zones de disponibilité. Pour plus de détails sur le stockage, la haute disponibilité et la réplication, consultezAmazon DocumentDB : comment ça marche.

Différences fonctionnelles entre Amazon DocumentDB 4.0 et Elastic Clusters

Les différences fonctionnelles suivantes existent entre Amazon DocumentDB 4.0 et Elastic Clusters.

  • Les résultats proviennent de top fragments et collStats sont partitionnés par ceux-ci. Pour les collections fragmentées, les données sont réparties entre plusieurs partitions et les collStats rapports sont agrégés collScans à partir des partitions.

  • Les statistiques de collection provenant top et collStats pour les collections partitionnées sont réinitialisées lorsque le nombre de fragments de cluster est modifié.

  • Le rôle intégré de sauvegarde est désormais pris en chargeserverStatus. Action : les développeurs et les applications dotés d'un rôle de sauvegarde peuvent collecter des statistiques sur l'état du cluster Amazon DocumentDB.

  • Le SecondaryDelaySecs champ remplace slaveDelay en replSetGetConfig sortie.

  • La hello commande replace isMaster : hello renvoie un document qui décrit le rôle du cluster élastique.

  • Dans les clusters élastiques, $elemMatch l'opérateur correspond uniquement aux documents du premier niveau d'imbrication d'un tableau. Dans Amazon DocumentDB 4.0, l'opérateur parcourt tous les niveaux avant de renvoyer les documents correspondants. Par exemple :

db.foo.insert( [ {a: {b: 5}}, {a: {b: [5]}}, {a: {b: [3, 7]}}, {a: [{b: 5}]}, {a: [{b: 3}, {b: 7}]}, {a: [{b: [5]}]}, {a: [{b: [3, 7]}]}, {a: [[{b: 5}]]}, {a: [[{b: 3}, {b: 7}]]}, {a: [[{b: [5]}]]}, {a: [[{b: [3, 7]}]]} ]); // Elastic clusters > db.foo.find({a: {$elemMatch: {b: {$elemMatch: {$lt: 6, $gt: 4}}}}}, {_id: 0}) { "a" : [ { "b" : [ 5 ] } ] } // Docdb 4.0: traverse more than one level deep > db.foo.find({a: {$elemMatch: {b: {$elemMatch: {$lt: 6, $gt: 4}}}}}, {_id: 0}) { "a" : [ { "b" : [ 5 ] } ] } { "a" : [ [ { "b" : [ 5 ] } ] ] }
  • La projection « $ » dans Amazon DocumentDB 4.0 renvoie tous les documents avec tous les champs. Avec les clusters élastiques, la find commande avec une projection « $ » renvoie les documents correspondant au paramètre de requête contenant uniquement le champ correspondant à la projection « $ ».

  • Dans les clusters élastiques, les find commandes $regex et les paramètres de $options requête renvoient une erreur : « Impossible de définir des options à la fois dans $regex et $options ».

  • Avec les clusters élastiques, renvoie $indexOfCP désormais « -1 » lorsque :

    • la sous-chaîne ne se trouve pas dans lestring expression, ou

    • startest un nombre supérieur àend, ou

    • startest un nombre supérieur à la longueur en octets de la chaîne.

    Dans Amazon DocumentDB 4.0, $indexOfCP renvoie « 0 » lorsque la start position est un nombre supérieur end ou égal à la longueur en octets de la chaîne.

  • Avec les clusters élastiques, les opérations de projection dans_id fields, par exemple{"_id.nestedField" : 1}, renvoient des documents qui incluent uniquement le champ projeté. Par ailleurs, dans Amazon DocumentDB 4.0, les commandes de projection de champs imbriquées ne filtrent aucun document.