数款典型数据库管理工具中的SQL脚本管理功能体验

662 阅读5分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 1 天,点击查看活动详情

由于最近在负责数据库管理工具中的脚本管理模块,特地对市面上的数款产品进行了调研。脚本管理作为数据库管理工具中重要的基础模块之一,在数款典型产品中有着不同的展示菜单以及相似的功能。下面将列举几款具有行业代表性的数据库管理工具产品,通过体验SQL脚本管理以对比其功能差异。

1. 阿里云DMS

       阿里云数据管理DMS(Data Management)是一款支撑数据全生命周期的一站式数据管理平台。DMS提供全域数据资产管理、数据治理、数据库设计开发、数据集成、数据开发和数据消费等功能。

       阿里云DMS控制台上,关于SQL脚本管理模块的功能简洁却实用,图1是连接了本地MySQL后,连接到某个库的SQL窗口页面,其中“我的SQL”菜单中是脚本管理模块的几个重要功能:脚本列表、添加脚本、管理脚本。

图片.png

图1 阿里云DMS SQL Console页面

1.1 添加脚本

       添加脚本页面如图2所示,需要填写脚本名(尝试脚本命名特殊字符无限制)、脚本可见权限、SQL内容(未进行SQL格式规范校验也可保存)。

图片.png

图2 添加SQL脚本

1.2 选择脚本(脚本列表)

选择脚本如图3所示,可展示当前的库的所有脚本。如果SQL脚本属性选择了“所有库”,则会显示在所有连接和所有数据库的脚本列表里;如果选择了“当前库”,则只会显示在当前连接的当前数据库。

图片.png

图3 选择脚本功能

1.3 管理脚本

管理脚本功能界面如图4所示,展示了SQL脚本的所有属性:标题、内容、适用范围、操作(打开、编辑属性、删除)。

图片.png

图4 管理脚本

1.4  DMS脚本管理模块总结

DMS的脚本管理模块包括了用户对脚本的基本功能需求:SQL文件存储、编辑(标题、内容、适用范围)、列表展示(根据当前库和所有库属性隔离可见性)。但是当前版本的功能类似于demo,还有许多地方可以拓展。

2. DBeaver

DBeaver是一款通用数据库管理工具,免费、跨平台、基于开源框架和允许拓展写作是其功能,它支持任何具有一个JDBC驱动程序数据库。

DBeaver的脚本管理模块主菜单如图6所示,点击“SQL编辑器”可以打开SQL脚本列表,如图7所示。这里的脚本可见性是以connection为隔离条件。

图片.png

图6 DBeaver的SQL脚本管理模块

图片.png

图7 DBeaver的SQL脚本列表

可以打开存放脚本的文件夹,如图8所示。并且DBeaver支持全局搜索关键词,如图9所示。

图片.png

图8 存放SQL脚本文件夹

图片.png

图9 全局搜索关键词

2.1  DBeaver的脚本管理模块总结

DBeaver的脚本管理功能已经比较完善,偏向于文件系统级别的存储和搜索,关于脚本的可见性是以connection进行区分,而不是表或者库。

3. Snowflake

Snowflake是一款数仓产品,其存储层目前支持Windows Azure、AWS、Google云。而该款产品的脚本管理是在Worksheets上,如图10所示。每个脚本作为一个worksheet进行保存,在SQL窗口的上方可以选择执行脚本的库表。

图片.png

图10 Snowflake页面的Worksheets功能

左侧connection列表里的查询菜单显示已经保存的SQL语句,如图11所示。并且SQL的可见性是以connection为单位区分,但其实SQL窗口上方可以选择connection和database执行。

图片.png

图11 Navicat显示已保存脚本

4.ByteBase

ByteBase是一款数据库 DevOps 和 CI/CD 团队协同工具,专为开发者和 DBA 打造。唯一被 CNCF Landscape 收录的 Database CI/CD 产品。本地可以通过docker镜像直接提起来使用。

其SQL编辑器窗口如图12所示。

图片.png

图12 SQL编辑器窗口

脚本在bytebase这里保存为“工作表”。可见性以用户作为区分,当前用户在不同实例下保存的工作表均可见。

图片.png

图13 工作表列表

“工作表”不能改标题,只能改内容,可进行分享

图片.png

图14 分享工作表

5. 数款产品脚本管理模块总结

通过上述几款产品的脚本管理模块体验后,总结对比出其中的一些异同如下表:

功能/产品阿里DMSDBeaverSnowflakeNavicatByteBase
脚本列表有,以Worksheets管理
脚本标题关键词搜索无,不过可打开文件夹搜索
脚本内容全局搜索
创建脚本有,以Worksheets管理
删除脚本有,无回收站有,并且本地历史记录可以复原有,无回收站有,无回收站有,无回收站
脚本分级可见性划分为“当前库”和“所有库”,如果选择了“所有库”,则所有连接都可以看到该脚本以connection为单位划分,选中脚本后可在窗口中选择connection和database每个Worksheets对应一个脚本,可以在SQL窗口中选择database和warehouse以connection为单位划分,选中脚本后可在窗口中选择connection和database通过不同的项目和用户区分,可分享
脚本规范性校验
脚本上传/下载可在本地打开存放脚本目录,将SQL放入目录即可可以选择“上传SQL以创建worksheet”,暂无看到下载可在本地打开存放脚本目录,将SQL放入目录即可

通过上述的对比列表,可以看出几款产品在对SQL脚本的“增删改查”功能都比较完善,DBeaver和Navicat因为安装在本地所以搜索SQL脚本方面的功能更为便捷。