对比国内主流开源 SQL 审核平台 Yearning vs Archery

file

Yearning, Archery 和 Bytebase 是目前国内最主流的三个开源 SQL 审核平台。其中 Yearning 和 Archery 是社区性质的项目,而 Bytebase 则是商业化产品。通常调研 Bytebase 的用户也会同时比较 Yearning 和 Archery。

下面我们就来展开对比一下 Yearning 和 Archery。

数据库支持

Yearning 只支持 MySQL,而 Archery 支持多种数据库,不同数据库的功能支持力度有所不同,见下图清单。

file

主要功能对比

file

来自双方官网的 Yearning 和 Archery 主要功能对比:

file

Yearning 界面

Home

file

工单申请

file

工单执行

file

SQL 查询

file

Archery 界面

Home

file

工单申请

file

工单执行

file

SQL 查询

file

Image

技术栈

Yearning 前端使用 Vue + AntDesign,后端是 Go,代码仓库是分开来的。后端使用 MySQL 存放 Yearning 自己的元数据。审核能力用的是自己闭源的 Juno。

Archery 前端是 jQuery + bootstrap,后端是 Python/Django,代码在同一个仓库中。后端使用存放 Archery 自己的元数据,另外还依赖 Redis 提供任务队列和缓存。审核能力用的是另一个开源项目 goInception。

开源证书

Yearning 采用了 AGPL,Archery 采用 Apache 2.0。在证书上 Archery 的证书更加友好。AGPL 有一定法律风险,比如 Google 内部是完全禁用 AGPL 项目的。

file

不过 Yearning 对于二开做了补充声明,明确了内部使用和二开没有问题。

file

总结

Yearning 和 Archery 的作者都是具备开发能力的 DBA,基于日常工作中碰到的 SQL 审核痛点,研发了工具,并且开源了出来,造福社区。Yearning 的技术栈和界面更加现代。从功能上来看,Yearning 聚焦在 MySQL 的 SQL 审核,而 Archery 支持多种数据库以及更加全面的功能。

Yearning 和 Archery 都是社区项目,不提供商业化版本。通常企业需要基于 Yearning 和 Archery 进行二次开发才能投产。Bytebase 和 Yearning / Archery 一样都是开源项目,三者 Star 数的对比👇

file

Bytebase 提供了社区版,专业版和企业版,每两周进行一次更新,并且提供商业支持。功能上,除了 SQL 审核和查询外,Bytebase 还提供一系列的安全治理,以及和研发流程集成的 DevOps 能力。

file

🔍 具体可以参考 Bytebase 和 Yearning 以及 Archery 的详细对比:

  • Bytebase vs Yearning
  • Bytebase vs Archery

💡 更多资讯,请关注 Bytebase 公号:Bytebase

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/141475.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DRAM和SRAM

特点 Static Random Access Memory:速度快、存储一位需要元器件更多、功耗较大、集成度低、更贵 Dynamic Random Access Memory:容量大、需刷新、附属电路更复杂、功耗较小、集成度高 存储位元 SRAM DRAM 逻辑结构 SRAM 典型的SRAM芯片有6116&am…

Layer 2 真的为以太坊扩容了吗?

构建一个安全、对用户友好的去中心化网络的愿景,依赖于关键基础设施的发展。这个愿景由一个共享的经济框架支持,得到了亿万人的拥护。Layer 2 的扩展解决方案在构建这一基础和增强以太坊的能力方面起着至关重要的作用。这些项目相互协作,形成…

数据结构—数组栈的实现

前言:各位小伙伴们我们前面已经学习了带头双向循环链表,数据结构中还有一些特殊的线性表,如栈和队列,那么我们今天就来实现数组栈。 目录: 一、 栈的概念 二、 栈的实现 三、 代码测试 栈的概念: 栈的概念…

【nlp】1.3 文本数据分析(标签数量分布、句子长度分布、词频统计与关键词词云)

文本数据分析 1 文本数据分析介绍2 数据集说明3 获取标签数量分布4 获取句子长度分布5 获取正负样本长度散点分布6 获取不同词汇总数统计7 获取训练集高频形容词词云8 获取验证集形容词词云1 文本数据分析介绍 文本数据分析的作用: 文本数据分析能够有效帮助我们理解数据语料…

[100天算法】-不同路径 III(day 75)

题目描述 在二维网格 grid 上,有 4 种类型的方格:1 表示起始方格。且只有一个起始方格。 2 表示结束方格,且只有一个结束方格。 0 表示我们可以走过的空方格。 -1 表示我们无法跨越的障碍。 返回在四个方向(上、下、左、右&#…

(selenium element not interactable)selenium的send_keys怎么往codemirror中发送数据

简直了,什么方法都试过了,什么鼠标悬停、修改js都不行。最后居然就是定位到textarea域,再定位到想插入文本的位置的前面(我理解就是定位到cursor游标);然后点击以显示游标;最后往textarea域send…

【PG】PostgreSQL 预写日志(WAL)、checkpoint、LSN

目录 预写式日志(WAL) WAL概念 WAL的作用 WAL日志存放路径 WAL日志文件数量 WAL日志文件存储形式 WAL日志文件命名 WAL内容 检查点(checkpoint) 1 检查点概念 2 检查点作用 触发检查点 触发检查点之后数据库操作 设置合…

【图论实战】Boost学习 01:基本操作

文章目录 头文件图的构建图的可视化基本操作 头文件 #include <boost/graph/adjacency_list.hpp> #include <boost/graph/graphviz.hpp> #include <boost/graph/properties.hpp> #include <boost/property_map/property_map.hpp> #include <boost/…

数据结构之队列

目录 引言 队列的概念与结构 队列的实现 定义 初始化 销毁 入队 判断队列是否为空 出队 获取队头元素 获取队尾元素 检测队列中有效元素个数 元素访问 源代码 queue.h queue.c test.c 引言 数据结构之路经过栈后&#xff0c;就来到了与栈联系紧密的兄弟—…

RabbitMq防止消息丢失

RabbitMq防止消息丢失 消息的传递路径出现消息丢失的位置解决 消息的传递路径 消息发送方 --> MQ --> 消息消费方 出现消息丢失的位置 消息发送方: 消息传输过程中丢失MQ: MQ收到消息后,存在内存中,还未被消费就宕机了,导致数据丢失消息消费方: 消息到达消费方后, 服务…

Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)

目录 一、从空白系统中克隆Centos7系统 二、使用xshell连接docker_tigerhhzz虚拟机​编辑 三、在CentOS7基础上安装Docker容器 四、在Docker中进行安装Portainer 4.1、在Docker中安装MySQL 4.2、在Docker中安装JDK8&#xff0c;安装Java环境 4.3、Docker安装redis&#…

Maya v2024(3D动画制作软件)

Maya 2024是一款三维计算机图形动画制作软件。它被广泛应用于电影、电视、游戏、动画等领域中&#xff0c;用于创建各种三维模型、场景、特效和动画。 以下是Maya的主要特点&#xff1a; 强大的建模工具&#xff1a;Maya提供了各种建模工具&#xff0c;如多边形建模、NURBS建模…

时序数据库 TDengine + 高级分析软件 Seeq,助力企业挖掘时序数据潜力

作为一款制造业和工业互联网&#xff08;IIOT&#xff09;高级分析软件&#xff0c;Seeq 支持在工艺制造组织中使用机器学习创新的新功能。这些功能使组织能够将自己或第三方机器学习算法部署到前线流程工程师和主题专家使用的高级分析应用程序&#xff0c;从而使单个数据科学家…

OpenCV+相机校准和3D重建

相机校准至少需要10个测试图案&#xff0c;所需的重要输入数据是3D现实世界点集以及图像中这些点的相应2D坐标。3D点称为对象点&#xff0c;而2D图像点称为图像点。 准备工作 除了棋盘&#xff0c;我们还可以使用圆形网格。 在这种情况下&#xff0c;我们必须使用函数cv.find…

行业洞察:分布式云如何助力媒体与娱乐业实现创新与增长?

过去数年&#xff0c;流媒体经历了蓬勃的发展过程&#xff0c;观众可以根据喜好收看自己所喜爱的节目内容&#xff0c;并希望在全球范围内访问内容。 繁荣的市场让媒体和娱乐行业的 IT 领导者们竞相发力&#xff0c;用更短的时间去创造互动且令人难忘的内容体验&#xff0c;力求…

20.有效的括号(LeetCode)

思路&#xff1a;用栈的后进先出的特性&#xff0c;来完成题目的要求 因为C有库&#xff0c;可以直接用&#xff0c;而C语言没有&#xff0c;所以我们直接把写好的栈拷贝上来用。 首先&#xff0c;完成框架的搭建 其次&#xff0c;再实现循环内的部分。1.左括号入栈 2.右括…

react函数式组件props形式子向父传参

父组件中定义 子组件中触发回调传值 import { useState } from "react"; function Son(params) {const [count, setCount] useState(0);function handleClick() {console.log(params, paramsparamsparamsparamsparamsparams);params.onClick(111)setCount(count 1…

Skywalking流程分析_3(服务的准备、启动、关闭)

前文将SkyWalkingAgent.premain中的&#xff1a; SnifferConfigInitializer.initializeCoreConfig(agentArgs)pluginFinder new PluginFinder(new PluginBootstrap().loadPlugins())这两个方法分析完毕&#xff0c;下面继续分析premain方法其余部分 创建byteBuddy final By…

Rust-使用dotenvy加载和使用环境变量

系统的开发&#xff0c;测试和部署离不开环境变量&#xff0c;今天分享在Rust的系统开发中&#xff0c;使用dotenvy来读取和使用环境变量。 安装 cargo add dotenvy dotenv_codegen 加载环境变量 use dotenvy::dotenv;fn main() {dotenv().expect(".env不存在");…

TensorFlow学习笔记--(3)张量的常用运算函数

损失函数及求偏导 通过 tf.GradientTape 函数来指定损失函数的变量以及表达式 最后通过 gradient(%损失函数%,%偏导对象%) 来获取求偏导的结果 独热编码 给出一组特征值 来对图像进行分类 可以用独热编码 0的概率是第0种 1的概率是第1种 0的概率是第二种 tf.one_hot(%某标签…