数据源的统一与拆分 apache calcite 的雄心与现实

随笔

从千万粉丝"何同学"抄袭开源项目说起,为何纯技术死路一条?

数据源的统一与拆分 apache calcite 的雄心与现实

报警系统的指标、规则与执行闭环

java 老矣,尚能饭否?

一骑红尘妃子笑,无人知是荔枝来!

数据库的分类

数据库作为我们常用的底层服务之一,有很多的种类。

每一种数据库都有对应的查询语句。比如 mysql / oracle / mongodb / es / vm 等等...

这么多,怎么记得住呢?

统一

有没有类似于 slf4j 统一日志输出一样,也有人统一一下 SQL 的查询呢?

答案是有的。

apache calcite 提供了一个行业标准的 SQL 解析器和验证器,一个可定制的优化器,具有可插拔规则和成本函数,逻辑和物理代数运算符,从 SQL 到代数(以及相反)的各种转换算法,以及许多适配器,用于在 Cassandra、Druid、Elasticsearch、MongoDB、Kafka 等系统上执行 SQL 查询,配置最小。

方言

不过实际使用中,发现对于一些方言语法的兼容还是没那么好。

一开始想设计 SQL 引擎的时候使用,但是实际上发现业务方使用 SQL 造诣非常之高,乃至很多语法 calcite 并不支持。

所以使用体验反而会很差,权衡之下, mysql/oracle 还是选择了使用原生的语法。

为什么不能全部统一

不同的数据库解决不同的场景难题,不同的流派有着自己的理念优势,不同的民族有着独特的文化美食。

取长补短,兼容并包,方是正道。

相关推荐
技术小结-李爽17 分钟前
【工具】Maven的下载、安装、使用
java·maven
极创信息20 分钟前
Linux挖矿病毒深度清理实战教程,从进程隐藏、Rootkit驻留到彻底根除
java·大数据·linux·运维·安全·tomcat·健康医疗
努力成为AK大王26 分钟前
并发编程的核心挑战、优化方案与核心知识点总结
java·开发语言·数据库
云烟成雨TD30 分钟前
Agent Scope Java 2.x 系列【10】技能(Skill)
java·人工智能·agent
摇滚侠34 分钟前
SpringMVC 入门到实战 DispatcherServlet 源码解读 92-95
java·后端·spring·maven·intellij-idea
键盘歌唱家1 小时前
Spring AI 入门分享:它和“直接调 API“到底差在哪
java·人工智能·spring
宸丶一2 小时前
Day 10:LangGraph - Agent 的图执行引擎
java·windows·python
hikktn2 小时前
Excel 导出 OOM 预防实战:30 万行从堆溢出到 50MB 的演进
java·excel·easyexcel
风味蘑菇干2 小时前
WTomcat服务器
java·服务器
燕-孑2 小时前
tomcat详解(基础到高级生产)
java·tomcat