java之如何在Apache Drill中实现Mongo Storage Plugin的INNER JOINS(下推)优化

xing901022 阅读:10 2024-05-22 17:00:29 评论:0

我想延长Apache Drill Mongo Storage Plugin推下 INNER JOIN。所以我想改写INNER JOIN进入 mongo 聚合管道。

我们需要如何开始实现 Apache Drill 中的重写? .

这是一个 SQL 示例:

SELECT * 
FROM `mymongo.db`.`test` `test` 
  INNER JOIN `mymongo.db`.`test2` `test2` 
  ON (`test`.`id` = `test2`.`fk`) 
WHERE `test2`.`date` = '09.05.2017' 

我找到了 push downWHERE Mongo 存储插件中的子句。但我仍在努力为 INNER JOINS 做同样的事情. public class MongoPushDownInnerJoinScan extends StoragePluginOptimizerRule 的构造函数如何?看起来像?相当于 MongoGroupScan ( AbstractGroupScan ) 我必须实现吗?任何帮助将不胜感激。

请您参考如下方法:

如果您想使用类似于 SQL 的聚合框架进行内部连接,您可以使用管道阶段 $lookup 来完成。

$lookup: 
    { 
    from: <collection to join>, 
    localField: <field from the input documents>, 
    foreignField: <field from the documents of the "from" collection>, 
    as: <output array field> 
    } 
} 


标签:java
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号