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 – ¿Cuál es la diferencia entre un operador que reenvía a un DiscardingSink en lugar de enviarlo a ninguna parte?

Tengo un flujo de datos en Flink como sigue:

Origen -> Operador -> DiscardingSink

¿Hay alguna diferencia entre esto y uno que no tiene Sink?

Origen -> Operador ->

De mis pruebas parece que se ejecuta igual, aunque en el primer caso veo que el operador y el sink están encadenados y no se envían registros desde el sink. En el segundo caso puedo ver que los registros se reenvían, pero no tienen adónde ir.

Desde mi entendimiento, el Operador llenará sus búferes de red salientes con registros, y esperaría ver algún punto de presión de retroceso, pero eso no ocurre, así que ¿qué semántica debo esperar aquí?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en Apache Flink y Flink Streaming, puedo confirmar que hay una diferencia entre tener un DiscardingSink y no tener Sink en un flujo de datos de Flink.

    En el primer caso (Fuente -> Operador -> DiscardingSink), los registros son procesados por el Operador y luego enviados al DiscardingSink donde son simplemente descartados. Esto significa que los registros todavía son procesados por el Operador, pero su salida nunca se utiliza ni se almacena en ningún lugar.

    En el segundo caso (Fuente -> Operador -> ), los registros son procesados por el Operador pero no tienen a dónde ir, ya que no hay un Sink para recibirlos. Esto significa que los buffers de red salientes del Operador se llenarán con registros y potencialmente causarán una presión de retroceso.

    Es importante tener en cuenta que aunque el segundo caso pueda parecer inofensivo y pueda ejecutarse sin errores, no es una práctica recomendada. Un flujo de datos sin un Sink puede tener consecuencias no deseadas, como llenar la memoria o causar otros problemas.

    En conclusión, tener un DiscardingSink en un flujo de datos de Flink permite el procesamiento y el descarte de registros, mientras que no tener un Sink puede causar problemas como la presión de retroceso y consecuencias no deseadas.

Comments are closed.