

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Clústeres elásticos de Amazon DocumentDB: cómo funcionan
<a name="elastic-how-it-works"></a>

En los temas de esta sección se observa información acerca de los mecanismos y funciones que impulsan los clústeres elásticos de Amazon DocumentDB.

**Topics**
+ [Partición en los clústeres elásticos de Amazon DocumentDB](#elastic-how-it-works.sharding)
+ [Migración de clústeres elásticos](#elastic-how-it-works-migration)
+ [Escalado de clústeres elásticos](#elastic-how-it-works-scaling)
+ [Fiabilidad de los clústeres elásticos](#elastic-reliability)
+ [Almacenamiento y disponibilidad de clústeres elásticos](#how-it-works-storage)
+ [Diferencias funcionales entre Amazon DocumentDB 4.0 y los clústeres elásticos](#elastic-functional-differences)

## Partición en los clústeres elásticos de Amazon DocumentDB
<a name="elastic-how-it-works.sharding"></a>

Los clústeres elásticos de Amazon DocumentDB utilizan particiones basadas en hash para hacer particiones de datos en un sistema de almacenamiento distribuido. La partición, también conocida como particionamiento, divide los conjuntos de datos grandes en conjuntos de datos pequeños en varios nodos, lo que le permite escalar horizontalmente la base de datos más allá de los límites de escalado vertical. Los clústeres elásticos utilizan la separación (o «disociación») del procesamiento y el almacenamiento en Amazon DocumentDB, lo que le permite a usted escalar de forma independiente. En lugar de volver a particionar las colecciones moviendo pequeñas particiones de datos entre los nodos de cómputo, los clústeres elásticos copian los datos de manera eficiente dentro del sistema de almacenamiento distribuido.

![\[Un clúster elástico de Amazon DocumentDB contiene varias particiones para dividir conjuntos de datos grandes en conjuntos más pequeños, lo que permite mejorar el escalado de la base de datos.\]](http://docs.aws.amazon.com/es_es/documentdb/latest/developerguide/images/shard-architecture.png)


### Definiciones de particiones
<a name="w2aac37c23b7b7"></a>

Definiciones de la nomenclatura de particiones:
+ **Partición**: una partición proporciona el cómputo para un clúster elástico. Tendrá una sola instancia de escritura y de 0 a 15 réplicas de lectura. De forma predeterminada, una partición tendrá dos instancias: una de escritura y una réplica de lectura única. Puede configurar un máximo de 32 particiones y cada instancia de partición puede tener un máximo de 64 v. CPUs
+ **Clave de partición**: una clave de partición es un campo obligatorio en los documentos JSON de las colecciones con particiones, que los clústeres elásticos utilizan para distribuir el tráfico de lectura y escritura a la partición correspondiente. 
+ **Colección con particiones**: en una colección con particiones, los datos se distribuyen dentro de un clúster elástico en particiones de datos.
+ **Partición**: una partición es una parte lógica de los datos fragmentados. Al crear una colección con particiones, los datos se organizan automáticamente en particiones dentro de cada partición en función de la clave de la partición. Cada fragmento tiene varias particiones.

### Distribución de los datos entre las particiones configuradas
<a name="w2aac37c23b7b9"></a>

Cree una clave de partición que tenga muchos valores únicos. Una buena clave de partición particionará uniformemente sus datos entre las particiones subyacentes, proporcionando a su carga de trabajo el mejor rendimiento y desempeño. En el siguiente ejemplo, se muestran los datos del nombre de un empleado que utilizan una clave de partición denominada “user\$1id”:

![\[Los datos de un conjunto de datos se distribuyen uniformemente en varias particiones.\]](http://docs.aws.amazon.com/es_es/documentdb/latest/developerguide/images/sharding-detail-1.png)


DocumentDB utiliza la partición hash para particionar los datos en las particiones subyacentes. Los datos adicionales se insertan y distribuyen de la misma manera:

![\[Los datos de un nuevo conjunto de datos se distribuyen entre las particiones mediante la partición de hash.\]](http://docs.aws.amazon.com/es_es/documentdb/latest/developerguide/images/sharding-detail-2.png)


Cuando escala horizontalmente la base de datos añadiendo particiones adicionales, Amazon DocumentDB redistribuye automáticamente los datos:

![\[Los datos de un conjunto de datos se redistribuyen cuando se añaden particiones adicionales a la base de datos.\]](http://docs.aws.amazon.com/es_es/documentdb/latest/developerguide/images/sharding-detail-3.png)


## Migración de clústeres elásticos
<a name="elastic-how-it-works-migration"></a>

Amazon DocumentDB admite la migración de datos con particiones de MongoDB a clústeres elásticos. Se admiten métodos de migración sin conexión, en línea e híbridos. Para obtener más información, consulte [Migración a Amazon DocumentDB](docdb-migration.md).

## Escalado de clústeres elásticos
<a name="elastic-how-it-works-scaling"></a>

Los clústeres elásticos de Amazon DocumentDB permiten aumentar el número de fragmentos (escalado horizontal) del clúster elástico y el número de v CPUs aplicado a cada fragmento (escalado ascendente). También puede reducir la cantidad de fragmentos y la capacidad de cómputo (vCPUs) según sea necesario.

Para conocer las prácticas recomendadas de escalado, consulte [Escalado de clústeres elásticos](elastic-best-practices.md#scaling).

**nota**  
También está disponible el escalado a nivel de clúster. Para obtener más información, consulte [Escalado de clústeres de Amazon DocumentDB](db-cluster-manage-performance.md).

## Fiabilidad de los clústeres elásticos
<a name="elastic-reliability"></a>

Amazon DocumentDB está diseñado para ofrecer fiabilidad, durabilidad y tolerancia a errores. Para mejorar la disponibilidad, los clústeres elásticos implementan dos nodos por partición ubicados en diferentes zonas de disponibilidad. Amazon DocumentDB también incluye varias características automáticas que la convierten en una solución de base de datos de confianza. Para obtener más información, consulte [Fiabilidad de Amazon DocumentDB](how-it-works.md#how-it-works.reliability).

## Almacenamiento y disponibilidad de clústeres elásticos
<a name="how-it-works-storage"></a>

Los datos de Amazon DocumentDB se almacenan en un volumen de clúster, que es un volumen virtual único que utiliza unidades de estado sólido ()SSDs. Un volumen de clúster consta de seis copias de sus datos, que se replican automáticamente en varias zonas de disponibilidad de una sola AWS región. Esta replicación ayuda a garantizar que los datos se conserven durante mucho tiempo, con menos riesgo de que se pierdan los datos. También ayuda a garantizar que el clúster esté más disponible durante una conmutación por error, porque ya existen copias de sus datos en otras zonas de disponibilidad. Para obtener más información sobre el almacenamiento, la alta disponibilidad y la replicación, consulte [Funcionamiento de Amazon DocumentDB](how-it-works.md).

## Diferencias funcionales entre Amazon DocumentDB 4.0 y los clústeres elásticos
<a name="elastic-functional-differences"></a>

Existen las siguientes diferencias funcionales entre Amazon DocumentDB 4.0 y los clústeres elásticos.
+ El resultado de `top` y `collStats` se fragmenta en particiones. En el caso de las colecciones con particiones, los datos se distribuyen entre varias particiones y a los informes de `collStats` se agrega `collScans` desde las particiones.
+ Las estadísticas de recopilación de `top` y `collStats` para las colecciones con particiones se restablecen cuando se cambia el recuento de particiones del clúster.
+ La función de copia de seguridad integrada ahora es compatible con `serverStatus`. Acción: los desarrolladores y las aplicaciones con función de backup pueden recopilar estadísticas sobre el estado del clúster de Amazon DocumentDB.
+ El campo `SecondaryDelaySecs` reemplaza a `slaveDelay` en la salida `replSetGetConfig`.
+ El comando `hello` reemplaza a `isMaster`. `hello` devuelve un documento que describe la función del clúster elástico.
+ El `$elemMatch` operador de los clústeres elásticos solo hace coincidir los documentos del primer nivel de anidación de una matriz. En Amazon DocumentDB 4.0, el operador recorre todos los niveles antes de devolver los documentos coincidentes. Por ejemplo:

```
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 proyección “\$1” de Amazon DocumentDB 4.0 devuelve todos los documentos con todos los campos. Con los clústeres elásticos, el comando `find` con una proyección “\$1” devuelve los documentos que coinciden con el parámetro de consulta y contienen solo el campo que coincide con la proyección “\$1”.
+ En los clústeres elásticos, los comandos `find` con parámetros de consulta `$regex` y `$options` devuelven un error: «No se pueden establecer opciones tanto en \$1regex como en \$1options».
+ Con los clústeres elásticos, `$indexOfCP` ahora devuelve “-1” cuando:
  + la subcadena no se encuentra en `string expression`, o
  + `start` es un número mayor que `end`, o
  + `start` es un número mayor que la longitud en bytes de la cadena.

  En Amazon DocumentDB 4.0, `$indexOfCP` devuelve “0” cuando la posición `start` es un número mayor que `end` o que la longitud en bytes de la cadena.
+ Con los clústeres elásticos, las operaciones de proyección en `_id fields`, por ejemplo, `{"_id.nestedField" : 1}`, devuelven documentos que solo incluyen el campo proyectado. Mientras tanto, en Amazon DocumentDB 4.0, los comandos de proyección de campos anidados no filtran ningún documento.