6k Star! 开源SQL审核查询与优化平台
Archery 简介
Archery 是一个开源的 SQL 审核查询平台,主要用于简化和自动化 SQL 相关的审批、执行、查询及优化过程。它支持多种数据库类型,提供多种 SQL 审核与优化工具,帮助团队提高数据库操作的效率和安全性。平台集成了自动审批、权限管理、脱敏查询等功能,能够有效降低人为错误并加速 SQL 工单的处理流程。
同时支持Docker快速部署。
支持范围
Archery 支持广泛的数据库系统,包括 MySQL、MsSQL、Redis、PostgreSQL、Oracle、MongoDB、Phoenix 等。平台提供跨数据库的权限管理、审核执行、查询和优化支持,旨在为不同规模的数据库环境提供高效便捷的解决方案。
支持功能清单
SQL审核
SQL审核是 Archery 的核心功能之一,支持 MySQL 和其他非MySQL数据库的工单提交、审批和执行。其功能包括:
MySQL实例
• 基于 Inception 或 goInception 实现
• 集成审核、执行、备份等流程
• 可支持 MySQL 数据库的 SQL 工单处理,并提供自动化审核工具
非MySQL实例
• 支持提交和执行工单,工单流程通过工作流实现自动化
• 提供对其他数据库系统(如 MsSQL、PostgreSQL、MongoDB 等)的工单管理功能
审核执行分离
• 允许不同用户分别承担 SQL 工单的审批与执行职责
• 提供更加安全与分离的操作环境,降低潜在的错误和安全风险
SQL工单自动审批、高危语句驳回
• 支持通过正则表达式自动判断 SQL 工单是否需要人工审批
• 对不符合正则规则的 SQL 工单自动驳回,降低安全隐患
• 系统允许用户配置自主驳回策略,支持对高危语句的自动驳回与警告
快速上线其他实例
• 支持 SQL 工单快速复制到其他实例
• 适用于多环境场景下的 SQL 管理需求(如测试环境到生产环境的迁移)
定时执行
• 审核通过的 SQL 工单可选择定时执行或立即执行
• 支持对 SQL 执行时间的灵活控制,确保在合适的时间段执行重要操作
SQL查询
SQL查询功能旨在提供对多种数据库的安全、高效查询支持。
多类型数据库支持
• 支持 MySQL 表级授权,查询结果可以进行脱敏
• MsSQL、PostgreSQL、Oracle 等多种数据库类型的库级授权,支持脱敏查询
• 还支持 Redis、MongoDB、Phoenix、ClickHouse 等非关系型数据库的查询
• 支持部分语句的动态查询脱敏,保护数据隐私
授权管理
• 使用工作流控制 SQL 查询的授权过程
• 支持库表级别的权限控制,以及对查询结果集的权限限制
• 支持查询结果导出,并提供查询日志审计功能,确保合规性
• 用户权限可以由管理员通过前台界面管理与维护
SQL优化
SQL优化功能为数据库性能提升提供了全方位支持。
慢日志管理
• 基于 Percona Toolkit(PT)收集慢查询日志
• 需要单独部署 PT 工具进行慢查询日志的管理
• 慢日志的分析有助于识别数据库性能瓶颈
SQL语句优化
• 提供 SQLAdvisor、SOAR、SQLTuning 等工具,生成 SQL 优化建议
• 全方位覆盖 SQL 语句的优化场景,帮助 DBA 更快发现和解决性能问题
部分功能截图
在线查询
在线查询界面提供了对多个数据库的便捷查询方式,用户可以根据自身权限在不同的库中进行脱敏查询。
SQL优化工具
SQL优化工具帮助开发人员和 DBA 自动生成优化建议,进一步提高查询性能。
慢查询日志
慢查询日志页面展示了系统收集到的慢查询 SQL 信息,有助于分析数据库性能瓶颈。
实例管理
实例管理界面提供了对多种数据库实例的统一管理支持,管理员可以方便地监控和维护各个数据库实例的状态。
GitHub地址:https://github.com/hhyo/Archery
使用文档:https://github.com/hhyo/Archery/wiki
更多精彩文章
欢迎关注我的公众号“编程与架构”,原创技术文章第一时间推送。