阿里开业项目chat2DB-人工智能SQL分析介绍
作者:mmseoamin日期:2024-01-21

1. chat2DB简介

1-1. 简介

​ chat2DB是一款有开源免费的多数据库客户端工具,支持windows、mac本地安装,也支持服务器端部署,web网页访问。和传统的数据库客户端软件Navicat、DBeaver 相比Chat2DB集成了AIGC的能力,能够将自然语言转换为SQL,也可以将SQL转换为自然语言,可以给出研发人员SQL的优化建议,极大的提升人员的效率,是AI时代数据库研发人员的利器,未来即使不懂SQL的运营业务也可以使用快速查询业务数据、生成报表能力。是一种智能且多功能的通用SQL客户端和报告工具,该工具与ChatGPT的功能集成在一起。

​ SQL(Structured Query Language)是一种用于管理和操作关系型数据库的编程语言。这个工具是一个SQL客户端,意味着它允许用户与数据库进行交互,在数据库上执行查询操作和其他操作。

​ 此外,这个工具还具备ChatGPT的功能,即集成了ChatGPT的技术。ChatGPT是OpenAI开发的一种自然语言处理模型,它能够生成自然语言回复并进行对话。因此,这个工具提供了与用户进行自然语言对话的能力。

​ 综上所述,这个SQL客户端和报告工具不仅具备执行数据库查询和操作的功能,还能够通过对话与用户进行交互。这使得用户可以使用自然语言提出问题或要求,并得到对应的回复和结果。

​ 我的个人心得为在之前1.X版本时代,有不少bug是使用问题,但2.0版本发布后,使用感受明显得到了很大提升,其次chat2DB以及同类应用的出现,也代表着在未来的发展中,只要你能简洁准确的描述出SQL的业务需求,则即可反馈出你想要的sql语句和结果,意味着例如广大的产品经理、市场人员也一样可以渗透到数据分析开发人员的领域,实现更多的业务交集。

项目官方地址:https://github.com/chat2db/Chat2DB

1-2. chat2DB常用数据库支持类型

从官方项目介绍来看,目前常用的DB基本都已经支持

阿里开业项目chat2DB-人工智能SQL分析介绍,第1张

在后续,很快将会开放Hbase、Elasticsearch、openGauss、TiDB、InfluxDB等连接功能

1-3. 特点

  • 🌈 AI智能助手,支持自然语言转SQL、SQL转自然语言、SQL优化建议
  • 🔥 SQL查询、AI查询和数据报表完美集成的一体化解决方案设计与实现
  • 👭 支持团队协作,研发无需知道线上数据库密码,解决企业数据库账号安全问题
  • ⚙️ 强大的数据管理能力,支持数据表、视图、存储过程、函数、触发器、索引、序列、用户、角色、授权等管理
  • 🔌 强大的扩展能力,目前已经支持MySQL、PostgreSQL、Oracle、SQLServer、ClickHouse、OceanBase、H2、SQLite等等,未来会支持更多的数据库
  • 🛡 前端使用 Electron 开发,提供 Windows、Mac、Linux 客户端、网页版本一体化的解决方案
  • 🎁 支持环境隔离、线上、日常数据权限分离

    2. 下载安装

    2-1. 官方最新版下载地址

    DescriptionDownload
    Windowshttps://oss-chat2db.alibaba.com/release/2.0.1/Chat2DB%20Setup%202.0.1.exe
    MacOS ARM64https://oss-chat2db.alibaba.com/release/2.0.1/Chat2DB-2.0.1-arm64.dmg
    MacOS X64https://oss-chat2db.alibaba.com/release/2.0.1/Chat2DB-2.0.1.dmg
    Jar包https://oss-chat2db.alibaba.com/release/2.0.1/chat2db-server-start.jar

    3. Windows版使用介绍

    下载安装包Chat2DB Setup 2.0.1.exe后,直接安装即可,界面非常简洁清晰

    3-1. 创建数据源

    阿里开业项目chat2DB-人工智能SQL分析介绍,第2张

    例如添加一个MySQL数据库数据源,点击MySQL即可

    将连接信息填写,点击Test,测试通过,点击保存Save

    阿里开业项目chat2DB-人工智能SQL分析介绍,第3张

    注意: hosts可以直接输入IP地址,这里我做了本地的hosts解析

    3-2.数据源管理操作

    在数据库Connections中,可以看到已经添加的数据库实例清单,双击对应实例,即可进入到对应数据源管理界面

    阿里开业项目chat2DB-人工智能SQL分析介绍,第4张

    • 操作管理界面

      阿里开业项目chat2DB-人工智能SQL分析介绍,第5张

      3-3. AI智能助手配置添加

      使用前需要配置OpenAI的Api Key及本地代理配置

      方式1:使用ChatGPT

      方式1比较适合经常使用原生官方chat,有一定经验的老司机人员,否则建议跳过直接使用下面的方式2

      • 1、需要有一个openAI的key:OPENAI_API_KEY
      • 2、客户端网络可以连接到官网,国内需要科学上网。注意:如果本地VPN未能全局生效,可以通过在客户端中设置网络代理HOST和PORT来保证网络连通性

        查看key:OPENAI_API_KEY方式:

        阿里开业项目chat2DB-人工智能SQL分析介绍,第6张

        信息配置:

        阿里开业项目chat2DB-人工智能SQL分析介绍,第7张

        • Api Key 必填,需要输入自己查询到自己的Key
        • Api Host 选填,默认值为 https://api.openai.com
        • HTTP Proxy 一般代理都是在本地电脑启动 我这里是127.0.0.1
        • HTTP Proxy Prot 我的梯子代理端口为 1080 这里根据自己情况而定

          方式1的好处是没有使用次数限制,缺点是网络上需要自己去实现打通

          阿里开业项目chat2DB-人工智能SQL分析介绍,第8张

          方式2:使用阿里提供的一个统一代理服务

          • 1、不需要openAI的key
          • 2、不需要代理,不需要VPN只要可以联网即可使用

            官方为了方便大家更快速的使用AI的能力,可以关注微信公众号,回复"AI" 获得我们的自定义API_KEY,申请完成之后参考下图进行配置即可进行使用

            阿里开业项目chat2DB-人工智能SQL分析介绍,第9张

            • 公众号信息

              阿里开业项目chat2DB-人工智能SQL分析介绍,第10张

              方式2的好处是网络上没有任何限制,直接拿到Api Key配置即可使用,方便快捷,缺点为有使用次数,每日使用25次

              3-4. AI使用方式介绍

              配置完毕后,使用方式将改变成只需要描写需求即可

              0. 实验素材准备

              表1:game_gold

              -- 表1建表语句
              CREATE TABLE `game_gold` (
                `NAME` varchar(20) DEFAULT NULL COMMENT '游戏角色',
                `gold` int(11) DEFAULT NULL COMMENT '游戏金币',
                `play_role_id` int(11) DEFAULT NULL COMMENT '角色id'
              ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
              -- 样例数据
              INSERT INTO `game_gold` VALUES ('player01', 2200, 1);
              INSERT INTO `game_gold` VALUES ('player02', 1800, 7);
              INSERT INTO `game_gold` VALUES ('player01', 2200, 6);
              INSERT INTO `game_gold` VALUES ('player02', 1800, 9);
              
              -- 表2建表语句
              CREATE TABLE `wow_info` (
                `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '角色id',
                `role` varchar(255) DEFAULT NULL COMMENT '角色简称',
                `role_cn` varchar(255) DEFAULT NULL COMMENT '角色类型',
                `role_pinyin` varchar(255) DEFAULT NULL COMMENT '角色拼音',
                `zhuangbei` varchar(255) DEFAULT NULL COMMENT '装备类型',
                PRIMARY KEY (`id`)
              ) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;
              -- 样例数据
              INSERT INTO `wow_info` VALUES (1, 'fs', '法师', 'fashi', '布甲');
              INSERT INTO `wow_info` VALUES (2, 'ms', '牧师', 'mushi', '布甲');
              INSERT INTO `wow_info` VALUES (3, 'ss', '术士', 'shushi', '布甲');
              INSERT INTO `wow_info` VALUES (4, 'dz', '盗贼', 'daozei', '皮甲');
              INSERT INTO `wow_info` VALUES (5, 'ws', '武僧', 'wuseng', '皮甲');
              INSERT INTO `wow_info` VALUES (6, 'xd', '德鲁伊', 'xiaode', '皮甲');
              INSERT INTO `wow_info` VALUES (7, 'sq', '圣骑士', 'shengqi', '板甲');
              INSERT INTO `wow_info` VALUES (8, 'zs', '战士', 'zhanshi', '板甲');
              INSERT INTO `wow_info` VALUES (9, 'dk', '死亡骑士', 'siwangqishi', '板甲');
              INSERT INTO `wow_info` VALUES (10, 'dh', '恶魔猎手', 'emolieshou', '皮甲');
              

              两张表关系:

              阿里开业项目chat2DB-人工智能SQL分析介绍,第11张

              示例1:统计表wow_info的数据量

              作为一个SQL开发人员,查询一张表数据量,会使用SQL语句

              但作为销售或者不懂SQL的岗位,如今只需要在需求描述区域输入例如:查看wow_info表一共有多少条信息

              即可获取到一样的结果

              阿里开业项目chat2DB-人工智能SQL分析介绍,第12张

              示例2:返回表wow_info一条样例数据

              从示例2可以看到,需求描述可以多个条件结合

              例如:附上SQL注释,返回一条wow_info的样例数据

              阿里开业项目chat2DB-人工智能SQL分析介绍,第13张

              示例3:通过表game_gold中字段play_role_id匹配表wow_info,查看player01玩了哪些角色类型

              多表查询可以实现需求

              需求:通过表game_gold中字段play_role_id匹配表wow_info,查看player01玩了哪些角色类型

              阿里开业项目chat2DB-人工智能SQL分析介绍,第14张

              如果实际使用场景中,你对反馈的结果不是很满意,可以补充条件来修正反馈的SQL,例如这个示例通过子查询来实现,但此时想用join来实现需求

              需求:通过表game_gold中字段play_role_id匹配表wow_info,查看player01玩了哪些角色类型,,要求使用join实现

              阿里开业项目chat2DB-人工智能SQL分析介绍,第15张

              3-5.chat2DB-Dashboard使用介绍

              chat2DB除可以AI智能SQL分析,还可以协助自动生成报表

              例如,wow_info表中,字段:zhuangbei,代表装备类型,有布甲、皮甲、板甲等等

              现在想去分析一下每种类型的占比情况

              阿里开业项目chat2DB-人工智能SQL分析介绍,第16张

              在Charts栏中可以选择不同的指标,实现不同维度的数据

              例如目前纵坐标代表不同装备类型的总数count,可以在yAxis中改成percentage比例,则可以看到对应比例为30%|30%|40%