¿Cómo confirmar manualmente el desplazamiento en la transmisión directa de Spark Kafka?

Miré a mi alrededor con fuerza, pero no encontré una respuesta satisfactoria a esto. Tal vez me estoy perdiendo algo. Por favor ayuda.

Tenemos una aplicación de transmisión de Spark que consume un tema de Kafka, que debe garantizar el procesamiento de extremo a extremo antes de avanzar en las compensaciones de Kafka, p. actualizar una base de datos Esto es muy parecido a crear soporte de transacciones dentro del sistema de transmisión y garantizar que cada mensaje se procese (se transforme) y, lo que es más importante, se envíe.

He leído sobre Kafka DirectStreams. Dice que para una recuperación de fallas robusta en modo DirectStreaming, se debe habilitar la comprobación de Spark, quealmacena las compensaciones junto con los puntos de control. Pero la gestión de la compensación se realiza internamente (configurando los parámetros de configuración de Kafka como ["auto.offset.reset", "auto.commit.enable", "auto.offset.interval.ms"]). No habla de cómo (o si) podemos personalizar las compensaciones de confirmación (una vez que hemos cargado una base de datos, por ejemplo). En otras palabras, ¿podemos establecer"auto.commit.enable" falsificar y gestionar las compensaciones (no muy diferente a una conexión de base de datos) nosotros mismos?

Cualquier orientación / ayuda es muy apreciada.

Respuestas a la pregunta(1)

Su respuesta a la pregunta