问题标签 [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.
java - 如何在 Calcite 中将项目、过滤器、聚合下推到 TableScan
我正在使用 Apache Calcite 来实现一个分布式 OLAP 系统,它的数据源是 RDBMS。RelNode
所以我想将树中的项目/过滤器/聚合下推到MyTableScan extends TableScan
. 在MyTableScan
,一个RelBuilder
得到推RelNode
。最后,RelBuilder
生成对源数据库的查询。同时,RelNode
应移动或修改原始树中的项目/过滤器/聚合。
据我所知,方解石不支持此功能。
当前限制:JDBC适配器目前只下推表扫描操作;所有其他处理(过滤、连接、聚合等)都在 Calcite 中进行。我们的目标是将尽可能多的处理下推到源系统,同时翻译语法、数据类型和内置函数。如果 Calcite 查询基于单个 JDBC 数据库中的表,则原则上整个查询都应该转到该数据库。如果表来自多个 JDBC 源,或者 JDBC 和非 JDBC 的混合,Calcite 将使用它可以使用的最有效的分布式查询方法。
在我看来,RelOptRule
可能是一个不错的选择。不幸的是,当我创建 new 时RelOptRule
,我无法轻松找到要删除节点的父节点。
RelOptRule
是一个不错的选择吗?任何人都有实现此功能的好主意?
谢谢。
java - 如何构建 Apache calcite Excel 适配器
我可以在哪里获得适用于 Apache calcite 的 Excel 适配器。
我正在尝试创建 ExcelEmumarator 类。
java - Apache Calcite 在 Web 应用程序中不起作用
我在我的项目中使用 Apache Calcite 来进行 CSV、Excel 和其他数据库管理。它在我通过 main 方法执行时工作,但在通过 Web 服务执行时出错
apache-calcite - 具有默认参数值的方解石函数
我正在使用 Apache Calcite 添加一些内置函数。现在,我想实现GROUP_CONCAT
类似 MySQL 的功能,将一列与一个分隔符连接起来。
函数类如下:
现在,我希望这个函数可以接受一个参数(不带分隔符)或两个参数。当只接受一个参数时,将第二个参数设置为默认值。
我没有找到在 Calcite 中设置默认参数值的任何方法。有实现此功能的方法吗?
java - Apache Calcite:将 SQL 解析树转换为关系表达式树,无需验证
我目前正在做一个项目,我想在其中解析一个 SQL 查询并为其创建关系表达式树。主要目标是识别查询中的加入伙伴。所以我想将连接表达式向下推到树的叶子上。为此,我决定使用 Apache Calcite。我的代码目前大致是这样的:
如果我尝试直接执行Planner的 rel-Method ,我会收到必须先验证查询的错误。这就是我面临麻烦的地方。我没有有效的架构。我只想将查询转换为关系查询计划。有没有办法跳过验证过程?
mongodb - Apache Calcite:处理 MongoDB 集合名称中的特殊字符
如果集合的名称包含特殊字符(例如?),是否有办法在 MongoDB 上执行 SQL 查询1a84375b-9bd0-4ec3-9f93-536ce380f813
?org.apache.calcite.sql.parser.impl.ParseException
我在执行我的语句时遇到。有转义字符吗?
java - 将 Kafka 与 Apache Calcite 集成
我正在尝试将方解石与 Kafka 集成,我引用了 CsvStreamableTable。
每个 ConsumerRecord 都使用以下代码转换为 Object[]:
枚举器实现如下,一个线程不断从kafka轮询记录并将它们放入队列,getRecord()方法从该队列轮询:
我测试SELECT STREAM * FROM Kafka.clicks
了,效果很好。rowtime 是显式添加的第一列,其值为 Kafka 的记录 Timestamp。
但是当我尝试
它抛出异常
druid - Calcite-Druid 适配器中的超唯一聚合
在我的 Druid 数据源中,我在其中一个字段上有一个 hyperUnique 聚合(摄取时间)。
我正在尝试COUNT(DISTINCT(<hyperunique_field>))
在这个聚合字段上做相当于。
Calcite Druid Adapter 是否支持它?如果是这样,正确的方法是什么?
在胶合板中,我可以做到COUNT_DISTINCT
。运行此返回 0 个计数。
SQL:
选择 floor("__time" to HOUR) time_bucket,"field_1", count(distinct("ingestion_time_aggregated_field")) as uniq from "datasource" where "__time" between '2017-01-01 00:00:00' 和 '2017 -01-02 00:00:00' and “field_1” in ('value_1') and “field_2”='value_2' and “field_3”='value_3' and “field_4”='value_4' group by floor("__time " to HOUR),”field_1" order by floor("__time" to HOUR);
摄取时间聚合字段:
groovy - Apache Calcite - ReflectiveSchema StackoverflowError
我正在尝试使用 ReflectiveSchema 创建一个简单的模式,然后尝试使用 Groovy 作为我的编程语言来投影一个员工“表”。代码如下。
我似乎正确地将“模式”对象传递给 ReflectiveSchema 类的构造函数,但我认为它在尝试获取 Employee 类的字段时失败了。
这是错误
这个例子有什么问题?
sql - Apache Calcite - 使用 SQL 访问 RESTFul 服务
我已经阅读了文档,我有点难以掌握应该如何为任何东西编写适配器。我想通过类似 SQL 的接口为业务人员简化 RESTful Web 服务的访问。
粗略的要求看起来像:
- 注册数据源,在本例中为端点
- 添加端点到表的映射
- 执行简单的选择查询
- 允许基于某些连接键但在客户端应用程序内存中执行连接
- 以表格格式表示输出