Come posso modificare il numero di partizioni aperte nel flusso di dati Kinesis?

5 minuti di lettura
0

Desidero modificare il numero di partizioni aperte nel flusso di dati Amazon Kinesis e sapere cosa fare dopo il partizionamento.

Breve descrizione

Una partizione può essere in stato APERTO, CHIUSO o SCADUTO. Quando una partizione è nello stato APERTO, è possibile aggiungere e recuperare record di dati dalla partizione.

Per modificare il numero di partizioni aperte nel flusso di dati Kinesis, completa una delle seguenti attività:

  • Aggiorna il numero totale di partizioni. Questa azione modifica il numero di partizioni nel flusso.
  • Dividi una singola partizione.
  • Unisci due partizioni in una unica.

Nota: se modifichi il numero di partizioni aperte nel flusso di dati Kinesis, tale modifica avrà effetto sulle partizioni principali e sui valori dell'intervallo di chiavi hash.

Soluzione

Aggiorna il numero totale di partizioni

Usa la console Kinesis o le operazioni API per aggiornare il numero di partizioni aperte. Quando utilizzi la Console di gestione AWS, il flusso di dati utilizza l'API UpdateShardCount per ripartizionare i flussi. Verifica i seguenti punti sull'API UpdateShardCount:

  • L'API divide o unisce singole partizioni in background per aggiornare il numero di partizioni del flusso specificato al numero specificato di partizioni. UpdateShardCount è una chiamata API a livello di flusso.
  • UpdateShardCount supporta solo il dimensionamento uniforme. Il dimensionamento uniforme crea partizioni di uguale percentuale per l'intervallo di chiavi hash.
  • L'operazione UpdateShardCount riadatta il numero di partizioni a un valore di destinazione specifico di uguali dimensioni.

Dividi una singola partizione

È possibile dividere una partizione “calda” o “fredda” in due partizioni

Nota: è possibile dividere o unire le partizioni solo tramite operazioni API.

Le partizioni che ricevono più dati del previsto sono denominate partizione “calde”. Usa l'API SplitShard per dividere selettivamente le partizioni calde per aumentare la capacità delle chiavi hash destinate a tali partizioni. Per ulteriori informazioni sulla gestione delle partizioni calde, consulta la sezione Strategies for resharding.

È anche possibile monitorare il servizio flusso di dati Amazon Kinesis con Amazon CloudWatch. Per utilizzare le metriche di CloudWatch per determinare le partizioni “calde” o “fredde”, attiva i parametri a livello di partizione, come ad esempio IncomingRecords e IncomingBytes.

Unisci due partizioni in una

È possibile dividere una partizione “calda” o “fredda” in due partizioni.

Nota: è possibile dividere o unire le partizioni solo tramite operazioni API.

Le partizioni che ricevono molti meno dati del previsto sono denominate partizioni “fredde”. Usa l'API MergeShards per unire le partizioni fredde per sfruttarne appieno la capacità. Si tratta di una chiamata API a livello di partizione. Tieni presente che puoi unire solo due partizioni adiacenti, in cui l'unione dei relativi intervalli di chiavi hash forma un insieme contiguo senza spazi vuoti.

È anche possibile monitorare il servizio flusso di dati Amazon Kinesis con Amazon CloudWatch. Usa le metriche di CloudWatch per determinare le partizioni “calde” o “fredde” attivando metriche a livello di partizione, come ad esempio IncomingRecords e IncomingBytes.

Considerazioni aggiuntive

La partizione o la coppia di partizioni su cui agisce l'operazione di ripartizionamento sono denominate partizioni principali. Le partizioni create dopo l'operazione di ripartizionamento sono denominate partizioni secondarie. Dopo il periodo di conservazione del flusso, una partizione principale passa anche da uno stato APERTO a uno stato CHIUSO e, infine, a uno stato SCADUTO. Ciò può comportare l'assegnazione dello stato APERTO alle partizioni secondarie. Per ulteriori informazioni sulle transizioni della partizione principale, consulta la sezione Data routing, data persistence, and shard state after a reshard.

Dopo il ripartizionamento, la lettura dei dati delle partizioni in stato CHIUSO prosegue fino all’esaurimento di tali partizioni. Ciò consente di preservare l'ordine dei dati letti dalle applicazioni utente. Dopo avere esaurito tutte le partizioni in stato CHIUSO, vengono letti i dati delle partizioni secondarie aperte. La libreria client Amazon Kinesis (KCL) è progettata per adattarsi alle operazioni di ripartizionamento. I dati presenti nelle partizioni prima del ripartizionamento vengono elaborati per primi. Per ulteriori informazioni sulle operazioni di ripartizionamento, consulta la sezione Resharding, scaling, and parallel processing.

Se modifichi il numero di partizioni aperte, possono verificarsi modifiche anche agli intervalli di chiavi hash di alcune partizioni. Un intervallo di chiavi hash è l'intervallo dei possibili valori di chiavi hash di una partizione, ovvero un insieme di numeri interi positivi contigui ordinati. L'intervallo è composto da valori chiave iniziali e finali. Ad esempio, se si crea un flusso di dati Kinesis con cinque partizioni aperte, il flusso viene diviso in 5 parti uguali in base all'intervallo di chiavi hash. Pertanto, tutte le partizioni riporteranno 20% come valore del keyspace hash.

Ad esempio, supponiamo di avere un intervallo di chiavi hash di X partizioni, dalla Partizione-1 alla Partizione-X. È possibile modificare gli intervalli dividendo ulteriormente le partizioni o unendole:

Console o API UpdateShardCount

Se si modifica il numero di partizioni aperte da 5 a 10, il keyspace risultante delle partizioni secondarie sarà pari al 10%. L'intervallo delle chiavi hash è suddiviso equamente per tutte le partizioni aperte con un valore pari al 10%.

API SplitShard

Dividi l’ultima partizione (Partizione-5) in due partizioni (Partizione-6 e Partizione-7). Prima di dividere una partizione, il keyspace della partizione principale è pari al 20%. Dopo avere diviso una partizione, il keyspace delle partizioni secondarie (Partizione-6 e Partizione-7) sarà pari al 10%. L'intervallo di chiavi hash per le partizioni principali è suddiviso equamente su entrambe le partizioni secondarie con un valore pari al 10%. Pertanto,il keyspace hash è suddiviso nella proporzione 20%-20%-20%-20%-10%-10%.

API MergeShards

Unisci le ultime due partizioni (Partizione-4 e Partizione-5) in una unica (Partizione-6). Il keyspace hash delle partizioni principali (Partizione-4 e Partizione-5) è pari al 20%. Dopo avere unito una partizione, il keyspace della partizione secondaria (Partizione-6) è pari al 40%. L'intervallo di chiavi hash delle partizioni principali viene aggiunto a entrambe le partizioni secondarie per un valore pari al 40%. Pertanto, il keyspace hash è suddiviso nella proporzione 20%-20%-20%-40%.

AWS UFFICIALE
AWS UFFICIALEAggiornata 5 mesi fa