iceberg icon indicating copy to clipboard operation
iceberg copied to clipboard

Kafka Connect: Add table to topics mapping property

Open igorvoltaic opened this issue 8 months ago • 2 comments

The property which allows mapping Kafka topics to Iceberg tables:

An example config would look like: iceberg.tables.topic-to-table-mapping=some_topic0:table_name0,some_topic1:table_name1

Similar approach implemented in SnowflakeSink, ClickhouseSink, Aiven JdbcSink. Probably I can call it a standard way of static routing data in sink connectors at the moment. The reason I stated thinking of implementing this because it isn't obvious from the config (or readme) how one should map the topics to tables in the original version because there is no clear indication of where the .route-regex is applied.

This could be done for .partition-by and .id-columns configs as well, but using tables as map keys is such case.

I am making the same PR as the one in the https://github.com/tabular-io/iceberg-kafka-connect/pull/223 because I was told that it is being moved to this core repository. It seems that the code hasn't been fully migrated to this core repository yet and I am aware of there should be further tasks such as adding the rest of functionality from the above PR into IcebergSinkTask (as I see it), but would like to share the idea and get initial feedback. Thanks!

igorvoltaic avatar Jun 02 '24 08:06 igorvoltaic