问题标签 [apache-calcite]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
479 浏览

java - 在方解石中如何用另一个 sqlNode 修改生成的 SQLNode?

如果我有一个从 sql 解析的 SqlNode节点

,并且我还有另一个从另一个子条件解析的SqlNode 子节点

然后,如何合并这两个,以便我可以得到一个 SqlNode 具有从 sql 解析的相同结果

我可以将 subNode 附加到 node 中 SqlSelect 的where属性吗?可能我一开始可以附加子条件,但在更复杂的情况下,使用正则表达式将非常困难。

0 投票
0 回答
141 浏览

scala - 使用来自 scala 的 Calcite 的 ReflectiveSchema

我正在尝试使用 scala 的方解石,并尝试传递一个简单的 scala 类以在运行时创建模式(使用ReflectiveSchema),我有些头疼。

例如,重新实现FoodMart JDBC 示例(在 Java 中运行良好),我将其称为简单new ReflectiveSchema(new Hr()),使用Hr在 scala 中重写的类:

我遇到一个错误:...SqlValidatorException: Object 'emps' not found within 'hr'。这个问题似乎与val字段实际上是private在 java 的字节码中创建的事实有关,而 calcite 中的实现似乎只能使用(通过 java 反射)通过.getFields()类的方法访问的字段。my_field.setAccessible(true)所以我想这个方向比简单或类似的方向需要更多的黑客攻击。

有没有其他方法可以通过 API 构造模式,避免反射和 JSON 的使用?

提前感谢您的任何建议

0 投票
1 回答
1048 浏览

sql - 如何获取 Apache Beam SQL 查询的输出模式?

我一直在使用 Beam SQL DSL,如果不提供手动了解输出模式的编码器,我将无法使用查询的输出。我可以推断输出模式而不是硬编码吗?

演练示例实际上都没有使用查询的输出。我使用Scio而不是普通的 Java API 来保持代码相对可读和简洁,我认为这对这个问题没有影响。

这是我的意思的一个例子。

给定一个输入模式inSchema和一些映射到 a 的数据源,Row如下所示:(在此示例中,基于 Avro,但同样,我认为这并不重要):

运行此管道会产生KryoException如下结果:

但是,插入一个RowCoder匹配的 SQL 输出,在本例中是一个 count int 列:

现在管道运行得很好。

鉴于我们指定了输入模式/编码器和查询,必须手动告诉管道如何编码 SQL 输出似乎是不必要的。在我看来,我们应该能够从中推断出输出模式 - 但除了直接使用 Calcite 之外,我看不出如何?

在 Beam Jira 上开票之前,我想我会检查一下我没有遗漏一些明显的东西!

0 投票
1 回答
300 浏览

apache-calcite - 如何利用方解石服务器

我们的项目依赖于calcite-core,但我们也需要使用DDL语句。服务器模块 (calcite-server) 为 Calcite 添加了 DDL 支持。我们如何利用 calcite-server 来支持我们的需求?

方解石的文件提到

如果您是子项目的作者,您的语法扩展不太可能与 calcite-server 中的语法扩展匹配,因此我们建议您通过扩展核心解析器来添加您的 SQL 语法扩展;如果你想要 DDL 命令,你可以从 calcite-server 复制粘贴到你的项目中。

这是否意味着我们应该自己扩展 Calcite-core 而不是直接使用 Calcite-server。有没有更好的办法?

0 投票
1 回答
294 浏览

elasticsearch - 当行类型为 _MAP 时,方解石从表中选择计数(intCol)(elasticsearch 示例)

我是方解石的新手。它提供的功能看起来很棒!
在进行研究时,我试图弄清楚如何使用示例ElasticSearch adapter进行一些基本的 SQL 查询。
在 中AbstractElasticsearchTable.getRowType,它将行映射到 MAP。

问题是:

  1. 询问:

    返回:

    /li>
  2. 询问:

    返回:

    /li>

我的目标是总结所有“流行”值
所以当我构造这样的查询时:

错误是:

有人可以指出正确的方向来弄清楚如何使用示例中的这种映射进行聚合吗?

为了执行这个查询,我在ElasticSearchAdapterTest.java.

0 投票
0 回答
112 浏览

java - 可以使用 Apache calcite 通过第三方 DB 应用程序连接到 Gemfire 9.x

我正在使用托管在 tomcat 上的第三方应用程序,它只允许 jdbc 连接来查询数据库。在新的数据源配置向导中,我插入了以下详细信息

URL: jdbc:calcite:model=/someLocation/jdbcConnectionModel.json

Driver: org.apache.calcite.jdbc.Driver

/someLocation/jdbcConnectionModel.json 内容:

我在应用程序可以访问的tomcat的lib文件夹中复制了以下jar:

但它给出了一个错误:

测试连接时出错,请验证 DataSource 配置并重试:无法加载 JDBC 驱动程序类 'org.apache.calcite.jdbc.Driver'

有什么我想念的吗?

我已经尝试过使用java代码并且它有效:

上面的代码从缓存中获取数据并正确返回。请帮忙。

0 投票
0 回答
1037 浏览

jdbc - Kafka Connect - NoClassDefFoundError:无法初始化类 org.apache.calcite.jdbc.Driver

使用 Confluent 发布新的源连接器时:

curl -X POST -H "Content-Type: application/json" -d @db2-source-conn-incr.json http://localhost:8083/connectors

我收到这条消息:

我已经重新启动了我的服务,但是在尝试创建新的连接器时得到了这个。

这是日志文件消息:

0 投票
2 回答
2257 浏览

sql - Calcite 如何处理数据转换?

我正在尝试将存储为字符串的日期转换为日期,例如

YYYYMMDD(字符串)到 YYYY-MM-DD(日期)

据我所知,没有检查输入格式和输出格式的转换功能,我尝试了手动逻辑,例如

但是 Apache SQL Validator 不接受这点,有人在这里看到问题吗?

0 投票
1 回答
218 浏览

sql - 使用方解石修改 Sql Query 中的选择标识符

我想使用 Calcite 修改 SQL 查询。例如

SELECT values FROM data

SELECT values as v FROM data

我可以使用 SqlVisiter 实现访问选择标识符的 SqlNode。

现在我应该怎么做才能更新 SqlNode?

0 投票
1 回答
202 浏览

sql - 获取 Apache Calcite 生成的关系代数

我正在尝试构建一个从 SQL 到某种格式的翻译器,我可以使用我的代码来解析和执行。是否可以通过 Apache Calcite 解析查询并以某种可解析格式(如 JSON)获取输出?