1

只想检查 Apache Calcite 是否可用于用例“数据联合”(使用多个数据库进行查询)。

这个想法是我有一个主查询(5 个表),其中包含来自一个数据库(比如 Hive)的表和来自另一个数据库(比如 MySQL)的 3 个表。

  • 我可以从一个 JDBC 客户端界面对多个数据库执行主查询吗?
  • 如果可能的话;查询执行(尤其是数据库间连接)发生在哪里?
  • 另外,我可以从 Calcite 获得一个可以在另一个执行引擎中显式执行的物理计划吗?

我从 Calcite 文档中读到它可以下推JoinGroupBy我无法理解?谁能帮我理解这一点?

4

1 回答 1

3

我会尽力回答。您也可以将问题发送到邮件列表。 dev@calcite.apache.org你更有可能在那里得到答案。

我可以从一个 JDBC 客户端界面对多个数据库执行主查询吗?如果可能的话;查询执行(尤其是数据库间连接)发生在哪里?

是的你可以。Inter 数据库连接发生在您的内存中,其中 calcite 运行。

我可以从 Calcite 获得一个可以在另一个执行引擎中显式执行的物理计划吗?

是的你可以。很多方解石消费者都在这样做。但你将不得不围绕方解石规则系统,我的意思是excute

我从方解石文档中读到它可以下推 Join 和 GroupBy 但我无法理解?谁能帮我理解这一点?

这些是引擎所做的 SQL 优化。想象一个 groupBy 可能发生在一张小桌子上,但实际上是在加入一张大桌子后指定的。

于 2015-12-13T12:36:54.737 回答