我目前正在做一个扩展SQL功能的项目,以支持更多基于Apache Flink的流计算功能。
经过广泛的搜索,我发现 Calcite 是一个很好的工具,可以帮助我解析、验证和优化这些 SQL 查询,但 Calcite 的流式支持仍然不成熟,所以我必须改进它以满足我的需求。
因此,我想知道是否有办法添加自定义子句,例如
CREATE TABLE my_table (
id bigint,
user varchar(20)
) PARAMS (
connector 'kafka',
topic 'my_topic'
)
它使用 PARAMS 来定义如何从 Kafka 连接器接收数据,并将其视为动态表作为 Flink 的数据源。
由于这方面的信息很少,如果你们中的有人能提供一些提示,我将不胜感激。
谢谢 : (
在最新版本(1.15.0,2017 年 12 月 11 日(之前,Apache Calcite 不支持 DDL 语句,例如 CREATE TABLE
或 DROP TABLE
。原因是
SELECT 和 DML 是标准化的,但 DDL 往往是标准化的 特定于数据库,因此我们的政策是您进行 DDL 扩展 方解石外。
(请参阅方解石开发邮件列表(。
在方解石 1.15.0 中,社区增加了对 DDL 语句的基本支持。该功能是作为可选模块实现的,并展示了如何自定义 DDL 语句(请参阅文档(。因此,仍然期望使用方解石的系统根据自己的需要定制解析器和 DDL 语法。