kbendick opened a new issue #3050: URL: https://github.com/apache/iceberg/issues/3050
As of Flink 1.13, a new interface `Factory` has been added to the Table API, to better support the usage of additional catalogs (particularly within Flink SQL): https://github.com/apache/flink/commit/4497e96b96724aee6637f19f64ffc8ba47a9b0ac We already extend `CatalogFactory`, but in Flink 1.13 `CatalogFactory` was updated to also implement the new `Factory` interface. This provides many benefits including: - A definitive way to get the ClassLoader to instantiate specific Iceberg catalogs and access the Hadoop configuration etc (class loading in Flink is somewhat complicated and this new utility method `CatalogFactory.Context#getClassLoader` would likely greatly simplify this) - Remove our dependency on the deprecated `TableFactory` interface, which is still present for backwards compatibility but will be removed eventually Our [`FlinkCatalogFactory`](https://github.com/apache/iceberg/blob/master/flink/src/main/java/org/apache/iceberg/flink/FlinkCatalogFactory.java#L60) would need to be updated to implement the new `Factory` interface of `CatalogFactory`. As the upstream Flink `CatalogFactory` seems to maintain backwards compatibility (I.e. it implements both `TableFactory` as before, as well as the new interface `Factory`), this should hopefully be achievable without having to have version specific code. We may, however, need to implement two separate classes to continue to support Flink 1.12.x and lower. As the updated Flink `CatalogFactory` interface uses Java service provider interface, this seems like it should be doable. cc @openinx @JingsongLi @stevenzwu for your thoughts. =) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
