前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Calcite系列(十二):可插拔性&JDBC驱动

Calcite系列(十二):可插拔性&JDBC驱动

原创
作者头像
Yiwenwu
修改2024-05-04 19:54:33
6130
修改2024-05-04 19:54:33
举报
文章被收录于专栏:Calcite剖析

可插拔性

为了实现动态数据源管理框架的目标,Calcite提供了丰富的可插拔能力和扩展性。用户可以根据使用场景进行自定义扩展。相关可插拔扩展的组件包括:

  1. SqlParserImplFactory:语法解析器,可扩展特定的SQL方言,例如,新增SqlSparkParserImpl 用于Spark语法解析
  2. Lex:词法配置,可配置标识符处理行为,例如,是否大小写敏感,引号类型(单引号,双引号,反引号)
  3. Conformance:SQL标准模式,定义如何处理与特定SQL标准的特性,例如,STRICT_2003 严格遵循SQL 2003标准,DEFAULT 允许非标准的SQL特性
  4. SqlOperator:运算符,支持内置函数和引擎函数扩展,例如,基于SqlLibraryOperators 中新增Spark特有函数
  5. SqlRule:优化规则,扩展优化器的可应用优化规则,例如,新增虚拟表Filter算子规则 VirtualTableFilterRule
  6. SqlDialect:SQL方言,适配不同引擎的方言特性,例如,新增StarRocks引擎方言StarRocksSqlDialect

Calcite可插拔定制扩展可分为以下几个方面:

  • 适配器:基于Adapter模式连接异构数据源,可编写自定义Adapter连接特定的扩展数据源
  • SQL解析:基于FreeMarker模板化,提供了高度可配置的 SQL 解析器,可继承已有的语法解析进行自定义扩展
  • 查询优化:查询优化器是可插拔的,支持自定义优化规则和代价模型,可根据特定场景和数据源,实现个性化的优化策略
  • 函数库:支持添加自定义的UDF、UDTF、UDAF等,支持不同的模式Function查找
  • 类型系统:提供了可扩展的类型系统,支持自定义数据类型,可根据业务场景扩展或覆盖默认的类型系统
  • 执行框架:除了内置迭代器执行,Calcite也支持插入自定义的执行策略或与特定的执行引擎集成

JDBC驱动

Apache Calcite Avatica是Calcite的一个子项目,目标是提供一个通用的、可重用的框架,使得开发者可以更容易地构建Driver驱动程序,目前已提供JDBC、ODBC标准的数据库驱动。

Avatica还提供了Avatica Server的组件,它是一个独立的应用,可提供数据库服务。Avatica Server使用Avatica的API和工具,处理客户端的SQL请求,并将结果返回给客户端。使得Avatica可以作为一个轻量级的、独立的数据库服务器使用。

更多详情可参考官方文档:Avatica Background

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 可插拔性
  • JDBC驱动
相关产品与服务
大数据处理套件 TBDS
腾讯大数据处理套件(Tencent Big Data Suite,TBDS)依托腾讯多年海量数据处理经验,基于云原生技术和泛 Hadoop 生态开源技术提供的可靠、安全、易用的大数据处理平台。 TBDS可在公有云、私有云、非云化环境,根据不同数据处理需求组合合适的存算分析组件,包括 Hive、Spark、HBase、Flink、Presto、Iceberg、Elasticsearch、StarRocks 等,以快速构建企业级数据湖仓。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档