前言
UJDBC使用起来如同一个标准的JDBC驱动,其联邦查询功能可以简化数仓,节约存储,减少贴源层。
随着中国企业数字化转型的深入,数据架构的复杂性和数据孤岛问题日益凸显。不同业务系统往往使用不同的数据库(如MySQL、Oracle、SQL Server等),导致数据分散、难以整合,形成了所谓的“数据孤岛”。这不仅影响了企业的数据分析和决策效率,还增加了IT管理的复杂性。
作为一个数据工程师,你可能遇到过这样的场景:报表团队为了方便使用,要求把多个数据库复制到一个库里面,因此你开发了几千个贴源层作业;贴源层调度时间不合理导致数据缺失或时效性差;承载了贴源层的数据库不堪重负,归档日志三天两头把磁盘占满;数仓的层级过多,数据问题的排查异常困难;ETL作业重调时牵一发动全身,手工操作风险极大。
UJDBC(通用JDBC驱动)作为一种创新的数据连接解决方案,能够有效解决这些问题,并为企业带来诸多好处。
一、联邦查询:打破数据孤岛,实现跨数据库查询
UJDBC的核心优势之一是其联邦查询功能。通过UJDBC,企业可以在一个JDBC连接中同时访问多种类型的数据库(如MySQL、Oracle、SQL Server、达梦、OceanBase等),并实现跨数据库的表关联查询。这意味着企业不再需要将数据从不同的数据库中导入到单一的数据仓库中,而是可以直接在多个数据库之间进行联合查询。
这种联邦查询的能力极大地简化了数据整合的流程,帮助企业快速获取跨系统的数据视图,从而提升数据分析的效率和准确性。
联邦查询意味着贴源层可以取消,不仅解决了贴源层的时效性问题,可以成倍降低的存储成本。
二、自主可控:减少对外部技术的依赖
对于几乎所有国企,技术自主可控是系统建设的硬性条件。UJDBC作为一个基于Presto的开源免费项目,具有高度的自主可控性,企业可以轻松对UJDBC进行定制和优化。此外,UJDBC已经支持多种国产数据库,如达梦和OceanBase,未来还计划支持更多国产数据库(如人大金仓、南大通用等),进一步增强了其在国内企业中的适用性。
通过使用UJDBC,企业可以减少对国外技术的依赖,降低潜在的技术封锁风险,同时也能更好地满足国内数据安全和合规要求。
三、避免漫长复杂的采购流程
当前联邦查询的商用解决方案极少,很容易做成单一来源采购。在国企采购过外部软件的人肯定体会过,走流程的时间都足够研发出来了。而UJDBC作为一个代码量不大的开源项目,避免了企业采购的繁琐流程,这对于急需快速上线的项目尤为重要,能够显著缩短项目的实施周期。
四、方便易用:简化开发与维护
UJDBC的使用非常简便,只需在Java环境中配置一个JDBC连接,即可访问多个数据库。UJDBC受益于Presto,开发者无需学习多种数据库方言,只需使用标准的SQL语句即可进行查询多种数据类型数据源。这不仅降低了开发门槛,还减少了代码的复杂性,提升了开发效率。
虽然初次连接时会有一定的启动时间(笔者的笔记本上约4秒),但一旦连接建立,后续的查询速度都很正常。对于企业来说,这意味着可以在不牺牲性能的情况下,轻松实现跨数据库的数据整合。
五、 未来可扩展性:支持更多国产数据库与安全增强
UJDBC未来将继续扩展对更多国产数据库的支持,如人大金仓、南大通用等。
此外,UJDBC还计划通过认证、端口保护等方式提升安全性。
UJDBC不具备Presto的分布式、高可用、安全认证等优点,却能够成功的解除系统与Presto的耦合,可以说有利有弊。
UJDBC的试用非常容易,就当作普通的JDBC即可,在git说明中有介绍。
作者在一家金融机构任职,做这个小项目的目的是为社会做出贡献。恳请各位提出意见与建议。
由于当前只有我自己,有些bug解决之后,README的撰写可能不及时。恳请感兴趣的朋友帮忙一起做。
https://github.com/yigo3000/UJDBC