Hi, I would like to explain a bit more about the current dissusion[1] for the 
ways to decouple Hive connector with Flink Planner. 

The background is to support Hive dialect, the Hive connector is dependent on 
Flink Planner for the current implementation is generate RelNode and then 
deliver the RelNode to Flink.
 But it also brings much complexity and maintenance burden, so we want to 
decouple Hive connector with Flink planner. 

There're two ways to do that:
1. Make the hive parser just generate an Operation tree like Table API 
currently does.

2. Introduce a slim module called table-planner-spl which provide Calcite 
dependency and expose limit public intefaces. Then, still generating Calcite 
RelNode, the Hive connector will only require the slim module.

The first way is the ideal way and we should go in that direction. But it will 
take much effort for it requires rewriting all the code about Hive dialect and 
it's hard to do it in one shot.
And given we want to move out Hive connector in 1.16, it's more pratical to 
decouple first, and then migrate it to operation tree.
So, the FLIP-216[2] is for the second way. It explains the public interfaces to 
be exposed,  all of which has been implemented by PlannerContext. 

[1] 
https://docs.google.com/document/d/1LMQ_mWfB_mkYkEBCUa2DgCO2YdtiZV7YRs2mpXyjdP4/edit?usp=sharing
[2] 
https://cwiki.apache.org/confluence/display/FLINK/FLIP-216%3A+Decouple+Hive+connector+with+Flink+planner

Best regards,
Yuxia------------------------------------------------------------------
发件人:罗宇侠(莫辞)<luoyuxia.luoyu...@alibaba-inc.com.INVALID>
日 期:2022年03月25日 20:41:15
收件人:dev@flink.apache.org<dev@flink.apache.org>
主 题:[DISCUSS] FLIP-216 Decouple Hive connector with Flink planner

Hi, everyone

I would like to open a discussion about decoupling Hive connector with Flink 
table planner.  It's a follow-up discussion after Hive syntax discussion[1], 
but only focus on how to decouple Hive connector. The origin doc is here[2], 
from which you can see the details work and heated discussion about exposing 
Calcite API or reuse Operation tree to decouple. 
I have created FLIP-216: Decouple Hive connector with Flink planner[3] for it.

Thanks and looking forward to a lively discussion!

[1] https://lists.apache.org/thread/2w046dwl46tf2wy750gzmt0qrcz17z8t
[2] 
https://docs.google.com/document/d/1LMQ_mWfB_mkYkEBCUa2DgCO2YdtiZV7YRs2mpXyjdP4/edit?usp=sharing
[3] 
https://cwiki.apache.org/confluence/display/FLINK/FLIP-216%3A+Decouple+Hive+connector+with+Flink+planner

Best regards,
Yuxia

Reply via email to