dremio 的ArpDialect 简单介绍

dremio 的ArpDialect 让我们可以直接基于yaml 文件配置sql 类型以及处理,可以很大程度上简单jdbc 存储插件的开发
核心上还都是扩展的apache calcite sql 方言

核心部分

  • 参考代码
    截取了部分,同时基于yaml 处理了ArpTypeMapper,包含了不少类型映射,比较重要,好多地方都会用到
 
public class ArpDialect extends JdbcDremioSqlDialect {
    private final ArpYaml yaml;
    private final ArpTypeMapper typeMapper;
    private static final Set<SqlKind> MANDATORY_OPERATORS;
    private static final Logger logger;
 
    public ArpDialect(ArpYaml yaml) {
        super(yaml.getMetadata().getName(), yaml.getSyntax().getIdentifierQuote(), yaml.getNullCollation());
        this.yaml = yaml;
        this.typeMapper = new ArpTypeMapper(yaml);
    }
    .....
  • yaml 类型映射

简单参考

 

 

  • ArpTypeMapper 类型的引用
    实际上dremio jdbc 处理部分都依赖了ArpTypeMapper,进行类型转换处理(核心使用建议详细阅读源码)

参考图

 

 

参考实现子类

 

 

说明

dremio 的ArpDialect 实现是很方便的,简化了不少类型处理,我们基于yaml 定义就行了,arp yaml 定义可以参考以下链接

参考资料

https://www.dremio.com/resources/tutorials/how-to-create-an-arp-connector/

posted on   荣锋亮  阅读(47)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2021-03-04 pyroscope 参考使用
2021-03-04 pyroscope 很不错的基于golang 的火焰图分析工具
2019-03-04 混沌工程原则

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示