Uso del adaptador Kinesis de DynamoDB Streams para procesar registros de transmisión - Amazon DynamoDB

Uso del adaptador Kinesis de DynamoDB Streams para procesar registros de transmisión

Usar Amazon Kinesis Adapter es la forma recomendada de consumir secuencias de Amazon DynamoDB. La API de DynamoDB Streams es intencionadamente similar a la de Kinesis Data Streams, un servicio para procesar datos de streaming a escala masiva en tiempo real. En ambos servicios, los data streams se componen de fragmentos, que son los contenedores de los registros de secuencia. Los API de ambos servicios contienen operaciones ListStreams, DescribeStream, GetShards y GetShardIterator. (Aunque estas acciones de DynamoDB Streams son parecidas a sus homólogas de Kinesis Data Streams, no son idénticas al 100 %).

Puede escribir aplicaciones para Kinesis Data Streams mediante Kinesis Client Library (KCL). KCL simplifica la codificación porque proporciona abstracciones útiles por encima del API de bajo nivel de Kinesis Data Streams. Para obtener más información sobre KCL, consulte Desarrollo de consumidores mediante la biblioteca Kinesis Client Library en la Guía para desarrolladores de Amazon Kinesis Data Streams.

Como usuario de DynamoDB Streams, puede sacar partido de los patrones de diseño contenidos en KCL para procesar los fragmentos de DynamoDB Streams y transmitir registros. Para ello, se utiliza DynamoDB Streams Kinesis Adapter. Kinesis Adapter implementa la interfaz de Kinesis Data Streams, de tal forma que se pueda usar KCL para consumir y procesar registros desde DynamoDB Streams. Para obtener instrucciones acerca de cómo configurar e instalar DynamoDB Streams Kinesis Adapter, consulte el repositorio de GitHub.

En el siguiente diagrama se muestra cómo interaccionan estas bibliotecas entre sí.

Si DynamoDB Streams Kinesis Adapter está implementado, puede comenzar a desarrollar para la interfaz de KCL y dirigir las llamadas al API de forma transparente al punto de enlace de DynamoDB Streams.

Cuando se inicia la aplicación, llama a KCL para crear una instancia de un proceso de trabajo. Debe facilitar al proceso de trabajo información sobre la configuración de la aplicación, como el descriptor de la transmisión y las credenciales de AWS, así como el nombre de una clase de procesador de registros que usted proporcione. A medida que el proceso de trabajo ejecuta el código en el procesador de registros, lleva a cabo las siguientes tareas:

  • Se conecta a la secuencia

  • Enumera las particiones del flujo.

  • Coordina la asociación de los fragmentos con otros procesos de trabajo (si procede)

  • Crea instancias de un procesador de registros para cada fragmento que administra

  • Extrae registros del flujo.

  • Inserta los registros en el procesador de registros correspondiente

  • Genera puntos de comprobación para los registros procesados

  • Balancea las asociaciones entre fragmentos y procesos de trabajo cuando cambia el recuento de instancias de procesos de trabajo

  • Equilibra las asociaciones entre particiones y procesos de trabajo cuando las particiones se dividen.

nota

Para obtener una descripción de los conceptos de KCL enumerados aquí, consulte Desarrollo de consumidores mediante la biblioteca Kinesis Client Library en la Guía para desarrolladores de Amazon Kinesis Data Streams.

Para obtener más información acerca de cómo usar los flujos con AWS Lambda, consulte DynamoDB Streams y disparadores de AWS Lambda.