es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Flink – Fuente DynamoDB

Soy nuevo trabajando con aplicaciones en tiempo real. Actualmente, estoy utilizando AWS Kinesis/Flink y Scala. Tengo la siguiente arquitectura:

old architecture

Como puedes ver, consumo un archivo CSV utilizando CSVTableSource. Desafortunadamente, el archivo CSV se volvió demasiado grande para el trabajo de Flink. El archivo se actualiza diariamente, por lo que se agregan nuevas filas.
Entonces, ahora estoy trabajando en una nueva arquitectura, donde quiero reemplazar el CSV por un DynamoDB.

new architecture

Mi pregunta es: ¿qué recomiendas para consumir la tabla DynamoDB?

PD: Necesito hacer un left outer join utilizando la tabla DynamoDB y los datos del flujo de datos de Kinesis.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para consumir la tabla DynamoDB en la nueva arquitectura y realizar una unión externa izquierda con los datos del flujo de datos de Kinesis, recomiendo usar la Biblioteca de cliente de Kinesis de Amazon (KCL) para Flink.

    La Biblioteca de cliente de Kinesis le permite consumir y procesar datos de los flujos de datos de Kinesis en tiempo real con Flink. Proporciona características como equilibrio de carga, escalado automático y administración de estado para el procesamiento distribuido de datos.

    Para consumir datos de DynamoDB, puede utilizar la función DynamoDB Streams, que captura una secuencia ordenada en el tiempo de modificaciones a nivel de elemento en una tabla de DynamoDB. Luego puede utilizar la KCL para procesar estos flujos de DynamoDB y unirlos con los datos del flujo de datos de Kinesis en tiempo real.

    Puede utilizar el AWS SDK para Scala para interactuar con DynamoDB y DynamoDB Streams desde su aplicación Flink. También puede utilizar los receptores proporcionados por Flink para escribir la salida de la unión en cualquier destino deseado, como S3, Elasticsearch o una tabla separada de DynamoDB.

    En general, el uso de KCL para Flink y DynamoDB Streams es un enfoque escalable y confiable para consumir y procesar datos en tiempo real desde una tabla DynamoDB y unirlos con los datos del flujo de datos de Kinesis.

Comments are closed.