Apache Calcite在哪里存储网格?

问题描述

我正在发现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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...