非常感谢大佬,耐心回复 -----邮件原件----- 发件人: user-zh-return-3567-wxchunjhyy=163....@flink.apache.org <user-zh-return-3567-wxchunjhyy=163....@flink.apache.org> 代表 Benchao Li 发送时间: 2020年5月16日 21:50 收件人: user-zh <user-zh@flink.apache.org> 主题: Re: flink build-in 的 udf 的源码
Hi, Flink内置函数的实现方式跟udf不太一样,很多函数是直接用的代码生成来做的。 下面是以blink planner为例,大概说下流程: 1. FlinkSqlOperatorTable 这个类里面放的是内置函数表,这个表会被calcite parse SQL的时候用到,直接把这些函数识别为具体的某个函数定义。 2. 然后再代码生成阶段,会识别到这些函数,根据不同的函数定义,生成不同的函数实现调用。这部分你可以直接看下`org.apache.flink.table.planner.codegen.calls`这个package下的代码。 3. 上面第2条说的主要是scalar function的生成方式,agg function还要特殊一点,这部分可以参考下`org.apache.flink.table.planner.functions.aggfunctions`这个package下的代码。 venn <wxchunj...@163.com> 于2020年5月16日周六 下午3:53写道: > 各位大佬,请问下,flink 内置的 udf 的源码在什么位置,还有在哪里完成的函数注 > 册? 非常感谢各位大佬回复 > > > > Thanks a lot ! > > > > -- Benchao Li School of Electronics Engineering and Computer Science, Peking University Tel:+86-15650713730 Email: libenc...@gmail.com; libenc...@pku.edu.cn