问题描述
我正在发现Apache Calcite功能,并对其基于lattices概念创建图块并将其用于用户查询的功能感兴趣。我目前正在玩一个简单的示例,更多或从文档中复制,只有我的示例是基于JDBC的,而不是基于内存的:
{
"version": "1.0","defaultSchema": "tpch","schemas": [
{
"name": "tpch","type": "jdbc","jdbcUrl": "jdbc:postgresql:***","jdbcSchema": "tpch","jdbcUser": "***","jdbcPassword": "***"
},{
"name": "adhoc","lattices": [
{
"name": "star","sql": [
"SELECT 1 FROM \"tpch\".\"out_tpch_vw__lineitem\" INNER JOIN \"tpch\".\"out_tpch_vw__part\" ON ( \"out_tpch_vw__lineitem\".\"l_partkey\" = \"out_tpch_vw__part\".\"p_partkey\")"
],"auto": true,"algorithm": true
}
]
}
]
}
显然,此设置有效,即创建并使用了图块,因为对于以下查询而言
SELECT "out_tpch_vw__part"."p_brand","out_tpch_vw__lineitem"."l_shipdate",SUM("out_tpch_vw__lineitem"."l_extendedprice")
FROM "out_tpch_vw__lineitem"
INNER JOIN "out_tpch_vw__part"
ON ("out_tpch_vw__lineitem"."l_partkey" = "out_tpch_vw__part"."p_partkey")
GROUP BY "out_tpch_vw__part"."p_brand","out_tpch_vw__lineitem"."l_shipdate"
我有这个计划:
EnumerableCalc(expr#0..2=[{inputs}],p_brand0=[$t1],l_shipdate=[$t0],EXPR$2=[$t2])
EnumerableTableScan(table=[[adhoc,m{10,30}]])
我的问题是:
- 在何处创建晶格架构(在我的情况下为
adhoc
)?如何访问和查询其内容? - 我认为上一个问题的答案是“内存中的某处”。如果是这样,是否可以保留磁贴?理想情况下是源数据库。
- 除了1中的示例以外,还有谁能为我指出更详细的文档?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)