中国数据库走向国际的门槛: 15分钟准则

在十五分钟之内跑通第一条SQL

笔者曾经负责国内某Top云厂商的数据库的海外业务和产品设计。简单的说包括TP,AP,NoSQL和Utility的所有数据库相关产品,负责除中国大陆以外所有的业务和客户。三年时间撞墙的教训实在不少。

在官方宣传上,经常会有打榜(Benchmark)世界第一,顶级峰会(VLDB, Sigmod, ICDE)文章,发布全球领先的技术内核之类。尤其是从TPC榜单或峰会文章的角度,中国数据库已经是世界第一梯队了,1几十年几代人的努力是有目共睹的。同时真正的扬帆入海的时候,国产大厂的数据库,即使是第三方相对公平的市场(如东南亚)都还是有明显的差距的。虽然常常归于性能(注意:不是性价比)、功能(比如取代Oracle)、还有部分地缘政治问题(美国本土较明显),而在实践中遇到的却常常:试用的门槛太高

今天同大家聊聊产品与用户的距离:15分钟。

一、TTHW: 15 minutes test (全称15分钟10刀测试 - 15 Minutes & 10 Dollars )

TTHW(Time to hello world)是指用给定的编程语言编写一个“Hello, World!”程序所需的时间,这是衡量一个编程语言易用性的标准之一。由于“Hello, World!”程序主要的介绍对象是不熟悉该语言的人,“Hello, World!”程序越复杂可能越表明该编程语言不易使用。 2 TTHW的标准已经被扩展到多个开发者领域,比如API设计体现开发者采用该API的容易程度。

具体到数据库,门槛便是客户在第一次尝试使用该产品过程中需要耗费的成本和资源,包括时间成本。我把它总结为15分钟测试3:从一个技术人员听说过某一个产品,,到可以运行这个产品,完成第1条SQL语句所需要的时间。影响该云数据库产品的“15分钟”门槛是从多方面的:账户生成,产品下载,代用券充值,系统设置,安装部署。然而有几个假设是必须的:

  1. 环境:或者是免费的云环境;或者是单机环境(macbook是最常见的)
  2. 费用:没有费用。千万不要认为1元或0.01元是合理的(掏出信用卡/支付宝的过程,就轻轻松松的把门槛变成了墙)
  3. 技术能力:面向年成本50万RMB的开发。拥有3~7年的工作经验的主力开发,他们也是真正的用户。

二、2小时 vs. 2天,学习中成长

时间倒退到2017年。当时有幸在国产某分布式分析型MPP数据库做研发相关的工作,产品架构和业务都是对标Teradata和Greenplum。当时还以onPrem部署为主。产品在Beta阶段,已经有一些重量级客户在尝试使用,我们感性的认识到机群部署的困难在阻碍业务的成长,团队希望进一步量化和具体化其中的问题。于是设计了“15 minutes test"(准确的说是 3 days)。

刚好团队请到一位在IBM数据库团队工作了5+年的同事,非常符合条件:1)有足够的数据库经验;2)不熟悉待评估的产品。于是入职的第2天,便提供给该同事所有的内外文档和标准的服务器,任务是部署我们的MPP和竞品数据库TeraData。结果是:

* TeraData: 2~3小时(没有竞品TeraData的经验,只采用公开的文档)
* MPP: 2.5天(头一天没有部署成功,第二天请设计部署脚本的同事支持帮助)

这是在6年前,云数据库还不成熟。线下安装一个复杂的分布式数据库,用个半天时间是可以被接受的。即使如此,差距是明显的,也就是说一位在数据库行业耕耘多年的同事,无法根据已有的文档独立部署安装。可想而知,客户将是束手无策的。客户一般是达不到这位同事的技术能力,更谈不上能够接触内部文档和直接获得工程师的协助。在当时如果要部署该数据库,就必须由公司人员到现场去安装(事实也如此)。无法通过“15分钟法则”就意味高昂的现场服务成本,完全无法在国际推广

可喜的是,该MPP逐步成熟起来,通过开源和云化,已经在国内市场占有举足轻重的地位。

三、面向国际的T & T

分布式HTAP数据库TiDB。从Day One, TiDB就完全拥抱开源,让开发者用起来是成功的关键。2018年的时候,TiDB还没有云化,刚刚做了新结构的改造,号称可以在一个单机环境下运行。我当时把它安装到了我的2017 MacBook Pro上,是一个docker上的虚拟环境,安装过程基本上满足了上面提的15分钟测试(花了不到一个小时时间,安装步骤还是比较清晰的)。不过在我完成了几个简单的SQL之后,TiDB把Mac的资源占满了。还没有机会再进一步尝试功能,就卸载了。

同样一个产品,当2021年我再一次安装的时候,在同一台MacBook Pro,它的提供了针对本地cluster(macOS and Linux)的部署TiUP,轻轻松松的通过了"15分钟测验",这次是真实的15分钟。很容易的让我完成了数据库事务能力与MySQL的对比工作。现在TiDB提供了直接的云化的产品,在K8S上做了部署的提高。中国数据库行业,TiDB是走向国际比较成功的一个团队了。有很多东西,值得我们学习。

在2022年我接触了一个刚刚出海的时序数据库产品TDengine。当时我在咖啡馆约了交流,刚好早到了半个小时,在买咖啡和朋友到达之间,我完成了TDengine的安装部署和使用。还是上面提到了那台2017的Mac。这是另一个生长于国内,并且有能力出海的数据库产品。

四、对云数据库的挑战

相对来说,单机版的数据库比如MySQL或PG,一行安装: $ brew install mysql, 是比较容易在开发者个人环境运行的,满足15分钟测试。

上面两个例子中都是集群数据库。它的挑战在于本身不是为单机版设计的,正常配置会要求多个节点。但我们可以看到这些成功的先行者们都会想方设法让产品可以落到每一个开发者的开发环境,比如一台macbook。

然而云数据库,比如RDS-MySQL,要增加了几道门槛。以华为云为例,其安装部署文档
云数据库 RDS 快速入门中RDS for MySQL 快速入门有46页,步骤一“购买”11页,步骤二“连接”33页。云数据库的自动化了安装部署,同时添加了规格和网络配置的步骤。要公平的讲,这些步骤在正式上产品(product environment)的时候都是必须的也是耗费人力资源的,近五十页的文档也是为了保证全面完整性所必须的。同时,产品设计者忽视了试用者的“15分钟法则”

在这里插入图片描述

华为云数据库RDS首页宣传视频中宣称“部署到访问只需几分钟”(视频第33秒)。如果不是专门操练该流程,而是首次使用该产品的程序猿。根据该教程一步步在浏览器上,点击鼠标,这将是一个小时的操作。而且是在不出错的情况下,并且不包括需要注册账号,付款等。远远超过了上文提到的15分钟准则。

公平的说,阿里,腾讯,火山,都面临类似的问题和挑战。有心的读者们任选一个尝试一下,假设你之前没有被训练过,看看30分钟能够走到哪一步?多长时间可以完成第一个SQL语句?海外成熟的AWS,GCP等等也没有银弹,只是相对来说,海外的云厂商在步骤上更人性化一些,比如说在生成实例时,把说明的文档同生成实例的步骤在浏览器并排安放,便于使用者在同一个屏幕抄作业。同时海外的云数据库采用了下面一节的解决方案。

五、产品与用户之间的距离

虽然没有放之四海而皆准的银蛋,办法总比困难多。

  • TDEngine采用操作系统的Package management,yumapt-getbrew。这是开发人员最熟悉的方式。
  • TiDB的方式更加有趣:
    1. 为本地部署开发了TiUP
    2. 只是玩玩的话,就来TiDB Playground
    3. TiDB Serverless。 类似现在的“预制菜”。 既然安装部署门槛比较高,不如预先开好服务。用户signup TiDB Cloud之后,就直接指派一个Serverless cluster, 完全跳过这个门槛4
  • IaC(infrastructure as code)。成熟的云服务使用者都已经摆脱了浏览器和点鼠标为主的操作,因为围绕浏览器的鼠标操作not programable, not serviceable, no quality control, no version control, not scalable。IaC的理念在国际已经非常成熟。请参考大约两年前阿里数据库团队的设计的一些Terraform为基础范例.

海外数据库类产品,比较流行的上面提到的后三类:Playground(例如Airbyte),预生产(Serverless Instance/Cluster - Bigquery, Snowflake, GCP-RDS), IaC (AWS CloudFormation, HashiCorp’s Terraform) 。相信对于国产数据库产品是有启发的,比如NineData为用户提供了 2 个免费的 MySQL 测试数据源demo_datasource,便是采用“预生产”手段,这样用户在账号建立后,就可以立刻体验SQL 开发,数据复制,备份等功能。

写在最后的话,如果您是初创企业的CTO或大厂的决策者,对于有志打造走向世界的产品,15分钟测试便尤其重要了。因为国内比较常见的驻场和人工支持在国际是昂贵到无法逾越的鸿沟。请不要错过任何一个新员工带来的机会。入职的第一天,请这位或实习生或行业大佬完成hello world。他的TTHW便是您的产品与用户之间的距离,贴近客户从15分钟测试做起

尾巴

在笔者采用15分钟法则尝试的数据库中,Neon(一个Serverless计算和存储分离的Postgres)是最好的:一分钟之内完成的hello world。

本文的部分思路是在西湖边的西泠印社完成的。

在这里插入图片描述


  1. 《阿里云连续3年跻身Gartner全球云数据库管理系统领导者象限》 官网 ↩︎

  2. https://zh.wikipedia.org/wiki/Hello_World ↩︎

  3. 全称为“15分钟10刀测试”:15分钟是现代人在正常环境下可以保持专心的时间段, 10刀是这十五分钟的人力成本。。 ↩︎

  4. GCP等也采用类似的方式。 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/84288.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Scala 高阶:Scala中的模式匹配

一、概述 Scala中的模式匹配(case)类似于Java中的switch...case,但是Scala的模式匹配功能更为强大。通过模式匹配,可以匹配更复杂的条件和数据结构,包括常量、类型、集合、元组等。而 Java 的 switch 语句只能用于匹配…

算法分析与设计编程题 贪心算法

活动安排问题 题目描述 解题代码 vector<bool> greedySelector(vector<vector<int>>& intervals) {int n intervals.size();// 将活动区间按结束时间的从小到大排序auto cmp [](vector<int>& interval1, vector<int>& interval2…

YOLOv5,YOLOv8添加ASFF(自适应空间特征融合)

ASFF&#xff1a;Adaptively Spatial Feature Fusion (自适应空间特征融合) 论文来源&#xff1a;Learning Spatial Fusion for Single-Shot Object Detection 代码地址&#xff1a;ASFF 1.背景 不同特征尺度之间的不一致性是基于特征金字塔的单阶段检测器的主要缺陷。 本文…

【VastbaseG100】 FATAL: The account has been locked.

使用VastbaseG100 数据库&#xff0c;查询数据报错。 org.postgresql.util.PSQLException: FATAL: The account has been locked. 帐户已被锁定。 解锁账户呗 ALTER ROLE doc ACCOUNT UNLOCK;ALTER ROLE 用户名 ACCOUNT UNLOCK; 修改密码 ALTER ROLE doc IDENTIFIED BY ZhangS…

Git小乌龟不弹add push commit的方法

1.关于使用Git小乌龟无法弹出Add菜单的问题 第一次使用小乌龟软件&#xff0c;发现可以正常将程序从Gitee仓库中克隆到本地&#xff0c;但是在将本地的程序上传到Gitee仓库中时&#xff0c;TortoiseGit无法弹出Add那一系列菜单&#xff0c;如下图所示&#xff1a; 2.解决方法 …

开源日报 0821:帮你修复老旧照片

这篇文章总结了几个开源项目的特点和优势。其中包括了 Python 资源列表、金融研究工具、动画精灵程序、游戏和旧照片修复项目等。这些项目提供了丰富的功能和技术支持&#xff0c;用户可以根据自己的需求进行定制和改进。总的来说&#xff0c;这些开源项目为开发者和用户提供了…

安防视频/视频汇聚平台EasyCVR使用onvif探测添加设备通道详细步骤来啦!

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、…

大数据学习1.1-Centos8虚拟机安装

1.创建新的虚拟机 2.选择稍后安装OS 3.选择Linux的CentOS8 4.选择安装路径 5.分配20g存储空间 6.自定义硬件 7.分配2g内存 8.分配2核处理器 9.选择镜像位置 10.开启虚拟机安装 推荐密码设置为root

WebGL 用鼠标控制物体旋转

目录 鼠标控制物体旋转 如何实现物体旋转 示例程序&#xff08;RotateObject.js&#xff09; 代码详解 示例效果 鼠标控制物体旋转 有时候&#xff0c;WebGL程序需要让用户通过鼠标操作三维物体。这一节来分析示例程序RotateObject&#xff0c;该程序允许用户通过拖动&…

DC/DC开关电源学习笔记(十)Buck降压电路仿真及工程应用实例

(十)Buck降压电路仿真及工程应用实例 1. 仿真应用实例1.1 案例一1.2 案例二2. 工程应用实例2.1 数字DC/DC应用实例2.2 模拟DC/DC应用实例1. 仿真应用实例 1.1 案例一 仿真技术要求输入:输入电压30~90V,输出电压28V,输出电流最大10A,开关频率100KHz。我们按照参数极限工…

一、八大排序(sort)

文章目录 一、时间复杂度&#xff08;一&#xff09;定义&#xff1a;常数操作 二、空间复杂度&#xff08;一&#xff09;定义&#xff1a; 三、排序&#xff08;一&#xff09;选择排序1.定义2.代码3.特性 &#xff08;二&#xff09;冒泡排序1.定义2.代码3.特性 &#xff08…

雷龙CS SD NAND(贴片式TF卡)性能体验及应用

前段时间有幸得到了雷龙出品的贴片式的TF卡的芯片及转接板&#xff0c;从而对其产品进行了相应的了解和测评。 从获得的相关资料看&#xff0c;雷龙出品的贴片式芯片分为两类&#xff0c;即BOW型和AOW型&#xff0c;其中BOW型为第一代产品&#xff0c;属商业级&#xff1b;AOW…

【网络协议】Http-中

搜索引擎&#xff1a;搜索引擎是指根据一定的策略、运用特定的计算机程序从互联网上采集信息&#xff0c;在对信息进行组织和处理后&#xff0c;为用户提供检索服务&#xff0c;将检索的相关信息展示给用户的系统。搜索引擎是工作于互联网上的一门检索技术&#xff0c;它旨在提…

简明 SQL 组合查询指南:掌握 UNION 实现数据筛选

在SQL中&#xff0c;组合查询是一种将多个SELECT查询结果合并的操作&#xff0c;通常使用UNION和UNION ALL两种方式。 UNION 用于合并多个查询结果集&#xff0c;同时去除重复的行&#xff0c;即只保留一份相同的数据。UNION ALL 也用于合并多个查询结果集&#xff0c;但不去除…

XSS跨站脚本攻击

XSS全称&#xff08;Cross Site Scripting&#xff09;跨站脚本攻击,XSS属于客户端攻击&#xff0c;受害者最终是用户&#xff0c;在网页中嵌入客户端恶意脚本代码&#xff0c;最常用javascript语言。&#xff08;注意&#xff1a;叠成样式表CSS已经被占用所以叫XSS&#xff09…

Mac使用sz/rz

从使用体验上说,sz/rz要比scp要好得多.但Mac上使用这两个命令需要进行相应配置. sz&#xff1a;将选定的文件发送&#xff08;send&#xff09;到本地机器 rz&#xff1a;运行该命令会弹出一个文件选择窗口&#xff0c;从本地选择文件上传到Linux服务器 下载安装lrzsz brew i…

探索智能应用的基石:多模态大模型赋能文档图像处理

目录 0 写在前面1 文档图像分析新重点2 token荒&#xff1a;电子文档助力大模型3 大模型赋能智能文档分析4 文档图像大模型应用可能性4.1 专有大模型4.2 多模态模型4.3 设计思路 总结 0 写在前面 中国智能产业高峰论坛(CIIS2023)旨在为政企研学各界学者专家提供同台交流的机会…

rom修改----安卓系列机型如何内置app 如何选择so文件内置

系统内置app的需求 在与各工作室对接中操作单中&#xff0c;很多需要内置客户特定的有些app到系统里&#xff0c;这样方便客户刷入固件后直接调用。例如内置apk 去开机引导 去usb调试 默认开启usb安全设置等等。那么很多app内置有不同的反应。有的可以直接内置。有的需要加so…

基于 Socket 网络编程

基于 Socket 网络编程 前言一、基于Socket的网络通信传输&#xff08;传输层&#xff09;二、UDP 的数据报套接字编程1、UDP 套接字编程 API2、使用 UDP Socket 实现简单通信 三、TCP 流套接字编程1、TCP 流套接字编程 API2、使用 TCP Socket 实现简单通信3、使用 Tcp 协议进行…

【实战案例】技术转项目经理容易踩的坑,我都踩了

“带团队容易&#xff0c;带好团队难。” 这是身边一位项目经理近期在团队管理方面的深刻感悟。目前&#xff0c;他手上的一个项目被迫暂停了&#xff0c;项目团队也散了。下面给大家简要分享下这个项目案例。 【案例分享】 小李负责的是一个二次开发的项目&#xff0c;所涉及…