ApacheCalcite是否提供了添加自定义子句或语句的方法?

e37o9pze  于 2021-06-25  发布在  Flink
关注(0)|答案(1)|浏览(331)

我目前正在做一个项目,扩展sql的功能,以支持更多基于apacheflink的流计算特性。
在做了大量的搜索之后,我发现calcite是一个很好的工具来帮助我解析、验证和优化那些sql查询,但是calcite的流式支持还不成熟,所以我必须改进它以满足我的需要。
因此,我想知道是否有一种方法可以添加自定义条款,如

CREATE TABLE my_table (
    id   bigint,
    user varchar(20)
) PARAMS (
    connector 'kafka',
    topic     'my_topic'
)

它使用params来定义如何从kafka连接器接收数据,并将其视为一个动态表作为要flink的数据源。
由于这方面的信息太少,如果你们中有人能提供一些提示,我将不胜感激。
谢谢:)

eqqqjvef

eqqqjvef1#

在最新版本(1.15.0,2017年12月11日)之前,ApacheCalcite不支持ddl语句,例如 CREATE TABLE 或者 DROP TABLE . 原因是
select和dml是标准化的,但是ddl倾向于特定于数据库,所以我们的策略是在calcite之外进行ddl扩展。
(见方解石开发邮件列表)。
使用方解石1.15.0,社区为ddl语句添加了基本支持。这个特性是作为一个可选模块实现的,它展示了如何定制ddl语句(参见文档)。因此,仍然期望使用calcite的系统根据自己的需要定制解析器和ddl语法。

相关问题