PingCAP 唐刘:一个咨询顾问对 TiDB Chat2Query Demo 提出的脑洞
导读
近日,TiDB Cloud 发布了 Chat2Query 功能,在 TiDB Cloud 上通过自然语言提问,即可生成相应的 SQL,通过 TiDB Cloud 对上传的任意数据集进行分析。Gartner 也在一份有关 ChatGPT 对数据分析影响研究的报告中提及了 PingCAP 的 Chat2Query 产品。
本文分享了唐刘在展示 Chat2Query demo 过程中的一些思考。探讨了想打造一款好的产品,从用户角度出发的思考方式以及与用户交流的重要性:当我们向用户展示产品能力时,我们往往习惯站在技术的角度出发,然而当用户并不具备完备的相关技术背景时,我们需要换位思考,了解用户的工作流程和思维方式,才能真正让用户理解和接受我们的产品。
最近一段时间,一件非常让我自豪的事情就是我们在 TiDB Cloud 上面发布了基于 OpenAI 的智能数据探索功能 - Chat2Query。见到朋友,我都会非常开心地跟他们去推荐这个功能,跟他们现场演示如何使用,每当看到他们 「aha」 的表情,这个成就感还是挺强的。
但是,我推荐的朋友几乎全是有技术背景的人,所以当我跟一位不懂技术的朋友进行推荐的时候,我才突然意识到,我们的这款产品离好看以及好用,还有很长的路要走。
因为我的朋友是一位咨询顾问,她对于世界 500 强的财务表报数据非常感兴趣。刚好,我手上有一份今年的财务数据,于是就开始给她演示如何在 Chat2Query 里面,智能对数据进行洞察。
/ 啥,什么是 Database? /
于是,我先开始上传数据,到了导入数据的面板,我上传完成文件之后,我突然意识到一个很好玩的事情,而恰恰在同时,我的朋友问了一个问题也印证了这个事情。
因为我的朋友不太懂技术,更别提懂数据库了,于是她问了我一个看起来很傻的问题 - 「什么是 Database?」
对的,这个问题看起来非常的低级,什么是 Database?对于一个做了这么多年,用了这么多年数据库的我来说,这问题貌似很简单。但在那个时候,我突然明白,在我看来非常显然的一个单词,对于很多用户来说是完全不可理解的。也许有人会说,我的朋友压根不是我们产品的目标客户,没准是的,但从另一方面来说,有多少人会立刻理解我们在上图那个操作?或者我们能不能将上面那个设置的步骤变得更加的简单和好用?
/ 用户的心智模型 /
于是我就跟我朋友讨论:“你期望如何来使用 Chat2Query?”我朋友回答道:“我是一个重度 Excel 用户,对我来说,我要做的就是上传 Excel 文件,然后我就能对这个 Excel 进行分析了。”
这里可以看到,我的朋友不知道什么是 Database,但其实她日常工作的 Excel,其实跟 Database 的概念是能联系上的,一个 Excel 就是一个 Database,而 Excel 里面的 Sheet 就是 Table。所以如果我朋友要用这个产品,一个更直观的方式就是她上传好一个 Excel 文件之后,我们默认的就按照这个文件名给她建立一个 Database,为 Excel 文件里面的每个 Sheet 建立对应的 Table,根本不需要暴露任何的 Database 和 Table 的概念。
所以一开始,如果我跟我朋友先从 Excel 探讨,用她之前的知识体系来做映射,没准她会更容易理解我们产品。如果一开始,我们就能很好的支持 Excel 相关的概念和操作,没准对我朋友就是一个替换 Excel 的首选了。
/ 好看又要好用 /
数据导入成功之后,我们进入到 Chat2Query,自然我知道,我的朋友不会使用,即使 get started page 里面已经说了可以使用 --
然后再带上指令,触发 AI 的功能,自动生成 SQL,但这个仍然是不直观。于是我就问我的朋友,你期望如何分析你上传的数据,我的朋友说的很直观,给我打开了 Google 的主页。朋友说到,一个产品,能打动她,一个很重要的事情就是好看以及简单,Chat2Query 整个的界面交互,让她是没有太多的意愿使用的,上手难度太高,也不好看。
对我朋友来说,她需要更加简单易用的交互界面,在她的认知里面,我们这个智能数据洞察的功能就应该跟 Google 一样,一个搜索框,问问题,得到答案,然后生成 Excel 给她做后面的分析。
/ 用户多层需求 /
我两继续讨论如何才能让她更好的使用 Chat2Query,毕竟我朋友是重度 Excel 用户,我们如何能给她更大的价值。我朋友想了想,如果 Chat2Query 能做到三层,那么将会很吸引她:
- 第一层 - 处理她上传的私有数据,例如多个 Excel 文件。相比于简单的 Excel 处理,Chat2Query 可以在成百上千的 sheet 中帮助她获得一些洞察。
- 第二层 - 对她在 TiDB cloud 上的私有数据以及能与 PingCAP 在 TiDB cloud 上托管的公开数据集进行查询分析。
- 第三层 - 她可以将她在其他服务商的账号密码给我们,让 Chat2Query 能在第二层的基础上对她在其他服务商的数据进行联合查询分析。
当我朋友跟我说这些的时候,我其实内心是很惊讶的。我最近在规划 TiDB Cloud 未来的技术架构方向,就是在思考通过构建一个弹性的计算引擎,以及数据 meta 的服务,来让用户非常方便的做到上面 3 层的操作。我非常高兴看到用户有类似的需求。
然后我的朋友又继续说到,你这个能不能有历史记录的功能,能将我之前的洞察结果保存下来,甚至有没有对比功能,对不同时间的查询结果进行对比分析。不过后来我们讨论到,这个没准在外面的工具做可能更好,所以 Chat2Query 最好要提供一个 API 服务出去。实话,我这个不懂技术的朋友能想到 API,以及对 API 收费,以及对接其他的 BI 工具,还是挺让我吃惊的 😃
/ 写在最后 /
这次与我的朋友的演示让我意识到了几点重要的事情:
- 真正试着站在用户的角度思考问题是很重要的。我们需要了解用户平常使用的工具和完成的工作,并理解他们的思维方式。
- 产品不仅要好看,也要好用。这对研发工程师来说是一个巨大的挑战,但幸运的是,这个世界上有很多这样的产品,我们可以学习借鉴。
- 用户是最好的老师,与用户交流能获得非常不同的对产品的洞察。
最后,我希望我的朋友能成为我们的标杆用户,她非常愿意接受这个角色。
BTW, 本文有一些文本使用了 ChatGPT 进行了润色。
最后,如果你想体验 TiDB Cloud + AI 的能力,欢迎点击尝试 TiDB Cloud,也希望收到更多来自大家的反馈。
相关文章:
PingCAP 唐刘:一个咨询顾问对 TiDB Chat2Query Demo 提出的脑洞
导读 近日,TiDB Cloud 发布了 Chat2Query 功能,在 TiDB Cloud 上通过自然语言提问,即可生成相应的 SQL,通过 TiDB Cloud 对上传的任意数据集进行分析。Gartner 也在一份有关 ChatGPT 对数据分析影响研究的报告中提及了 PingCAP 的…...
力扣-销售分析III
大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:1084. 销售分析III二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他总结…...
U-Boot 之七 详解 Driver Model 架构、配置、命令、初始化流程
U-Boot 在 2014 年 4 月参考 Linux Kernel 的驱动模型设计并引入了自己的 Driver Model(官方简称 DM) 驱动架构。这个驱动模型(DM)为驱动的定义和访问接口提供了统一的方法,提高了驱动之间的兼容性以及访问的标准性。 …...
大数据算法重点
1 大数据亚线性空间算法 场景:用二进制存储一个数字N,需要log(N)的空间 问题:如果N特别大而且这样的N又特别的多,该怎么办呢? 思路:减少一些准确性,从而节省更多的空间。 解决办法:使…...
【Eclipse】The import xxxx cannot be resolved 问题解决
在Eclipse使用过程中,某一个类明明存在,但是使用import导入时,却总是提示The import xxxx cannot be resolved的错误,解决办法如下: 点击Project->Clean......
LinkWeChat系统Docker版部署注意事项
具体部署手册:https://www.yuque.com/linkwechat/help/ffi7bu注意事项:启动类配置文件路径需要修改,各个模块启动类原配置如下:.properties("spring.config.name:bootstrap", "config/run/bootstrap.yml")各个…...
【高数】不定积分之有理函数的积分
文章目录前言有理函数积分的通用解法有理函数的特殊解法前言 这个专栏开始更新高等数学的解题方法,本专栏没有特别强调概念,主要是让大家熟悉考研中的一些题型以及如何求解 关键步骤用蓝色高亮提示 总结方法用红色高亮提示 注意事项用绿色高亮提示 希望…...
Java——数组
目录 前言 一、数组的定义 二、数组声明和创建 三、三种初始化及内存分析 Java内存分析 三种初始化 静态初始化 动态初始化 数组的默认初始化 数组的四个基本特点 四、下标越界及小结 五、数组的使用 For-Each循环 数组作方法入参 数组作返回值 六、二维数组 七…...
产品分析|虎扑APP
不同于传统的体育新闻门户网站,虎扑以篮球社区起家,在经历了从体育论坛到体育新闻网站的发展后,又逐渐回归社区发展。 目前,虎扑汇聚了大量的男性用户,俨然成为了“互联网直男的自留地”。特立独行的发展方向使得虎扑不断发展壮大,同时也使得虎扑逐渐触碰到了行业天花板。…...
有限差分法-二维泊松方程及其Matlab程序实现
2.2 偏微分方程的差分解法 2.2.1 二维泊松方程 考虑区域 Ω \Omega Ω 上的二维泊松问题: { − ( ∂ 2...
【设计模式】6.代理模式
概述 代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理访问目标对象 这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。 被代理的对象可以是:远程对象、创建开销大的对象或需要安全…...
SRC挖掘之Access验证校验的漏洞挖掘
漏洞已修复,感谢某大佬的知识分享。 任意用户密码重置->可获取全校师生个人mingan信息 开局就是信息收集。 对于挖掘edu的信息收集 1.可尝试谷歌搜索语法,获取学号信息 2. 旁站的渗透获取 3. 学校的贴吧获取(大部分都是本校学生) 当然我就是闲&a…...
GG-21 100V 5A逆功率继电器
1 用途 GG-21逆功率继电器在出现逆功率时,从电网中断开交流发电机。 2 概述 逆功率继电器是基于感应式原理(具有旋转磁场)而工作。 继电器导磁体由两个磁路系统组成:上磁路系统和下磁路系统。电流线圈安装在上磁路系统中,它由接在发电机某相的…...
MyBatis中#{}和${}的区别
目录 前言 1、处理参数的方式不同 2、${}的优点 3、SQL注入问题 4、like查询问题 前言 #{}和${}都可以在MyBatis中用来动态地接收参数,但二者在本质上还是有很大的区别。 1、处理参数的方式不同 ${} :预编译处理 MyBatis在处理#{}时,…...
ElementUi的使用
ElementUi使用说明 element ui安装与配置 npm i element-ui –S项目入口文件main.js 导入 Element-UI 相关资源// 导入组件库 import ElementUI from element-ui; // 导入组件相关样式 import element-ui/lib/theme-chalk/index.css; // 配置 Vue 插件 Vue.use(ElementUI);文档…...
termux手机端安装mysql(MariaDB)
目录1 下载MariaDB2 配置MariaDB3 启动MariaDB服务器查看进程pid杀死进程4 登录 Mysqltermux用户登录MySQLroot用户登录MySQL5 配置 MariaDB 远程登录创建一个可远程登录的用户:用户授权:刷新授权:6 停止 MariaDB 服务器7 可选,但…...
Python枚举类定义和使用(详解版)
一些具有特殊含义的类,其实例化对象的个数往往是固定的,比如用一个类表示月份,则该类的实例对象最多有 12 个;再比如用一个类表示季节,则该类的实例化对象最多有 4 个。 针对这种特殊的类,Python 3.4 中新…...
京东HBase异地多活调研
京东HBase平台架构 HBase Replication原理 HBase的Replication是基于WAL日志文件的,在主集群中的每个RegionServer上,由ReplicationSource线程来负责推送数据,在备集群的RegionServer上由ReplicationSink线程负责接收数据。ReplicationSourc…...
【LeetCode】剑指 Offer 18. 删除链表的节点(题目一) p119 -- Java Version
题目链接:https://leetcode.cn/problems/shan-chu-lian-biao-de-jie-dian-lcof/ 1. 题目介绍(18. 删除链表的节点) 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 注意&…...
SpringMVC异步请求
背景 Tomcat等应用服务器的连接线程池实际上是有限制的;每一个连接请求都会耗掉线程池的一个连接数;如果某些耗时很长的操作,如对大量数据的查询操作、调用外部系统提供的服务以及一些 IO 密集型操作等,会占用连接很长时间&#…...
这七个100%提高Python代码性能的技巧,一定要知道
B站|公众号:啥都会一点的研究生 相关阅读 整理了几个100%会踩的Python细节坑,提前防止脑血栓 整理了十个100%提高效率的Python编程技巧,更上一层楼 Python-列表,从基础到进阶用法大总结,进来查漏补缺 Python-元组&…...
计算机网络笔记、面试八股(五)—— 浏览器输入URL
本章目录5. 从输入URL到浏览器显示页面过程中都发生了什么5.1 URL输入5.2 DNS解析5.2.1 域名的等级5.2.2 DNS解析的流程5.2.3 DNS查询方式5.3 建立TCP连接5.4 发送HTTP/HTTPS请求5.5 服务器处理请求并返回HTTP响应5.6 浏览器解析渲染页面5.7 HTTP请求结束,断开TCP连…...
【速记】快速调通算法项目的环境
1.创建新的conda环境,避免把原有的环境给搞坏。 在CMD中执行,而不是在anaconda的命令行中执行: conda create -n 环境名 --offline python3.8 2.在pycharm中配置conda环境: setting->Project Interpreter->齿轮->add-&g…...
开放开源开先河(上)
目录 1.唯一性定义品牌 2.打造爆款塑造品牌 3.构筑生态体系传播品牌 2022年7月28日,以“软件定义世界 开源共筑未来”为主题的全球数字经济大会开放原子开源峰会在北京开幕,承办主峰会和为捐赠人进行授牌仪式的开放原子开源基金会再次进入公众视野。基金…...
TencentOS 3.1安装MySQL 8.0.32
到官网下载安装包:https://dev.mysql.com/downloads/mysql/ 使用如下命令解包。 tar xf mysql-8.0.32-1.el8.x86_64.rpm-bundle.tar 使用rpm -qa |grep mysql 和rpm -qa |grep mariadb检查是否安装过mysql 如果有,使用下命令移除: rpm -e …...
Javascript的API基本内容(五)
一、js组成 JavaScript的组成 ECMAScript: 规定了js基础语法核心知识。 比如:变量、分支语句、循环语句、对象等等 Web APIs : DOM 文档对象模型, 定义了一套操作HTML文档的API BOM 浏览器对象模型,定义了一套操作浏览器窗口的API 二、loc…...
分层测试(2)单元测试【必备】
1. 什么是单元测试? 对代码中的逻辑隔离的最小代码片段进行测试,验证其逻辑是否符合预期,单元可以是函数,方法,类,功能模块。 2. 单元测试的优点 掌握代码:单元测试允许开发人员了解单元提供…...
代码随想录算法训练营day45 |动态规划之背包问题 70. 爬楼梯 (进阶) 322. 零钱兑换 279.完全平方数
day4570. 爬楼梯 (进阶)1. 确定dp数组以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例来推导dp数组322. 零钱兑换1. 确定dp数组以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组279.完全平方数1. 确…...
秒懂算法 | 基于图神经网络的推荐算法
图神经网络(Graph Neural Networks,GNN)是近几年兴起的学科,用来作推荐算法自然效果也相当好,但是要学会基于图神经网络的推荐算法之前,需要对图神经网络自身有个了解。 图卷积网络(Graph Convolutional Networks,GCN)提出于2017年。GCN 的出现标志着图神经网络的出现。深度学习…...
CANoe TC8测试脚本的结构介绍
CANoe TC8脚本是通过vTESTstudio平台编写。每个协议(ARP\ICMPv4\IPv4\UDP\TCP\SOMEIP\DHCP)都有自己的vtt文件。每个vtt文件的测试树结构为: Test Fixture Fixture Preparation Test Case Test Case … Test Case Test Case Fixture Completion 当Test Fixture里的Test Case…...
临沂网站建设小程序/网址收录网站
一、多线程相关概念 1、线程:①每个线程都有一个程序运行的入口、顺序执行序列和程序的出口,但是线程不能够独立执行,必须依存在进程中 ②线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源,如程序计数器,一组寄存…...
网站开发工程师职业定位/长沙正规竞价优化推荐
携带式超声波扫描仪是一种检测从物体反射的声波并将其转换为即时图像的设备。通常使用两种类型的存储器:存储器和图像/报告存储器。配备存储器存储来自外部硬件的标志和配置信息,图像/报告存储器存储图像和相应的报告数据。即使这些存储器突然断电,它们也…...
北京网站域名备案/建设网站的基本流程
python爬虫scrapy基本使用超详细教程 http://www.guikeyun.com/cms/news/352587.html 一、介绍 官方文档:中文2.3版本 下面这张图大家应该很熟悉,很多有关scrapy框架的介绍中都会出现这张图,感兴趣的再去查询相关资料,当然学会…...
科郑州网站建设/重庆公司seo
「Jetpack - Lifecycle梳理」 本文已参与「新人创作礼」活动,一起开启掘金创作之路 一、写在前面 谷歌推出Jetpack系列已经有一段时间了,作为AAC(Android Architecture Components)架构组件基础,使开发的过程越来越规范化,遵循…...
网站中文章内图片做超链接/微信crm系统软件
原文地址为: Windows环境下“路径”处理头文件 #include <Shlwapi.h> 引用库文件 #pragma comment(lib, "shlwapi.lib") 路径截断与合并函数 PathRemoveArgs 去除路径后面的参数 PathRemoveBackslash 去除路径最后的反斜杠…...
wordpress 下载安装/如何优化网站推广
转自 http://blog.csdn.net/jiedushi/article/details/12003171 Fluentd是一个开源收集事件和日志系统,它目前提供150扩展插件让你存储大数据用于日志搜索,数据分析和存储。 官方地址http://fluentd.org/ 插件地址http://fluentd.org/plugin/ Kibana 是…...