Controla el inicio, el apagado y la limitació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.

Controla el inicio, el apagado y la limitación

A continuación, se muestran otras consideraciones que podría incorporar en el diseño de su aplicación de Amazon Kinesis Data Streams.

Cree empresas productoras y consumidoras de datos

De forma predeterminada, KCL comienza a leer los registros desde la punta de la transmisión, que es el registro agregado más recientemente. Con esta configuración, si una aplicación productora de datos agrega registros a la secuencia antes de que se ejecuten los procesadores de registros receptores, los procesadores de registros no podrán leer los registros tras el inicio.

Para cambiar el comportamiento de los procesadores de registros de forma que siempre lean los datos desde el inicio del flujo, defina el siguiente valor en el archivo de propiedades de su aplicación de Amazon Kinesis Data Streams:

initialPositionInStream = TRIM_HORIZON

De forma predeterminada, Amazon Kinesis Data Streams almacena todos los datos durante 24 horas. También admite la retención prolongada de hasta 7 días y la retención a largo plazo de hasta 365 días. Este periodo de tiempo se denomina el periodo de retención. Si se establece la posición inicial en TRIM_HORIZON, el procesador de registros se iniciará con los datos más antiguos de la secuencia, según defina el periodo de retención. Incluso con la configuración TRIM_HORIZON, si un procesador de registros se iniciara tras transcurrir mucho más tiempo del que determina el periodo de retención, algunos de los registros de la secuencia dejarán de estar disponibles. Por este motivo, siempre debes hacer que las aplicaciones de consumo lean la transmisión y usar la CloudWatch métrica GetRecords.IteratorAgeMilliseconds para controlar que las aplicaciones estén al día con los datos entrantes.

En algunos casos, puede ser una buena opción para los procesadores de registros omitir los primeros registros de la secuencia. Por ejemplo, puede ejecutar algunos registros iniciales en la transmisión para comprobar que la transmisión funciona end-to-end según lo esperado. Tras realizar la verificación inicial, a continuación iniciaría sus procesos de trabajo y empezaría a introducir datos de producción en la secuencia.

Para obtener más información acerca de la opción TRIM_HORIZON, consulte Utilice iteradores compartidos.

Cerrar una aplicación de Amazon Kinesis Data Streams

Cuando la aplicación Amazon Kinesis Data Streams haya completado la tarea prevista, debe cerrarla finalizando EC2 las instancias en las que se está ejecutando. Puede terminar las instancias usando la AWS Management Console o la AWS CLI.

Tras cerrar la aplicación Amazon Kinesis Data Streams, debe eliminar la tabla de Amazon DynamoDB que se utilizó para rastrear el estado de KCL la aplicación.

Limitación de lectura

El rendimiento de una secuencia se facilita en el nivel del fragmento. Cada partición tiene un rendimiento de lectura de hasta cinco transacciones por segundo, con una velocidad máxima total de lectura de datos de 2 MB por segundo. Si una aplicación (o grupo de aplicaciones que operan en el mismo flujo) intenta obtener datos de una partición a una velocidad superior, Kinesis Data Streams limita las operaciones Get correspondientes.

En una aplicación de Amazon Kinesis Data Streams, si un procesador de registros procesa datos más rápido que el límite (por ejemplo, en el caso de una conmutación por error), se produce una limitación. Dado que KCL gestiona las interacciones entre la aplicación y Kinesis Data Streams, las excepciones de limitación se producen en KCL el código y no en el código de la aplicación. Sin embargo, dado que KCL registra estas excepciones, las ve en los registros.

Si cree que su aplicación es objeto de una limitación controlada de forma constante, debería pensar en aumentar el número de fragmentos para la secuencia.