【问题标题】:Apache Calcite Data Federation UsecaseApache Calcite 数据联合用例
【发布时间】:2018-11-28 03:02:56
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您好,您能找到问题的答案吗?我有类似的目标,即数据联合。
  • 不,我没有找到任何答案。我认为应用程序必须通过方解石提供的关系代数来实现所有功能。我的理解是 Calcite 不提供开箱即用的数据联合(查询分解)

标签: apache-spark apache-calcite


【解决方案1】:

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

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

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

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

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

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

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

【讨论】:

  • 你有任何例子可以证明这一点吗?我对这个场景非常感兴趣(联合查询两个关系源)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多