iceberg
iceberg copied to clipboard
Kafka Connect: Record converters and delta writers
This PR is the next stage in submitting the Iceberg Kafka Connect sink connector, and is a follow up to https://github.com/apache/iceberg/pull/8701 and https://github.com/apache/iceberg/pull/9466. It includes the record converters and the delta writers, with related config and tests. The delta writers are modeled after those in the Flink sink, and use equality deletes to apply deltas.
Still not included in the sink are the commit controller, integration tests, or docs, which will be added in follow up PRs. For reference, the current sink implementation can be found at https://github.com/tabular-io/iceberg-kafka-connect.
Maybe @fqaiser94 is also interested in reviewing this :)
A few comments/questions, but overall looks good. You might want to double check all the access levels for classes as I think we're generally overexposing.
looks good to me overall, mostly questions/nits 👍
FYI, I removed the delta writers along with upsert and CDC related code.
I believe I've addressed all comments, LMK if there is anything else.
What's expected to be included in the next kafka-connect PR?
Asking b/c I'm doing some work on implementing zombie-fencing in tabular/iceberg-kafka-connect currently and we may want to wait to see what that looks like in terms of code changes before tackling the worker/coordinator portions of the code (in case it ends up being a large refactor).
What's expected to be included in the next kafka-connect PR?
Asking b/c I'm doing some work on implementing zombie-fencing in tabular/iceberg-kafka-connect currently and we may want to wait to see what that looks like in terms of code changes before tackling the worker/coordinator portions of the code (in case it ends up being a large refactor).
The next submission will be the coordinator piece. I have already addressed zombie fencing in that upcoming code, so I feel we can proceed with it for consideration.
I was planning on merging this, unless someone wants to give more feedback, cc @fqaiser94 @danielcweeks