CloudQuery 一款基于 WEB 的数据库客户端(转自杨建荣的学习笔记) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
111222333
V2EX    推广

CloudQuery 一款基于 WEB 的数据库客户端(转自杨建荣的学习笔记)

  •  
  •   111222333 2021-03-11 19:23:02 +08:00 1638 次点击
    这是一个创建于 1702 天前的主题,其中的信息可能已经有所发展或是发生改变。

    对于数据库客户端的使用,一直以来都有一些困扰,我想对很多人来说都或多或少会有:

    1 )多种数据库的客户端软件使用方式是独立的,几乎不存在交集

    2 )客户端软件的安装对于多数据库版本的兼容能力不同,比如 Navicat 低版本软件对于 JSON 类型的支持就很有限,比如 Workbench 的高版本对于 MySQL 协议服务不兼容(如 MyCAT 中间件,TiDB 服务等)

    3 )对于客户端的使用难以审计,权限过大难以追溯,权限过小对业务不可用

    4 )客户端的权限数量众多,难以管理

    5 )客户端软件大多数是付费软件

    6 )对于 DBA 和很多后端开发同学来说,要做这样一款软件其实有些超纲,对于前端服务和用户体验的优化是比较困难的。

    在找到 CloudQuery 这个项目的时候,是比较好奇的,不知道它能够解决我们工作中的哪些痛点,对于我来说,有两个硬性需求:

    1 )能够实现基于 MySQL 侧的 WEB 端管理

    2 )能够实现审计功能,

    这两个需求能够满足,就算是前进了一大步。所以我找了个时间做了下测试,仅供参考。


    1.软件安装

    CloudQuery 的官网是: http://cloudquery.club/

    这个产品是免费使用的,目前来看还在不断的迭代中,软件的安装模式有如下的几类,我个人比较倾向于离线版本的安装,因为实际的线上环境网络是受限制的,至少从安全性上考虑能够做到一定的隔离。

    推荐使用完整版,因为完整版已经包含了审计插件,如果下载标准版后要补充审计功能还需要再次安装审计插件,下载的模式目前支持迅雷,百度网盘,腾讯微云和天翼云,是把安装文件托管在这些下载通道下。

    对于很多同学来说,可能会有几个难点:

    1 )环境的配置是基于 Linux 环境,CentOS 7.5 以上版本,所以不是基于 Windows 的 exe 安装

    2 ) Linux 环境中需要安装基础的 docker 环境,否则环境构建会失败

    3 )安装文件在 2~3G 左右,会比预想的大,下载的速度会比预期的慢一些

    4 )如果服务器配置比较低,安装中可能会有一些意料之外的问题,推荐按照官方要求的配置来部署

    下载安装文件的过程基于网盘的流量情况,下载可能会花费一些时间,下载后解压的一些镜像文件如下,也可以整体看到一些技术栈的使用情况,比如整体服务是基于微服务架构的,数据库技术栈应该是使用了 PostgreSQL+Redis,其中占用空间最大的 terminal,是我个人比较喜欢的一个终端管理功能。

    安装的过程比较简单,如下的 3 个命令即可安装:

    默认会自动启动服务,也可以使用 cloudquery-stop.sh,cloudquery-start.sh 手工启停。

    在安装前还是需要确认下内核版本和 docker 版本,可以使用如下的命令:

    1 ) uname -r 确保是在 3.10.0 以上

    2 ) docker version

    如果 docker 兼容性不足,可以考虑合适的镜像,使用命令:

    # yum list docker-ce --showduplicates | sort -r 

    在这里我使用的是 docker-ce-18.06.3.ce-3.el7 版本。


    2.客户端功能体验

    安装后,可以使用 http://[IP]:9898 来访问

    第一次使用建议用超级管理员 admin001,避免一些权限上的差异导致的使用问题对于体验来说会比较全面。

    总体来看,这个 WEB 端工具软件支持的数据库还是比较多的,目前支持 8 款数据库,我以 MySQL 侧的使用为主。

    首先要配置数据库连接,这个过程属于常规操作,配置完毕后可以测试连接。

    在数据查询区域可以选择对应的连接别名和对应的数据库,这样就可以根据使用场景灵活的切换数据库了,这个设计点还是不错的,在这个设计点上,比 workbench 要快捷一些。

    对于查询结果集的导出,支持 Excel,CSV,txt 和 PDF,值得一提的是,文件的导出都是可追溯的,有个小功能是“下载中心”,在里面可以随时提取。

    导出的 Excel 格式文件如下:

    个人最喜欢的功能是基于终端模式的,在连接配置处点开“打开终端”,整个操作和自己的客户端使用没有区别,对于后端管理来说很便捷清晰。

    查询执行计划和 SQL 文本格式化功能也是齐全的,这些算是一些使用中的加分项。

    对于SQL 的语法提示还是比较实用的,这里可以看到也会做出提示。

    对于数据库变更操作来说,这里的操作是可以随时编辑,确认之后就立即生效。

    关于执行历史,这些是持久化存储的,可以随时查看,能够满足基本的审计需求,如果需要定位到使用人的基本信息是在审计模块中。


    3.平台化管理

    权限管理应该是 CloudQuery 的一大亮点了,是基于 RBAC 的权限模型设计,如果对于权限的管理无法实现细粒度多维度的管理,等推广到业务侧再进行管理是比较困难的。这里可以根据组织架构进行管理,可以分配不同的部门和小组进行管理,在其中配置相应的用户。

    对于权限体系,主要实现了角色和权限两大层面,可以根据不同的角色类型进行不同的权限配置管理。

    对于连接的管理也可以进行细粒度的管理,可以根据某一些权限明细项,对应指定很细粒度的权限配置。

    还有一个亮点的部分就是连接的共享,默认我们创建的连接是可以共享的,比如我把一个数据库连接配置共享给某个同事,他不需要做额外的配置刷新数据查询区就可以直接复用,对于类似租户管理的模式是比较适用的,比如一个开发组我们给予开发组长一定的权限,那么他可以把某个数据库的连接配置在内部进行共享,避免重复配置和管理,后续管理信息变化也可以联动变更。

    此外有一些比较个性化的服务,比如个人文件夹等,可以把导出的文件存储下来,通过 Web 端进行管理。

    最后是审计的部分,是整个产品的重心和亮点,也是业务侧使用 WEB 端比较关心的,对于审计侧的基础功能来说都能够支持,比如审计分析看板和审计日志查询。

    对于审计日志的查询,这是区别于客户端使用之外的体验,毕竟在平台化管理中可以方便审计管理和分析,对于管理员和安全审计来说,可以直接通过这个看板和明细列表看到整体的使用情况。

    小结

    CloudQuery 是一种全新的数据库客户端使用模式,能够让客户端的使用从本地单一模式变为 WEB 统一管控模式,适合从 0--1 的构建整个基础服务体系,在整体的使用上能够满足一些基础使用需求(数据查询,数据导出,数据格式化)和管理需求(执行历史,下载文件管理,审计看板等),此外,产品是完全免费使用的,并且支持离线安装。

    当日在使用中也会有一些疑问和问题,比如在安装部署方面需要投入较多的精力且安装文件较大,会有一些额外的资源成本和学习成本,同时产品文档中对于一些技术细节的内容比较少,对于服务的监控,高可用管理和平滑升级应该会随着业务需求的接入成为一个新的关注目标。官方在使用的过程中也给予了大力支持,整体上对于使用者来说,是相对便捷轻量的。

    最后提一下,v1.3.4 在今天发布了,感兴趣的可以试一下最新的改进功能。 官方网站: http://cloudquery.club

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2771 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 07:33 PVG 15:33 LAX 23:33 JFK 02:33
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86