我目前正在做一个项目,扩展sql的功能,以支持更多基于apacheflink的流计算特性。
在做了大量的搜索之后,我发现calcite是一个很好的工具来帮助我解析、验证和优化那些sql查询,但是calcite的流式支持还不成熟,所以我必须改进它以满足我的需要。
因此,我想知道是否有一种方法可以添加自定义条款,如
CREATE TABLE my_table (
id bigint,
user varchar(20)
) PARAMS (
connector 'kafka',
topic 'my_topic'
)
它使用params来定义如何从kafka连接器接收数据,并将其视为一个动态表作为要flink的数据源。
由于这方面的信息太少,如果你们中有人能提供一些提示,我将不胜感激。
谢谢:)
1条答案
按热度按时间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语法。