Spark로 Kafka에서 데이터를 읽을 때 정확한 1회 전송을 보장하려면 어떻게 해야 하나요?
정확히 한 번만 전송되도록 하려면, Kafka의 무능력한 프로듀서 설정과 Spark Structured Streaming의 체크포인트 메커니즘을 사용할 수 있습니다. 이는 싱크가 델타 테이블인 경우 달성할 수 있지만 싱크가 다른 카프카 토픽인 경우에는 불가능합니다.
How can I ensure exactly-once delivery when reading data from Kafka with Spark?
To ensure exactly once delivery, you can use the idempotent producer setting in Kafka and the checkpointing mechanism in Spark Structured Streaming. This is possible to achieve if your sink is a delta table, but not if the sink is another Kafka topic.