原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。
我最近装上了DBeaver,原因是很多人捧它。好家伙,很好用。但从打开它的第一眼,我就知到它的开发语言是Java,因为每增加一种数据库类型,就需要下载一个对应的jar
包。
很好很好,不用再纠结navicat
是不是盗版了,也不用再安装能把系统搞崩溃的PL/SQL
了。
有如此发展,DBeaver
得的是Java
的恩泽,沾的是JDBC
的雨露,天生具有跨平台的基因。DBeaver还提供了eclipse的插件,从侧面上证明它的GUI是使用Eclipse开发的。
这让我这种一度怀疑Java GUI
发展的人,猝不及防的呛了一口屎。
它能干什么
那这个工具有何强大之处呢?首先就是它支持非常丰富的数据库。
新建链接时,我们能够从这个界面一窥全貌。除了常见的MySQL,还有各种各样从来没见过没听过的数据库。我瞪着我漂亮的眼睛数了数,总共86
个!当然,商业版会有更多的赠送。
没有功劳,也有苦劳!各大软件厂商都是这么玩的,管它用得着用不着,先到碗里来再说。
但其实DBeaver还是耍了个小聪明的。如果你想要使用某种数据库,需要先下载它的JDBC驱动。有了驱动,它才会拥有连接数据库的小马达。比如,下面是Oracle数据库驱动下载的截图。
下载驱动要联网,所以这个工具,对一些早九晚五玩局域网的公司,是玩不转的。驱动也一定要下对,因为有些数据库的驱动是不像后兼容的。缺少某些功能会影响正常运行。这些显而易见的东西,就不用我提醒了吧。
具体的功能,和其他的数据库管理软件是差不多的。该有的都有。
- 数据库管理
- 表设计
- 数据浏览
- 查询窗口等
非常有意思的是,当你聚焦到某个库上的时候。在右边的窗口,会出现ER 图
这样的选项卡。
这个功能很鸡肋,因为它生成的图,丑的几乎没法看,我都不好意思截图。所以乐呵乐呵就行,最常用的还是SQL窗口,SQL编辑器。
其实,DBeaver是支持Redis的,可惜的是只有商业版支持。从下图可以看出,什么MongoDB,Cassandra,InfluxDB,都不在话下。想想也确实如此,就是个驱动适配的工作罢了。
为什么需要数据库管理软件
但为什么现在的开发,需要一款得心应手的SQL管理软件呢?关于这方面的原因,我有话要说。
SQL是个伟大的发明。
如此斩钉截铁的结论,不是我胡诌。目前,不论是大数据,还是NoSQL,最后都不得不向SQL妥协,提供了自己的SQL版本,比如Hive,再比如ES。
但SQL对程序员来说,又是万恶之源。
假如你的公司比较变态,同时在用MySQL、Oracle,甚至SQL Server之类的,按照官方的指引,你就需要安装三个客户端,一般配置的电脑什么都没跑就先炸了。每家公司的客户端,除了长得不一样,SQL的表现形式也不一样。比如说分页,在MySQL下是limit,到了Oracle下面就成了rownum。
这种人为的增加障碍的做法,我们把它叫做商业,叫做护城河。但对从业者来说,就是一种伤害。
学会了MySQL的sql编写,甚至存储过程,别想当然的就认为自己能玩转Oracle。一个数据库DSL,竟然要在其中搞一些开发语言的东西,所以现在的程序员从业者,与其叫做专家
,不如叫做踩坑
达人更合适一些。
DBeaver能够在工具视图层面统一了SQL和NoSQL,甚至信心满满的为NoSQL用户提供了花钱的渠道,不得不说是一件好事。但无论如何,它解决的问题都是表面问题。目前没有任何一家企业能够统一SQL领域乱七八糟的现状,每个厂商都在卖力的扭动身肢扩展自己的SQL,卖力的推销用户几乎永远用不到的东西。
无论如何,恭喜DBeaver,杀出重围,慢慢的替掉Navicat,datagrip。
PS:最近在朋友圈发现竟然有卖《如何使用DBeaver》的教程的。我心里有点小嘀咕,如果你DBeaver还需要学的话,你确定能够搞得定SQL这门语言么?你只需要有能力把它下载下来就行了。
作者简介:小姐姐味道 (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。我的个人微信xjjdog0,欢迎添加好友,进一步交流。