1 Archery简介
Archery是一款开源的sql审核平台,支持大部分数据库,功能比较齐全
如下为该平台支持的功能清单
功能清单
数据库 | 查询 | 审核 | 执行 | 备份 | 数据字典 | 慢日志 | 会话管理 | 账号管理 | 参数管理 | 数据归档 |
---|---|---|---|---|---|---|---|---|---|---|
MySQL | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ |
MsSQL | √ | × | √ | × | √ | × | × | × | × | × |
Redis | √ | × | √ | × | × | × | × | × | × | × |
PgSQL | √ | × | √ | × | × | × | × | × | × | × |
Oracle | √ | √ | √ | √ | √ | × | √ | × | × | × |
MongoDB | √ | √ | √ | × | × | × | √ | √ | × | × |
Phoenix | √ | × | √ | × | × | × | × | × | × | × |
ODPS | √ | × | × | × | × | × | × | × | × | × |
ClickHouse | √ | √ | √ | × | × | × | × | × | × | × |
Cassandra | √ | × | √ | × | × | × | × | × | × | × |
如果想要简单体验的话,可以到如下去体验:
https://demo.archerydms.com/login/
账号:archer 密码:archer
2 安装
Docker
准备运行配置
具体可参考:https://github.com/hhyo/Archery/tree/master/src/docker-compose
启动
下载 Releases文件,解压后进入docker-compose文件夹
#启动
docker-compose -f docker-compose.yml up -d
#表结构初始化
docker exec -ti archery /bin/bash
cd /opt/archery
source /opt/venv4archery/bin/activate
python3 manage.py makemigrations sql
python3 manage.py migrate
#数据初始化
python3 manage.py dbshell<sql/fixtures/auth_group.sql
python3 manage.py dbshell<src/init_sql/mysql_slow_query_review.sql
#创建管理用户
python3 manage.py createsuperuser
#重启服务
docker restart archery
#日志查看和问题排查
docker logs archery -f --tail=10
logs/archery.log
访问
手动安装
运行测试
python manage.py test -v 3
依赖清单
框架
前端组件
- 菜单栏 metisMenu
- 主题 sb-admin-2
- 编辑器 ace
- SQL美化 sql-formatter
- 表格 bootstrap-table
- 表格编辑 bootstrap-editable
- 下拉菜单 bootstrap-select
- 文件上传 bootstrap-fileinput
- 时间选择 bootstrap-datetimepicker
- 日期选择 daterangepicker
- 开关 bootstrap-switch
- Markdown展示 marked
服务端
- 队列任务 django-q
- MySQL Connector mysqlclient-python
- MsSQL Connector pyodbc
- Redis Connector redis-py
- PostgreSQL Connector psycopg2
- Oracle Connector cx_Oracle
- MongoDB Connector pymongo
- Phoenix Connector phoenixdb
- ODPS Connector pyodps
- ClickHouse Connector clickhouse-driver
- SQL解析/切分/类型判断 sqlparse
- MySQL Binlog解析/回滚 python-mysql-replication
- LDAP django-auth-ldap
- 序列化 simplejson
- 时间处理 python-dateutil
功能依赖
- 可视化 pyecharts
- MySQL审核/执行/备份 goInception|inception
- MySQL索引优化 SQLAdvisor
- SQL优化/压缩 SOAR
- My2SQL my2sql
- 表结构同步 SchemaSync
- 慢日志解析展示 pt-query-digest|aquila_v2
- 大表DDL gh-ost|pt-online-schema-change
- MyBatis XML解析 mybatis-mapper2sql
- RDS管理 aliyun-openapi-python-sdk
- 数据加密 django-mirage-field
3 特点
-
sql审核
-
sql查询
在线查询模块适用于简单的SQL查询和日常问题排查,通过工作流控制查询权限的申请和审核,并强制对SQL语句进行改写以限制最大查询数量,同时记录所有的查询日志方便审计。基于目前的定位,查询功能现不能很好的支持大数据量的检索和导出操作
- sql优化
采用percona-toolkit的pt_query_digest收集慢日志,在系统中进行展示,并且支持一键获取优化建议