Como confirmar manualmente o deslocamento no fluxo direto do Spark Kafka?

Eu olhei em volta, mas não encontrei uma resposta satisfatória para isso. Talvez esteja faltando alguma coisa. Por favor ajude.

Temos um aplicativo de streaming Spark consumindo um tópico Kafka, que precisa garantir o processamento de ponta a ponta antes de avançar as compensações de Kafka, por exemplo atualizando um banco de dados. É como criar suporte para transações no sistema de streaming e garantir que cada mensagem seja processada (transformada) e, mais importante, saída.

Eu li sobre o Kafka DirectStreams. Ele diz que, para recuperação robusta de falhas no modo DirectStreaming, o ponto de verificação Spark deve estar ativado, o quearmazena as compensações junto com os pontos de verificação. Mas o gerenciamento de deslocamento é feito internamente (a definição de parâmetros de configuração do Kafka como ["auto.offset.reset", "auto.commit.enable", "auto.offset.interval.ms"]). Ele não fala de como (ou se) podemos personalizar as compensações de confirmação (depois de carregar um banco de dados, por exemplo). Em outras palavras, podemos definir"auto.commit.enable" falsificar e gerenciar as compensações (não muito diferente de uma conexão com o banco de dados)?

Qualquer orientação / ajuda é muito apreciada.

questionAnswers(1)

yourAnswerToTheQuestion