Scelta della modalità di capacità del flusso di dati - Flusso di dati Amazon Kinesis

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

Scelta della modalità di capacità del flusso di dati

Cos'è una modalità di capacità del flusso di dati?

Una modalità di capacità del flusso di dati determina come viene gestita la capacità e come viene addebitato l'utilizzo del flusso di dati. In Flussoi di dati Amazon Kinesis è possibile scegliere tra la modalità di capacità on demand e la modalità assegnata per i flussi di dati.

  • On demand: i flussi di dati con modalità on demand non richiedono alcuna pianificazione della capacità e si dimensionano automaticamente per gestire i gigabyte di velocità di trasmissione effettiva di scrittura e lettura al minuto. Con la modalità on demand, il flusso di dati Kinesis gestisce automaticamente le partizioni per fornire la velocità di trasmissione effettiva necessaria.

  • Assegnata: per i flussi di dati con la modalità assegnata, è necessario specificare il numero di partizioni per il flusso di dati. La capacità totale di un flusso di dati è la somma di capacità delle relative partizioni. Puoi aumentare o diminuire il numero di partizioni in un flusso di dati in base alle esigenze.

Puoi utilizzare le API PutRecord e PutRecords del flusso di dati Kinesis per scrivere i dati nei tuoi flussi di dati sia in modalità di capacità on demand che in modalità di capacità assegnata. Per recuperare i dati, entrambe le modalità di capacità supportano i consumer predefiniti che utilizzano l'API GetRecords e i consumer Enhanced Fan-Out (EFO) che utilizzano l'API SubscribeToShard.

Tutte le funzionalità del flusso di dati Kinesis, tra cui la modalità di conservazione, la crittografia, i parametri di monitoraggio e altre, sono supportate sia per la modalità on demand che per quella assegnata. Il flusso di dati Kinesis offre durabilità e disponibilità elevate sia in modalità di capacità on demand che in modalità di capacità assegnata.

Modalità on demand

I flussi di dati in modalità on demand non richiedono alcuna pianificazione della capacità e si dimensionano automaticamente per gestire i gigabyte di velocità di trasmissione effettiva di scrittura e lettura al minuto. La modalità on demand semplifica l'acquisizione e l'archiviazione di grandi volumi di dati a bassa latenza perché elimina il provisioning e la gestione di server, spazio di archiviazione o velocità di trasmissione effettiva. È possibile importare miliardi di record al giorno senza alcun sovraccarico operativo.

La modalità on demand è ideale per soddisfare le esigenze di traffico applicativo altamente variabile e imprevedibile. Non è più necessario effettuare il provisioning di questi carichi di lavoro per la massima capacità, il che può comportare costi più elevati a causa del basso utilizzo. La modalità on demand è adatta per carichi di lavoro con modelli di traffico imprevedibili e altamente variabili.

Con la modalità di capacità on demand, si paga per i GB di dati scritti e letti dai flussi di dati. Non è necessario specificare la velocità di trasmissione effettiva di lettura e scrittura che si prevede l'applicazione esegua. Il flusso di dati Kinesis si adatta istantaneamente ai carichi di lavoro siano essi aumentati o diminuiti. Per ulteriori informazioni, consulta Prezzi di Amazon Kinesis Data Streams.

È possibile creare un nuovo flusso di dati con la modalità on demand utilizzando la console del flusso di dati Kinesis, le API o i comandi della CLI.

Un flusso di dati in modalità on demand supporta fino al doppio della velocità di trasmissione effettiva di scrittura di picco osservato nei 30 giorni precedenti. Man mano che la velocità trasmissione effettiva di scrittura del flusso di dati raggiunge un nuovo picco, il flusso di dati Kinesis dimensiona automaticamente la capacità del flusso di dati. Ad esempio, se il flusso di dati ha una velocità di trasmissione effettiva di scrittura che varia tra 10 MB/s e 40 MB/s, il flusso di dati Kinesis garantisce la possibilità di eseguire facilmente l'espansione per raddoppiare la velocità di trasmissione effettiva di picco precedente, ovvero 80 MB/s. Se lo stesso flusso di dati supporta una nuova velocità di trasmissione effettiva di picco di 50 MB/s, il flusso di dati Kinesis garantisce una capacità sufficiente per assorbire 100 MB/s di velocità di trasmissione effettiva di scrittura. Tuttavia, si può verificare una limitazione se il traffico aumenta fino a più del doppio del picco precedente nell'arco di 15 minuti. Dovrai riprovare a eseguire queste richieste limitate.

La capacità di lettura aggregata di un flusso di dati con la modalità on demand aumenta proporzionalmente alla velocità di scrittura. Ciò contribuisce a garantire che le applicazioni consumer abbiano sempre una velocità di lettura adeguata per elaborare i dati in arrivo in tempo reale. Ottieni almeno il doppio della velocità di trasmissione effettiva di scrittura rispetto ai dati di lettura utilizzando l'API GetRecords. Ti consigliamo di utilizzare un'applicazione consumer con l'API GetRecord in modo che abbia abbastanza spazio per recuperare il ritardo dell'applicazione quando deve essere ripristinata dopo un periodo di inattività. Si consiglia di utilizzare la funzionalità di fan-out avanzato del flusso di dati Kinesis per scenari che richiedono l'aggiunta di più di un'applicazione consumer. Il fan-out avanzato supporta l'aggiunta di un massimo di 20 applicazioni consumer a un flusso di dati tramite l'API SubscribeToShard, con ogni applicazione consumer con una velocità di trasmissione effettiva dedicata.

Gestione delle eccezioni di velocità di trasmissione effettiva di lettura e scrittura

Con la modalità di capacità on demand (uguale alla modalità di capacità assegnata), è necessario specificare una chiave di partizione per ogni record per scrivere i dati nel flusso di dati. Il flusso di dati Kinesis utilizza le chiavi di partizione per distribuire i dati tra le partizioni. Il flusso di dati Kinesis monitora il traffico per ogni partizione. Quando il traffico in entrata supera i 500 KB/s per partizione, divide la partizione entro 15 minuti. I valori della chiave hash della partizione principale vengono ridistribuiti in modo uniforme tra le partizioni secondarie.

Se il traffico in entrata supera il doppio del picco precedente, è possibile che si verifichino eccezioni di lettura o scrittura per circa 15 minuti, anche quando i dati sono distribuiti uniformemente tra le partizioni. Ti consigliamo di riprovare tutte queste richieste in modo che tutti i record vengano archiviati correttamente nel flusso di dati Kinesis.

Potrebbero verificarsi eccezioni di lettura e scrittura se si utilizza una chiave di partizione che causa una distribuzione non uniforme dei dati e se i record assegnati a una determinata partizione superano i limiti. Con la modalità on demand, il flusso di dati si adatta automaticamente alla gestione di modelli di distribuzione dei dati non uniformi, a meno che una singola chiave di partizione non superi la velocità di trasmissione effettiva di 1 MB/s e i limiti di 1.000 record al secondo.

Nella modalità on demand, il flusso di dati Kinesis divide le partizioni in modo uniforme quando rileva un aumento del traffico. Tuttavia, non rileva né isola le chiavi hash che indirizzano una parte maggiore del traffico in entrata verso una partizione particolare. Se si utilizzano chiavi di partizione molto irregolari, è possibile che continuino a ricevere eccezioni di scrittura. Per questi casi d'uso, si consiglia di utilizzare la modalità di capacità assegnata che supporta le suddivisioni di partizioni granulari.

Modalità assegnata

Con la modalità provisioned, dopo aver creato il flusso di dati, puoi aumentare o ridurre dinamicamente la capacità dello shard utilizzando AWS Management Console o l'API. UpdateShardCount È possibile effettuare aggiornamenti mentre è presente un'applicazione producer o consumer del flusso di dati Kinesis che scrive o legge dati dal flusso.

La modalità assegnata è adatta per un traffico prevedibile con requisiti di capacità facili da stimare. È possibile utilizzare la modalità assegnata se si desidera un controllo preciso su come i dati sono distribuiti tra le partizioni.

Con la modalità assegnata, devi specificare il numero di partizioni per il flusso di dati. Per determinare le dimensioni iniziali di un flusso di dati, è necessario soddisfare i seguenti valori di input:

  • Le dimensioni medie del record di dati scritti nel flusso in kilobyte (KB), arrotondate al KB più vicino (average_data_size_in_KB).

  • Il numero di record di dati scritti e letti dal flusso al secondo (records_per_second).

  • Il numero di applicazioni consumer, che sono le applicazioni del flusso di dati Kinesis che elaborano i dati simultaneamente e indipendentemente dal flusso (number_of_consumers).

  • La larghezza di banda in scrittura in entrata in KB (incoming_write_bandwidth_in_KB), che è uguale a average_data_size_in_KB moltiplicato per records_per_second.

  • La larghezza di banda in lettura in uscita in KB (outgoing_read_bandwidth_in_KB), che è uguale a incoming_write_bandwidth_in_KB moltiplicato per number_of_consumers.

Puoi calcolare il numero di partizioni (number_of_shards) di cui il flusso ha bisogno utilizzando i valori di input nella formula seguente:

number_of_shards = max(incoming_write_bandwidth_in_KiB/1024, outgoing_read_bandwidth_in_KiB/2048)

Nella modalità assegnata è possibile che si verifichino comunque eccezioni di velocità di trasmissione effettiva di lettura e scrittura se non si configura il flusso di dati per gestire i picchi di velocità di trasmissione effettiva. In questo caso, è necessario dimensionare manualmente il flusso di dati in modo da adattarlo al traffico di dati.

Potrebbero verificarsi eccezioni di lettura e scrittura se si utilizza una chiave di partizione che causa una distribuzione non uniforme dei dati e se i record assegnati a una determinata partizione superano i limiti. Per risolvere questo problema nella modalità assegnata, identifica tali frammenti e dividili manualmente per adattarli meglio al traffico. Per ulteriori informazioni, consulta Ripartizionamento di un flusso.

Passaggio da una modalità di capacità all'altra

È possibile cambiare la modalità di capacità del flusso di dati da on demand ad assegnata e viceversa. Per ogni flusso di dati del tuo account AWS , puoi passare dalla modalità di capacità on-demand a quella di capacità assegnata e viceversa due volte nell'arco di 24 ore.

Il passaggio da una modalità di capacità all'altra di un flusso di dati non causa interruzioni alle applicazioni che utilizzano il flusso di dati. È possibile continuare a scrivere e leggere da questo flusso di dati. Quando si passa da una modalità di capacità all'altra, da on demand ad assegnata o viceversa, lo stato del flusso viene impostato su Aggiornamento in corso. È necessario attendere che lo stato del flusso di dati diventi Attivo prima di poterne modificare nuovamente le proprietà.

Quando si passa dalla modalità di capacità assegnata a quella on demand, il flusso di dati inizialmente conserva il numero di partizioni che aveva prima della transizione e, da questo momento in poi, il flusso di dati Kinesis monitorerà il traffico di dati e dimensionerà il numero di partizioni di questo flusso di dati on demand in base alla velocità di trasmissione effettiva di scrittura.

Quando passi dalla modalità on demand alla modalità assegnata, il flusso di dati mantiene inizialmente anche il numero di partizioni che aveva prima della transizione, ma da questo momento in poi, sarai responsabile del monitoraggio e della regolazione del numero di partizioni di questo flusso di dati per adattarlo adeguatamente alla tua velocità di trasmissione effettiva di scrittura.