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/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2021-03-04 pyroscope 参考使用
2021-03-04 pyroscope 很不错的基于golang 的火焰图分析工具
2019-03-04 混沌工程原则