开发者社区> 问答> 正文

ScanTableSource 为什么不支持SupportsFilterPushDown的问题

由于业务需要,我想在flink1.11.2中自定义一个ScanTableSource, 并想实现SupportsFilterPushDown特性。

但是在摸索的过程中发现,以下代码确似乎禁止使用SupportsFilterPushDown特性。

val unsupportedAbilities = List( classOf[SupportsFilterPushDown], classOf[SupportsLimitPushDown], classOf[SupportsPartitionPushDown],

classOf[SupportsComputedColumnPushDown], classOf[SupportsWatermarkPushDown]) unsupportedAbilities.foreach { ability => if (ability.isAssignableFrom(tableSource.getClass)) { throw new UnsupportedOperationException("Currently, a DynamicTableSource with " + s"${ability.getSimpleName} ability is not supported.") } }

SupportsFilterPushDown的介绍,Enables to push down filters into a {@link ScanTableSource}.

这样的话,是不是有点矛盾呢?

我怎么能在ScanTableSource上实现push down filters?

以及实现了SupportsFilterPushDown的source有哪些?

望知道的大佬告知,感谢。

*来自志愿者整理的flink邮件归档

展开
收起
小阿怪 2021-12-06 12:19:39 1064 0
1 条回答
写回答
取消 提交回答
  • 在1.11中,planner 并没有支持下表中的各种PushDown, 所以这里做了check,这是planner层面不支持的。在1.12里,planner层面已经支持了这些PushDown,所以这些check都没有了,用户可以自定义 connector 并实现各种PushDown,比如,1.12中已经支持了kafka source上的watermarkPushdown。

    因此,有这类需求建议基于1.12开发。*来自志愿者整理的flink邮件归档

    2021-12-06 13:22:35
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
POLARDB 产品特性和通用业务场景 立即下载
《深度解读MongoDB 最全面的增强版本4.4 新特性》 立即下载
荷鲁斯移动端第三方库安全检测引擎介绍 立即下载