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

Reply via email to