首页 > 数据库 >开源产品测评之 SQL 上线能力

开源产品测评之 SQL 上线能力

时间:2024-02-25 22:44:05浏览次数:19  
标签:Archery 上线 测评 规则 Yearning 开源 SQL SQLE

背景

 

近期,我司准备引入一款 SQL 审核产品来供内部流程使用,解决目前 SQL 人工上线的流程管控问题,目标是对业内的开源产品进行调研,选型一款作为落地方案,后期如果内部有需求可能会进行二次开发。我们最终选取 SQLE[1]、Yearning[2]、Archery[3] 进行了初步的使用和调研,我们内部关注产品的一些点:

  1. 是否较为简单的部署和运维;
  2. 规则是否能满足我们公司 SQL 规范,如果不满足至少要能二次开发;
  3. 具备 SQL 上线流程,是否满足要求;
  4. 产品稳定性,后期是否能得到支持。

下面是调研的过程,如果恰巧你也在调研 SQL 审核产品,希望能给你提供一些经验参考。

1、运维部署

功能对比

 SQLEYearningArchery
手工部署
Docker

体验对比

由于公司内网无法访问公网,因此没有使用 Docker 部署,基本采用手工部署的形式进行,SQLE 和 Yearing 部署基本都算顺畅,但是 Archery 需要安装依赖,最终是选择在自己电脑虚拟机上装的。

  • SQLE:手工部署是使用 RPM 包,不用安装操作系统依赖,一键安装和启停,使用 systemd 维护进程对运维较为友好,但是 RPM 会有操作系统限制(CentOS);进行建库操作和修改配置文件即可跑起来;
  • Yearning:手工部署使用 ZIP 包,解压后和 SQLE 类似,不用安装操作系统依赖;进行建库操作和修改配置文件,额外执行一下 Install 操作,即可跑起来;
  • Archery:手工部署需要安装 Python 和依赖,操作较为复杂,搞了大半天没有成功最终放弃,采用 docker compose 部署了。

体验排名

(SQLE = Yearning)> Archery

2、审核能力

功能对比

 SQLEYearningArchery
审核规则数量 多(140+) 较多(40+) 较多(60+)
规则是否开源 ✅(MySQL 审核集成的 goInception)
规则应用粒度 数据源级别配置 全局配置 全局(无法界面配置)
多库支持 ✅(社区版非 MySQL 未支持更多规则,需二开) ❌(仅支持 MySQL系) ✅(非 MySQL 规则少)

体验对比

相比来说 SQLE 支持的规则最多,但是其他数据库类型例如 Oracle,PG,官方只提供了简单的实现,只有一条规则(等于没有)。目前我们公司都是 MySQL,倒是影响不大。

  • SQLE:MySQL 部分的规则基本都覆盖到了我们公司的需求,有极少数后期可能考虑二开吧;与其他两款产品的最大区别是 SQLE 的规则粒度在数据源上,每个数据源(业务)可以设计自己的规则集这点比较灵活。规则展示列表上有规则的背景说明,对于规则的选取有点帮助。
  • Yearning:规则集合偏 DDL 更多点,DML 类的较少,没有覆盖到我们内部的一些规范,比较尴尬的是,规则这边是闭源的,我们后续如果二开比较被动。
  • Archery:内置支持了较多数据源类型,通过查看 goInception 文档,MySQL 部分支持的规则较多,但是在 Archery 界面上审核规则无法查看,也不能配置需要开启哪些规则,目前看不太符合我们公司需求。

体验排名

SQLE > Archery > Yearning

3、SQL 工单上线

功能对比

 SQLEYearningArchery
工单审批流程
可视化配置流程
自动上线
限制运维时间
定时上线 ✅(不支持修改定时时间)
线下执行
Online DDL
DML 事务执行
支持备份
消息通知

体验对比

目前对于 SQL 上线流程来说,三家基本功能都是具备的,都符合我们公司的需求。比较有差异的部分是,SQLE 支持 DML 事务执行,对工单内数据一致性会有帮助;Yearning 和 Archery 支持上线前备份。

  • SQLE:流程配置方式最简单,基本在项目界面下就能看到。
  • Yearning:流程配置方式也较简单,特点要求 DML 和 DDL 分开提交,如果你们公司有这方面的规范那么这个是个不错的功能;工单提交有个比较反人类的操作,大部分操作都是按钮的形式,但是 SQL 审核没有按钮,在右键菜单里,由于试用时不太清楚搞了很久,最终在社区群里询问才解决。还有个问题是定时上线时间无法改期。
  • Archery:流程配置比较麻烦,一度没有找到功能在哪里,配置过程反复在Archery UI 和 Django 管理界面横跳,没有统一的操作体验。

功能排名

(SQLE  = Yearning)> Archery

4、产品支持

功能对比

 SQLEYearningArchery
迭代速度
开发者 公司 个人 个人
问题支持
文档

体验对比

目前来看三款产品都是还在活跃有提交的项目,其中 SQLE 提交非常活跃,看 Release 信息基本每个月都会发布新版本。对于小公司来说其实区别没太大,基本目前使用上的问题各家文档上都能找到答案。

排名对比

SQLE  > Yearning > Archery

总结

目前我们公司正在试用 SQLE,已经接管了大概 5 套环境,还在进一步体验中。

本次只对几款开源 SQL 审核产品的 SQL 审核上线能力进行了试用,当然各家都还有很多有意思的功能,我暂时没有体验,大家可以根据自身情况进行选型。

参考资料

[1]

SQLE: https://github.com/actiontech/sqle

[2]

Yearning: https://github.com/cookieY/Yearning

[3]

Archery: https://github.com/hhyo/Archery

标签:Archery,上线,测评,规则,Yearning,开源,SQL,SQLE
From: https://www.cnblogs.com/exmyth/p/18033270

相关文章

  • MySQL备份恢复数据--binary-mode is enabled and mysql is run in non-interactive...
    使用mysqldump;MySQL自带的逻辑备份工具。mysqldump[选项]数据库名[表名]>脚本名mysqldump[选项]--数据库名[选项表名]>脚本名mysqldump[选项]--all-databases[选项]>脚本名备份mysqldump-hlocalhost-uwordpress-pwordpress_20200104>c......
  • mysql access denied for root ... mysqld –skip-grant-tables 命令失效 ... Failed
    <!--密码突然登录不上MySQL了,久了也不晓得是不是密码不正确...只能改密码...一年难得碰一次,感觉每次总有莫名其妙的问题--><!--修改方案只找到一个,就是无密码验证开启mysql服务,然后登录,设置新密码--><!--mysql版本不同有些命令无效,大概分高低两版本--><!--低版命令我......
  • 关于Windows上设置MySQL为外部可访问
    改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改"mysql"数据库里的"user"表里的"host"项,从"localhost"改称"%"1.mysql-uroot-pdtsdtsmysql>usemysql;mysql>updateusersethost='%&#......
  • Docker安装MS SQL Server并使用Navicat远程连接
    MSSQLServer简介MicrosoftSQLServer(简称SQLServer)是由微软公司开发的关系数据库管理系统,它是一个功能强大、性能卓越的企业级数据库平台,用于存储和处理大型数据集、支持高效查询和分析等操作。SQLServer支持广泛的应用程序开发接口(API),包括T-SQL、ADO.NET、ODBC、OLEDB......
  • win10搭建mysql5.7环境
    下载mysql5.7下载官网地址https://downloads.mysql.com/archives/community/解压到指定目录我解压到D:\ProgramFiles\mysql-5.7.44创建配置文件my.ini在上述目录中创建my.ini文件,并添加如下配置项#Foradviceonhowtochangesettingspleasesee#http://dev.m......
  • mysqldump
     dockerrun-d--namebaize-rancher--restart=always-p28080:8080rancher/server:v1.6.30\--db-host192.168.50.105\--db-port3306\--db-usercattle\--db-pass******\--db-namecattledockerlogs-fbaize-rancher--tail100#导出单个数据......
  • 加入mysql数据库实现完整的登录注册功能
    功能简介:用户有用户名(user),手机号(mobile),邮箱(email),密码(password).user为主键,mobile唯一保证一个手机号只能注册一个用户,邮箱不唯一并且可为空.故这里用户可以使用user和mobile登录,mobile还可以用找回密码,email仅用于找回密码在注册页面,输入手机号和密码注册用户......
  • Linux 安装 MySQL
    转自:https://blog.csdn.net/bugu_hhh/article/details/130625482使用阿里云CentOS7系统,安装过程中,会报libaio,查看与libaio相关的软件1yumlistlibaio安装1yuminstall-ylibaio*可以查看已安装的MySQL的版本1mysql-V 使用开启MySQL服务命令1syste......
  • Ubuntu22.04安装mysql8数据库
    1、去官网下载APT存储库文件2、到/usr/local目录下创建mysql目录并且用rz命令上传下载的文件若没有安装lrzsz自行安装。3、解压下载的文件)直接选择OK4、更新包信息5、安装设置初始密码选第二个选项6、登录数据库......
  • 远程连接Mysql数据库
    showdatabases;usemysql;showtablse;selectuser,hostfromuser;updateusersethost='%'whereuser='root';flushprivileges;......