Hi all! I want to discuss making the Table API jars part of the "flink uber jar" in "/lib" by default.
So far, the Table API was an optional dependency in "/opt". With the current effort to make it a first class API in Flink, it would be good experience if the Table API was available by default. There are a few open questions, though: (1) Java only, or Scala as well? ==> Ideally the Scala Table API is no runtime dependency, but only a client-side (pre-flight) dependency and simply part of the user program, not part of Flink's "/lib" (2) Which runner? Flink or Blink? ==> Ideally both ==> Do we need to rename the Blink classes to have ".blink." in the package to avoid class name clashes? ==> Do we need to shade/relocate much to avoid dependency clashes? (3) What should happen with the legacy BatchTableEnvironment (DataSet based) module? ==> Should be possible to simply add this as well, if the Flink runner is included anyways. Note that this does not mean users add a dependency to everything when they develop, so they should not see all environments. It simply should make table programs executable without moving stuff from /opt to /lib Best, Stephan