Decida una estrategia para la refragmentación - Amazon Kinesis Data Streams

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.

Decida una estrategia para la refragmentación

El objetivo de realizar cambios en las particiones en Amazon Kinesis Data Streams es que la secuencia pueda adaptarse a los cambios en la velocidad del flujo de datos. Puede dividir fragmentos para aumentar la capacidad (y los costos) de la secuencia. Puede fusionar fragmentos para reducir el costo (y la capacidad) de la secuencia.

Una forma de hacerlo sería dividir todas las particiones del flujo, lo que duplicaría su capacidad. Sin embargo, esto podría facilitar una capacidad adicional mayor que la que necesita realmente y, por tanto, crear costos innecesarios.

También puede utilizar métricas para determinar cuáles son sus particiones calientes o frías, es decir, particiones que reciben muchos más datos o muchos menos datos de lo esperado. A continuación, puede dividir los fragmentos "calientes" de manera selectiva para aumentar la capacidad de las claves hash que se dirigen a esos fragmentos. Del mismo modo, podría fusionar fragmentos "fríos "para aprovechar mejor su capacidad.

Puede obtener algunos datos de rendimiento para su transmisión a partir de las CloudWatch métricas de Amazon que publica Kinesis Data Streams. Sin embargo, también puede recopilar sus propias métricas para las secuencias. Podría registrar los valores de las claves hash generadas por las claves de partición de sus registros de datos. Recuerde especificar la clave de partición en el momento en el que añada el registro a la secuencia.

putRecordRequest.setPartitionKey( String.format( "myPartitionKey" ) );

Kinesis Data Streams MD5utiliza para calcular la clave hash a partir de la clave de partición. Como usted especifica la clave de partición para el registro, puede utilizarla MD5 para calcular el valor de la clave hash de ese registro y registrarlo.

También puede registrar los fragmentos a IDs los que están asignados los registros de datos. Puede consultar la ID de fragmento utilizando el método getShardId del objeto putRecordResults que devuelve el método putRecords y el objeto putRecordResult que devuelve el método putRecord.

String shardId = putRecordResult.getShardId();

Con los valores del fragmento IDs y la clave hash, puede determinar qué fragmentos y claves hash reciben más o menos tráfico. A continuación, puede utilizar los cambios en los fragmentos para proporcionar más o menos capacidad, según proceda para estas claves.