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
Gli argomenti di questa sezione forniscono informazioni sui meccanismi e le funzioni alla base dei cluster elastici di Amazon DocumentDB.
Argomenti
Sharding elastico dei cluster Amazon DocumentDB
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.
Definizioni di shard
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
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»:
DocumentDB utilizza l'hash sharding per suddividere i dati tra gli shard sottostanti. I dati aggiuntivi vengono inseriti e distribuiti nello stesso modo:
Quando si espande il database aggiungendo frammenti aggiuntivi, Amazon DocumentDB ridistribuisce automaticamente i dati:
Migrazione elastica dei cluster
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.
Scalabilità elastica dei cluster
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
Nota
Cluster-level è disponibile anche il ridimensionamento. Per ulteriori informazioni, consulta Scalabilità dei cluster Amazon DocumentDB.
Affidabilità del cluster elastico
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.
Storage e disponibilità dei cluster elastici
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
Differenze funzionali tra Amazon DocumentDB 4.0 e i cluster elastici
Esistono le seguenti differenze funzionali tra Amazon DocumentDB 4.0 e i cluster elastici.
I risultati
topecollStatssono partizionati da frammenti. Per le raccolte frammentate, i dati vengono distribuiti tra più partizioni ecollStatsreport aggregati dalle partizioni.collScansLe statistiche di raccolta da
topecollStatsper le raccolte frammentate vengono ripristinate quando il numero di frammenti del cluster viene modificato.Il ruolo integrato di backup ora supporta.
serverStatusAzione: gli sviluppatori e le applicazioni con ruolo di backup possono raccogliere statistiche sullo stato del cluster Amazon DocumentDB.Il
SecondaryDelaySecscampo si sostituisceslaveDelaynell'replSetGetConfigoutput.Il
hellocomando replacesisMaster-hellorestituisce un documento che descrive il ruolo del cluster elastico.L'
$elemMatchoperatore 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
findcomando con una proiezione «$» restituisce i documenti che corrispondono al parametro di query contenenti solo il campo che corrisponde alla proiezione «$».Nei cluster elastici, i
findcomandi con$regexe i parametri di$optionsquery restituiscono un errore: «Impossibile impostare le opzioni sia in $regex che in $options».
Con i cluster elastici,
$indexOfCPora restituisce «-1" quando:la sottostringa non si trova in, o
string expressionstartè un numero maggiore diend, ostartè un numero maggiore della lunghezza in byte della stringa.
In Amazon DocumentDB 4.0,
$indexOfCPrestituisce «0" quando lastartposizione è un numero maggioreendo 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.