开源产品测评之 SQL 上线能力
背景
近期,我司准备引入一款 SQL 审核产品来供内部流程使用,解决目前 SQL 人工上线的流程管控问题,目标是对业内的开源产品进行调研,选型一款作为落地方案,后期如果内部有需求可能会进行二次开发。我们最终选取 SQLE[1]、Yearning[2]、Archery[3] 进行了初步的使用和调研,我们内部关注产品的一些点:
- 是否较为简单的部署和运维;
- 规则是否能满足我们公司 SQL 规范,如果不满足至少要能二次开发;
- 具备 SQL 上线流程,是否满足要求;
- 产品稳定性,后期是否能得到支持。
下面是调研的过程,如果恰巧你也在调研 SQL 审核产品,希望能给你提供一些经验参考。
1、运维部署
功能对比
SQLE | Yearning | Archery | |
---|---|---|---|
手工部署 | |||
Docker |
体验对比
由于公司内网无法访问公网,因此没有使用 Docker 部署,基本采用手工部署的形式进行,SQLE 和 Yearing 部署基本都算顺畅,但是 Archery 需要安装依赖,最终是选择在自己电脑虚拟机上装的。
- SQLE:手工部署是使用 RPM 包,不用安装操作系统依赖,一键安装和启停,使用 systemd 维护进程对运维较为友好,但是 RPM 会有操作系统限制(CentOS);进行建库操作和修改配置文件即可跑起来;
- Yearning:手工部署使用 ZIP 包,解压后和 SQLE 类似,不用安装操作系统依赖;进行建库操作和修改配置文件,额外执行一下 Install 操作,即可跑起来;
- Archery:手工部署需要安装 Python 和依赖,操作较为复杂,搞了大半天没有成功最终放弃,采用 docker compose 部署了。
体验排名
(SQLE = Yearning)> Archery
2、审核能力
功能对比
SQLE | Yearning | Archery | |
---|---|---|---|
审核规则数量 | 多(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 工单上线
功能对比
SQLE | Yearning | Archery | |
---|---|---|---|
工单审批流程 | |||
可视化配置流程 | |||
自动上线 | |||
限制运维时间 | |||
定时上线 | (不支持修改定时时间) | ||
线下执行 | |||
Online DDL | |||
DML 事务执行 | |||
支持备份 | |||
消息通知 |
体验对比
目前对于 SQL 上线流程来说,三家基本功能都是具备的,都符合我们公司的需求。比较有差异的部分是,SQLE 支持 DML 事务执行,对工单内数据一致性会有帮助;Yearning 和 Archery 支持上线前备份。
- SQLE:流程配置方式最简单,基本在项目界面下就能看到。
- Yearning:流程配置方式也较简单,特点要求 DML 和 DDL 分开提交,如果你们公司有这方面的规范那么这个是个不错的功能;工单提交有个比较反人类的操作,大部分操作都是按钮的形式,但是 SQL 审核没有按钮,在右键菜单里,由于试用时不太清楚搞了很久,最终在社区群里询问才解决。还有个问题是定时上线时间无法改期。
- Archery:流程配置比较麻烦,一度没有找到功能在哪里,配置过程反复在Archery UI 和 Django 管理界面横跳,没有统一的操作体验。
功能排名
(SQLE = Yearning)> Archery
4、产品支持
功能对比
SQLE | Yearning | Archery | |
---|---|---|---|
迭代速度 | 快 | 中 | 慢 |
开发者 | 公司 | 个人 | 个人 |
问题支持 | 快 | 慢 | 快 |
文档 |
体验对比
目前来看三款产品都是还在活跃有提交的项目,其中 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
开源产品测评之 SQL 上线能力的更多相关文章
- Ecshop、Discuz! 等开源产品的局限
Ecshop.Discuz! 等开源产品的局限 记得今年年初,我初次接触Discuz!和Ecshop时,一阵阵地惊叹:成熟度这么高的产品,居然是免费的.我们这些搞传统软件开发的要怎么活?另外也奇怪,做 ...
- 像MIUI一样做Zabbix二次开发(2)——Zabbix与商业及开源产品的比较分析
Zabbix的特点 Zabbix是一个基于WEB界面的提供分布式系统监控的开源解决方案,通过浏览器监视,做到告警分级处理.网络访问安全可控,该开源平台在全球有广泛的用户基础,他的特点: 开放性:源代码 ...
- SQL 上线平台(内含全部完整资料)
为了让 DBA 从日常繁琐的工作中解放出来,通过 SQL 自助平台,可以让开发自上线,开发提交 SQL 后就会自动执行并返回执行结果,无需 DBA 的再次审核,从而提升上线效率,有利于建立数据库开发规 ...
- 产品经理 写SQL
产品经理必备技能:写SQL - 云+社区 - 腾讯云https://cloud.tencent.com/developer/news/3177 产品经理学SQL(一)一个小时上手SQL | 人人都是产 ...
- PHP的开源产品discuz
首先就是discuz,用起来真的是特别的好用,搭建的网站真的非常美观 尤其是用起来之后,我发现功能真的是太强大了,不用到处编写代码,调试什么 只需要把精力放在做产品上就可以了,我很好奇为什么会这么强大 ...
- 四. sql上线平台
一.inception安装使用 inception是一个集审核.执行.备份及生成回滚语句于一身的MySQL自动化运维工具 [root@CentOS ~]# [root@CentOS ~]# wget ...
- NoSQL数据库之国产开源产品:SequoiaDB 分析前言
随着互联网技术的发展,面对海量数据的存储和分析,传统关系型数据库已经无法满足,由此衍生出一种与关系型数据库区别开的数据库NoSQL(Not Only SQL). 国外做的比较成熟的NoSQL有Mong ...
- .NET6 开源之JSON 2 SQL (JORM框架)
什么是JORM框架? 全称 :Json Object Relational Mapping ,它是通过JSON 对象 去实现数据库的一个关系映射 ,我理想中完整的JORM包含功能有 ·1.表权授 ...
- 我的一起开源网 www.17ky.net上线了
.net开源生态的落后,使得.net开发人员所拥有的开源资源比其他语言的开发者少了很多,这也使得笔者很早之前就喜欢收集各种开源项目,经常会去逛codeplex,开源中国社区等网站,同时也喜欢在自己或公 ...
- 终于,我们的新产品Fotor Slideshow Maker上线了!!
辛苦了大半年,使用纯网页技术全新打造的首个交互式Slideshow产品终于上线了,现在是 http://slideshow.fotor.com,希望能尽快推出中文版! http://blog.foto ...
随机推荐
- 「模拟赛」A 层多校联训 4(卖品:CTH)
双倒一啦! 感觉这次最大的错误就是没看 T2.(本质原因还是时间浪费的太多了) 赛时记录在闲话啦 accoder 多校比赛链接 02 表示法 唐诗题!考高精的人都\(**\),输出深度优先搜索解决.高 ...
- 2021年第十一届数据技术嘉年华(DTC)资料分享
数据技术嘉年华(DTC)是由由中国DBA联盟(ACDU)和墨天轮社区联合主办的数据技术领域的盛会,至今已成功举办11届,吸引和聚集了众多数据领域学术精英.领袖人物.技术专家.从业者和技术爱好者,于此进 ...
- 38. data为什么是一个函数
vue中的data为什么是返回对象的函数,而不是直接使用对象形式 : 我们复用组件的时候,要求每一份data数据之间是独立的,不能互相影响,如果写成对象的形式所有的组件使用一份data数据 ,如果使用 ...
- NOI 2023 (简单题)
Day1 T1 方格染色(color) 容易发现相对难处理的是斜线,但是我们发现斜线不超过 \(5\) 条,那么对于这一部分我们可以拆贡献,然后暴力做. 具体而言,先算出斜线减去横/竖线的面积,再算出 ...
- AI之道|诺奖对AI的偏爱是真魔幻【悟空非空也】
一.背景 回归 2024 年诺贝尔物理学奖被授予 John J.Hopfield(霍普菲尔德) 和 Geoffrey E.Hinton(辛顿),当时物理学界都震惊了,纷纷在打听霍普菲尔德和辛顿,他们两 ...
- Centos 安装 supervisord服务
安装supervisord 执行如下命令安装supervisord yum install epel-release -y yum install supervisor -y 设置开机启动superv ...
- JS Parser Combinator (解析器组合子)
前言 前些天偶然看到以前写的一份代码,注意有一段尘封的代码,被我遗忘了.这段代码是一个简单的解析器,当时是为了解析日志而做的.最初解析日志时,我只是简单的正则加上分割,写着写着,我想,能不能用一个简单 ...
- C++ 加权随机抽样
在做五子棋 AI 的时候,遇到要根据权重从一组数里边随机选出一个这个问题.这个问题恰好也是 leetcode 第 528 道题,使用 C++,标准库就有现成的: #include <rand ...
- springBoot项目启动卡在Root WebApplicationContext: initialization completed... (非DEBUG断点问题)
通过源码启动排查发现,初始化连接池时创建了200次,通过配置文件中将initialSize值改为10,启动时间从1分钟变为了3秒.
- 如何使用Ida Pro和Core Dump文件定位崩溃位置(Linux下无调试符号的进程专享)
我们在嵌入式Linux开发过程中经常会遇到一个问题,就是程序崩溃后不知道具体位置.因为我们发布到生产环境的一般是没有调试符号的(使用strip或编译时加-s参数,CMake生成的编译指令中的-O3也会 ...