

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à.

# Cluster elastici Amazon DocumentDB: come funzionano
<a name="elastic-how-it-works"></a>

Gli argomenti di questa sezione forniscono informazioni sui meccanismi e le funzioni alla base dei cluster elastici di Amazon DocumentDB.

**Topics**
+ [Sharding elastico dei cluster Amazon DocumentDB](#elastic-how-it-works.sharding)
+ [Migrazione elastica dei cluster](#elastic-how-it-works-migration)
+ [Scalabilità elastica dei cluster](#elastic-how-it-works-scaling)
+ [Affidabilità del cluster elastico](#elastic-reliability)
+ [Storage e disponibilità dei cluster elastici](#how-it-works-storage)
+ [Differenze funzionali tra Amazon DocumentDB 4.0 e i cluster elastici](#elastic-functional-differences)

## Sharding elastico dei cluster Amazon DocumentDB
<a name="elastic-how-it-works.sharding"></a>

I cluster elastici Amazon DocumentDB utilizzano lo sharding basato su hash per partizionare i dati in un sistema di storage distribuito. Lo sharding, noto anche come partizionamento, divide grandi set di dati in piccoli set di dati su più nodi, consentendoti di scalare il database oltre i limiti di scalabilità verticale. I cluster elastici utilizzano la separazione, o «disaccoppiamento», tra elaborazione e storage in Amazon DocumentDB, consentendoti di scalare indipendentemente l'uno dall'altro. Anziché ripartizionare le raccolte spostando piccoli blocchi di dati tra nodi di calcolo, i cluster elastici copiano i dati in modo efficiente all'interno del sistema di storage distribuito.

![Un cluster elastico Amazon DocumentDB contiene più frammenti per suddividere set di dati di grandi dimensioni in set di dati più piccoli, consentendo una migliore scalabilità del database.](https://docs.aws.amazon.com/it_it/documentdb/latest/devguide/images/shard-architecture.png)


### Definizioni di shard
<a name="w2aac55c23b7b7"></a>

Definizioni della nomenclatura degli shard:
+ **Shard**: uno shard fornisce il calcolo per un cluster elastico. Avrà una singola istanza di scrittore e da 0 a 15 repliche di lettura. Per impostazione predefinita, uno shard avrà due istanze: una replica di scrittura e una singola replica di lettura. È possibile configurare un massimo di 32 shard e ogni istanza dello shard può avere un massimo di 64 vCPU.
+ **Shard key**: una shard key è un campo obbligatorio nei documenti JSON nelle raccolte frammentate che i cluster elastici utilizzano per distribuire il traffico di lettura e scrittura allo shard corrispondente. 
+ **Raccolta frammentata**: una raccolta frammentata è una raccolta i cui dati sono distribuiti su un cluster elastico in partizioni di dati.
+ **Partizione**: una partizione è una porzione logica di dati frammentati. Quando si crea una raccolta frammentata, i dati vengono organizzati automaticamente in partizioni all'interno di ogni frammento in base alla chiave dello shard. Ogni frammento ha più partizioni.

### Distribuzione dei dati tra frammenti configurati
<a name="w2aac55c23b7b9"></a>

Crea una chiave shard con molti valori univoci. Una buona chiave shard ripartizionerà uniformemente i dati tra gli shard sottostanti, offrendo al carico di lavoro il throughput e le prestazioni migliori. L'esempio seguente sono i dati relativi ai nomi dei dipendenti che utilizzano una chiave shard denominata «user\_id»:

![I dati di un set di dati sono distribuiti uniformemente su numerosi frammenti.](https://docs.aws.amazon.com/it_it/documentdb/latest/devguide/images/sharding-detail-1.png)


DocumentDB utilizza l'hash sharding per suddividere i dati tra gli shard sottostanti. I dati aggiuntivi vengono inseriti e distribuiti nello stesso modo:

![I dati di un nuovo set di dati vengono distribuiti tra i frammenti tramite hash sharding.](https://docs.aws.amazon.com/it_it/documentdb/latest/devguide/images/sharding-detail-2.png)


Quando si espande il database aggiungendo frammenti aggiuntivi, Amazon DocumentDB ridistribuisce automaticamente i dati:

![I dati di un set di dati vengono ridistribuiti quando vengono aggiunti frammenti aggiuntivi al database.](https://docs.aws.amazon.com/it_it/documentdb/latest/devguide/images/sharding-detail-3.png)


## Migrazione elastica dei cluster
<a name="elastic-how-it-works-migration"></a>

Amazon DocumentDB supporta la migrazione dei dati frammentati di MongoDB verso cluster elastici. Sono supportati metodi di migrazione offline, online e ibridi. Per ulteriori informazioni, consulta [Migrazione e aggiornamento di Amazon DocumentDB](docdb-migration.md).

## Scalabilità elastica dei cluster
<a name="elastic-how-it-works-scaling"></a>

I cluster elastici Amazon DocumentDB offrono la possibilità di aumentare il numero di shard (scalabilità orizzontale) nel cluster elastico e il numero di vCPU applicate a ciascun shard (scalabilità verso l'alto). Puoi anche ridurre il numero di shard e la capacità di calcolo (vCPU) secondo necessità.

Per le best practice di scalabilità, consulta. [Scalabilità dei cluster elastici](elastic-best-practices.md#scaling)

**Nota**  
Cluster-level è disponibile anche il ridimensionamento. Per ulteriori informazioni, consulta [Scalabilità dei cluster Amazon DocumentDB](db-cluster-manage-performance.md).

## Affidabilità del cluster elastico
<a name="elastic-reliability"></a>

Amazon DocumentDB è progettato per essere affidabile, durevole e tollerante ai guasti. Per migliorare la disponibilità, i cluster elastici distribuiscono due nodi per shard collocati in diverse zone di disponibilità. Amazon DocumentDB include diverse funzionalità automatiche che lo rendono una soluzione di database affidabile. Per ulteriori informazioni, consulta [Affidabilità di Amazon DocumentDB](how-it-works.md#how-it-works.reliability).

## Storage e disponibilità dei cluster elastici
<a name="how-it-works-storage"></a>

I dati di Amazon DocumentDB sono archiviati in un volume cluster, che è un singolo volume virtuale che utilizza unità a stato solido (SSD). Un volume cluster è composto da sei copie dei tuoi dati, che vengono replicate automaticamente su più zone di disponibilità in una singola regione. AWS Questa replica contribuisce a garantire l'estrema durata dei tuoi dati e a ridurre il rischio di perdita dei dati. Consente inoltre di assicurare che il cluster non sia più disponibile durante un failover perché le copie dei dati sono già presenti in altre zone di disponibilità. Per ulteriori dettagli su storage, alta disponibilità e replica, vedere. [Amazon DocumentDB: come funziona](how-it-works.md)

## Differenze funzionali tra Amazon DocumentDB 4.0 e i cluster elastici
<a name="elastic-functional-differences"></a>

Esistono le seguenti differenze funzionali tra Amazon DocumentDB 4.0 e i cluster elastici.
+ I risultati `top` e `collStats` sono partizionati da frammenti. Per le raccolte frammentate, i dati vengono distribuiti tra più partizioni e `collStats` report aggregati dalle partizioni. `collScans`
+ Le statistiche di raccolta da `top` e `collStats` per le raccolte frammentate vengono ripristinate quando il numero di frammenti del cluster viene modificato.
+ Il ruolo integrato di backup ora supporta. `serverStatus` Azione: gli sviluppatori e le applicazioni con ruolo di backup possono raccogliere statistiche sullo stato del cluster Amazon DocumentDB.
+ Il `SecondaryDelaySecs` campo si sostituisce `slaveDelay` nell'`replSetGetConfig`output.
+ Il `hello` comando replaces `isMaster` - `hello` restituisce un documento che descrive il ruolo del cluster elastico.
+ L'`$elemMatch`operatore nei cluster elastici corrisponde solo ai documenti nel primo livello di nidificazione di un array. In Amazon DocumentDB 4.0, l'operatore attraversa tutti i livelli prima di restituire i documenti corrispondenti. Ad esempio:

```
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 proiezione «$» in Amazon DocumentDB 4.0 restituisce tutti i documenti con tutti i campi. Con i cluster elastici, il `find` comando con una proiezione «$» restituisce i documenti che corrispondono al parametro di query contenenti solo il campo che corrisponde alla proiezione «$».
+ Nei cluster elastici, i `find` comandi con `$regex` e i parametri di `$options` query restituiscono un errore: «Impossibile impostare le opzioni sia in $regex che in $options».
+ Con i cluster elastici, `$indexOfCP` ora restituisce «-1" quando:
  + la sottostringa non si trova in, o `string expression`
  + `start`è un numero maggiore di`end`, o
  + `start`è un numero maggiore della lunghezza in byte della stringa.

  In Amazon DocumentDB 4.0, `$indexOfCP` restituisce «0" quando la `start` posizione è un numero maggiore `end` o la lunghezza in byte della stringa.
+ Con i cluster elastici, le operazioni di proiezione`_id fields`, ad esempio`{"_id.nestedField" : 1}`, restituiscono documenti che includono solo il campo proiettato. Nel frattempo, in Amazon DocumentDB 4.0, i comandi di proiezione di campo annidati non filtrano alcun documento.