在apache方解石中创建带有动态列的表

时间:2019-04-22 10:12:34

标签: apache-calcite

图形数据库中有两个表。 用户{id,name} 组{id,name}

用户通过边缘连接到组。不,我想通过带有where子句的apache方解石查询此内容 从User中选择*,其中User.Group.id =“ Foo”

由于apache方解石接受具有预定义表和预定义列的Schema,因此上述查询在验证步骤中失败。实现此方法的一种方法是用四列定义用户{id,name,Group.id,Group.name}。现在的问题是我的情况:一个表可以连接到多个其他表,并且深度可以达到6深度。用其子类的所有列创建一个表,并导致一个包含很多动态列的表。

有没有一种方法可以将表中的列定义为它们在查询中的显示方式。

1 个答案:

答案 0 :(得分:0)

查看已解决的问题https://issues.apache.org/jira/browse/CALCITE-1150

它将DynamicRecordType引入Apache Calcite。这是建议的规范https://docs.google.com/document/d/1vCWlqRyJQCtYbtVAjGOKP-8BD4_hrhoM9-4qbdoJs6k/edit

我认为Apache Drill项目已使用它,请参见https://github.com/apache/drill/search?q=DynamicRecordType