[转帖] TiDB 产品体系介绍

tidb,产品,体系,介绍 · 浏览次数 : 0

小编点评

**数据库云服务:TiDB Cloud** **工具和功能:** * **TiUP**:开源工具,支持 MacOS一键安装部署。 * **TiDB Dashboard**:管理工具,支持一键安装部署。 * **Key Visualizer**:可视化工具,提供流量可视化。 * **云服务市场阿里云:**自助开通流程,低门槛、试用时间长。 **核心能力:** * 自研产品策略。 * 多套设计风格,支持针对性。 * 内外结合,提供强大能力和优秀体验。 **劣势:** * 部分能力依赖第三方。 * 产品形态和扩展性上会受到限制。 * 缺乏 all-in-one 的平台级产品。 **产品策略:** * 提供数据库运维管理平台 TiUniManager。 * 面向独立部署和大规模运维管控。 **主要功能:** * 数据库运维管理。 * 流量可视化。 * 数据可视化。 * 管理工具。 **结论:** TiDB Cloud 是一个提供数据库云服务的平台,支持 MacOS、一键安装部署。核心能力自研,产品策略多套,面向独立部署和大规模运维管控。

正文

https://www.modb.pro/db/521269#:~:text=%E4%BC%81%E4%B8%9A%E7%89%88%E5%92%8C%E7%A4%BE%E5%8C%BA%E7%89%88%E7%9A%84%E5%86%85%E6%A0%B8%E7%9B%B8%E5%90%8C%EF%BC%8C%E4%BD%86%E4%BC%81%E4%B8%9A%E7%89%88%E4%BC%9A%E5%8C%85%E5%90%AB%E6%9B%B4%E5%A4%9A%E7%9A%84%E5%91%A8%E8%BE%B9%E7%94%9F%E6%80%81%E5%B7%A5%E5%85%B7%E5%92%8C%E4%BA%A7%E5%93%81%E6%8A%80%E6%9C%AF%E6%9C%8D%E5%8A%A1%E3%80%82%20TiDB%20Cloud,%E5%88%99%E6%8F%90%E4%BE%9B%20DBaaS%20%E6%9C%8D%E5%8A%A1%EF%BC%8C%E6%8C%89%E9%9C%80%E4%BB%98%E8%B4%B9%EF%BC%8C%E5%BC%80%E5%8F%91%E8%80%85%E7%89%88%E6%9C%AC%E6%94%AF%E6%8C%81%E5%85%8D%E8%B4%B9%E8%AF%95%E7%94%A8%E4%B8%80%E5%B9%B4%E3%80%82

 

快速体验 TiDB 的几种方式:

1. 使用 TiUP,几分钟搭建本地测试集群,并自动安装 TiDB Dashboard 和 Grafana,支持 MacOS

https://docs.pingcap.com/zh/tidb/stable/quick-start-with-tidb#%E9%83%A8%E7%BD%B2%E6%9C%AC%E5%9C%B0%E6%B5%8B%E8%AF%95%E9%9B%86%E7%BE%A4

2. 自助开通 TiDB Cloud,可以免费试用一年 https://tidbcloud.com/

3. 在线体验 TiDB 的 SQL 执行: https://tour.pingcap.com/

对于一个基础软件产品来说,一个重要的长期竞争力和产品价值来自于可观测性和 Troubleshooting 能力。这个世界没有完美的软件,而且对于有经验的开发者来说,快速的发现和定位问题的能力是必备的,对于基础软件的商业化来说,服务支持效率和 Self-serving 也是规模化的基础,这一点在云的环境下也同样重要。

-- 黄东旭: 关于基础软件产品价值的思考

概述

  • TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,主打 HTAP 和 MySQL 兼容替换。

Why TiDB

  • 在三方评测、专利和论文均不占优的情况下,TiDB 的整体得分仍能排名第一,说明在其它的得分项上非常突出。墨天轮对 TiDB 的整体评价是:“TiDB 为其他国产开源数据库发挥了示范性作用,一直在技术领域精耕细作,不断在市场中打磨产品,树立了良好的品牌形象。”

TiDB 架构

  • 核心能力: 分布式 Sharding Nothing、存储计算分离、HTAP、MySQL 兼容

  • 核心组件:
    • PD: 负责元数据管理、任务调度、负载均衡
    • TiDB/TiSpark: SQL 层
    • TiKV/TiFlash: 存储 + 事务层,分别对应行存和列存,以实现 HTAP 混合负载。但需要将 TiKV 和 TiFlash 部署到不同节点才能实现负载隔离。
  • TiDB 不支持多租户,一般是把整个集群作为单个租户使用。

  • 数据库代理: 需要集成 ProxySQL 等第三方中间件实现。
  • 数据库驱动&工具: 使用 MySQL 社区已有的驱动和中间件。

TiDB 工具体系

TiDB 产品形态

  • 企业版和社区版的内核相同,但企业版会包含更多的周边生态工具和产品技术服务。TiDB Cloud 则提供 DBaaS 服务,按需付费,开发者版本支持免费试用一年。

TiDB 客户案例

  • 国内客户以金融、互联网、游戏和视频行业为主。

  • 海外客户分布在美国、新加坡、日本 20+ 国家和地区。

TiDB Dashboard

介绍

  • TiDB Dashboard 是 TiDB 自 4.0 版本起提供的图形化界面,可用于监控及诊断 TiDB 集群。TiDB Dashboard 内置于 TiDB 的 PD 组件中,无需独立部署 (触达门槛低)。

安装部署

技术架构

  • TiDB Dashboard 已在 GitHub 上 开源,前端使用 React (Monorepo 架构),后端使用 Go,前后端一体化架构。

  • UI 库: antd、office-ui-fabric-react、部分 rc-* 类组件
  • 图标库: @ant-design/icons
  • 关系图库: d3、d3-flextree、d3-graphviz
  • 日期时间库: dayjs
  • 请求库: axios
  • hooks 库: ahooks
  • 工具库: lodash
  • 布局库: @g07cha/flexbox-react
  • 国际化: i18next
  • 前端代码规模: 6.1w

  • 后端代码规模: 2w

产品能力

运维

  • 无运维功能,需要通过 TiUP 进行黑屏运维,TiDB Dashboard 仅支持展示实例、主机、磁盘、存储拓扑等基本信息。

监控

  • 内置监控: TiDB Dashboard 从 v6.2 版本开始,内置了一个包含常用指标的监控页面,不跳转 Dashboard 也能满足大部分日常的监控需求,包含折线图、柱状图、堆叠图、面积图等多种类型图表,分析维度较为多样。图表库用的是 @elastic/charts,整体观感比 G2Plot 好不少,但似乎不支持框选。

  • Grafana 监控: 会和 TiDB Dashboard 一起安装,默认提供了 23 个监控面板,涉及的指标和对象维度非常全面,加上 Grafana 本身强大的自定义能力,也非常容易扩展。因此 TiDB 的监控能力和体验较为优秀,缺点是搭配 TiDB Dashboard 使用体感较为割裂,无法与其他模块做关联分析,产品形态容易受限。

告警

  • 依赖 Grafana 的告警能力,同样也内置了一批告警规则,可以做到开箱即用,满足日常的告警需求。

  • 通过对接 ElasticSearch 等数据源,也支持配置日志告警,来实现扩展。

  • 支持钉钉、Slack、LINE 等国内外常用的告警通道,配置起来也比较简单。

诊断

TopSQL

  • 只支持查看一段时间内累计 CPU 耗时 Top5 的 SQL,产品能力比较简单。其提供的图形化分析方式虽然比较炫酷,但数据维度单一,感觉实际意义不是很大。

SQL 语句分析

  • 支持基本的 SQL 查询和分析能力,而且执行的 SQL 可以即时刷新,应该是从 TiDB 直接读取的记录,没有单独的采集和存储层。

  • SQL 详情页包含基础信息、执行计划、数据库时间、事务、慢查询等。

  • 执行计划支持可视化关系图 (基于 d3 实现) 和文本两种展示形式。

  • 数据库阶段耗时分析:

流量可视化

  • 本质是一个热力图 (基于 d3 实现),颜色越亮表示该 Region/Bucket 流量越高,主要用于分析热点问题和数据库的负载均衡情况。

  • TPC-C 测试的热力图。

集群诊断报告

  • 类似 Oracle AWR 报告,汇总展示基本信息、诊断、负载、各个组件执行详情等多个维度数据。该报告只支持在线查看,不支持下载。

  • 同时还提供查询报告数据时的 TiDB 内部调用关系图,关系图由后端通过 go-graphviz 生成。

日志

  • 支持查看不同级别和不同实例 (PD、TiDB、TiKV、TiFlash) 的日志,查询逻辑简单易用,展示逻辑。

实例性能分析

  • 分为手动分析和持续分析两种,默认为持续分析,会记录历史上的性能数据,因此会占据更多的磁盘空间。

  • 支持查看各个实例节点上的性能数据,并提供火焰图 (speedscope) 和关系图 (go-graphviz ) 两种分析能力。

火焰图

关系图

调试接口

  • 和 OpenAPI 的作用类似,只不过全部是 Get 类型的接口,而且支持在线调试,对象参数无需手动填写、直接选择即可,体验比较好,算是一个面向 OpenAPI 场景的效率工具。

用户管理

  • TiDB Dashboard 与 TiDB 使用相同的用户权限体系和登录验证方式,需要使用 SQL 来新建用户和赋权,无白屏管理功能。

CREATE USER 'dashboardAdmin'@'%' IDENTIFIED BY '<YOUR_PASSWORD>';
GRANT PROCESS, CONFIG ON *.* TO 'dashboardAdmin'@'%';
GRANT SHOW DATABASES ON *.* TO 'dashboardAdmin'@'%';
GRANT DASHBOARD_CLIENT ON *.* TO 'dashboardAdmin'@'%';

-- 如果要使自定义的 SQL 用户能修改 TiDB Dashboard 界面上的各项配置,可以增加以下权限
GRANT SYSTEM_VARIABLES_ADMIN ON *.* TO 'dashboardAdmin'@'%';

  • TiDB 还支持基于角色的访问控制 (RBAC),类似于 MySQL 8.0 的 RBAC 系统。TiDB 兼容大部分 MySQL RBAC 系统的语法。

-- 创建角色 app_read
CREATE ROLE 'app_read';

-- 为 app_read 角色授予数据库 app_db 的读权限:
GRANT SELECT ON app_db.* TO 'app_read'@'%';

-- 授予用户角色
GRANT 'app_read' TO 'user1';

TiDB Cloud

介绍

  • TiDB 的数据库云服务,主要面向海外和云市场。

免费试用

  • 提供面向开发者和专业用户两种版本,其中开发者版本可免费体验一年,产品功能和资源会受到一定限制,比如无法使用备份恢复和 VPC 等高阶能力,可用的网络/存储/计算资源也会比较小。

  • 云服务商和地域也会受到限制,目前开发者版本仅支持选择 AWS 作为服务商。

开发者版本

专业版本

  • 这里新建测试集群 Cluster0,部署到 AWS 的新加坡地域。

  • 设置集群的 root 密码和可访问数据库的 IP 白名单:

  • 等待一分钟左右,集群即可创建成功。

产品能力

集群拓扑

数据库连接

  • 支持多种数据库连接方式,并给出了配置示例,同时还提供在线的 Web SQL Shell,非常贴心。

  • 使用 MySQL 客户端连接数据库:

  • 使用 Sequel Pro 连接数据库:

数据导入

  • 提供免费的数据导入服务,不过目前只支持从 AWS S3 和 Google Cloud Storage 导入。如果是其他数据源,就需要使用 TiDB 的迁移工具 进行线下导入了。

安全设置

  • 设置集群的 root 密码和可访问数据库的 IP 白名单。

监控

  • 集群页会展示 10 个常用指标的监控,监控能力较为单一。

告警

  • 内置了 10 个左右的告警项且默认生效,用户只需配置告警的订阅邮箱,不支持自定义告警。

第三方监控&告警

  • 如果内置的监控和告警能力不满足需求,也可以对接第三方产品如 Datadog 和 Prometheus。但 TiDB 只提供17 个监控指标作为数据源,用户需要自行开通 Datadog 服务或搭建 Prometheus & Grafana 环境才能接入。

备份恢复

  • 仅专业版本支持,可从开发者版本升级后使用。

SQL 诊断

Key Visualizer

云服务市场

调研总结

TiDB 优势

  • 上手门槛:
    • TiUP、TiDB Dashboard 等工具支持 MacOS 和一键安装部署,体验非常好,就算是新手小白也不会有挫败感。
    • TiDB Cloud 自助开通的流程非常顺滑,低门槛、试用时间长,而且 SaaS 服务化能力做的好,开箱即用。
  • 产品策略:
    • 安装、部署和运维均借助命令行工具实现,对用户尽可能屏蔽底层概念。
    • 诊断和分析类功能不少都是经典的可视化场景,用户接受度高,具备传播亮点,容易吸引用户。
    • 核心能力自研,外围能力如监控告警直接集成第三方平台和工具,提供强大能力和优秀体验的同时,也能减少自身的研发投入。
    • 国内和海外是单独两套产品策略、两套设计风格,更具针对性。

TiDB 劣势

  • 工具产品较为分散,缺少 all-in-one 的平台级产品和一些企业级特性 (比如审计),而且不少能力依赖第三方,产品形态和扩展性上会受到限制,难以适应线下各种差异化的场景,商业化输出也可能会有协议问题和法律风险。
  • 因此 TiDB 在今年 4 月份发布了 TiUniManager (TiDB Enterprise Manager) 数据库运维管理平台,面向独立部署和大规模运维管控。不过目前还处于产品化早期,仅对外迭代了三个小版本,产品能力和易用性上还有不少问题。TiUniManager 的产品架构和功能如下:

参考

与[转帖] TiDB 产品体系介绍相似的内容:

[转帖] TiDB 产品体系介绍

https://www.modb.pro/db/521269#:~:text=%E4%BC%81%E4%B8%9A%E7%89%88%E5%92%8C%E7%A4%BE%E5%8C%BA%E7%89%88%E7%9A%84%E5%86%85%E6%A0%B8%E7%9B%B8%E5%90%8C%EF

[转帖]TIDB TIKV 数据是怎么写入与通过Region 分割的?

https://cloud.tencent.com/developer/article/1882194 国产的分布式数据库不少,TDSQL, OB, TIDB ,等等都是比较知名的产品,使用的分布式协议也不同,有使用POSTGRES-XL ,也有从外观模仿ORACLE 的,还有借鉴各家所长自己研发的

[转帖]三篇文章了解 TiDB 技术内幕 - 谈调度

返回全部 申砾产品技术解读2017-06-06 为什么要进行调度 先回忆一下 三篇文章了解 TiDB 技术内幕 - 说存储 提到的一些信息,TiKV 集群是 TiDB 数据库的分布式 KV 存储引擎,数据以 Region 为单位进行复制和管理,每个 Region 会有多个 Replica(副本),这

[转帖]001、体系结构之概述

1.TiDB简介 TiDB 是 PingCAP 公司⾃主设计、研发的开源分布式关系型数据库,是⼀款同时⽀持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing,HTAP) 的融合型分布式数据库产品,具备⽔平扩容或者缩容、⾦融级⾼可

[转帖]5. Tikv安装部署

5. Tikv安装部署 5.1. 概述 TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品,具备

[转帖]TiDB 适配应用实践:MyBatis 3.5.X 在 JDK8 中性能问题的排查与优化

https://zhuanlan.zhihu.com/p/371638037 作者介绍:PingCAP Tech Center,于旸。 最近有金融客户使用 TiDB 适配批处理场景,数据量在数亿级。对于相同数据量的处理耗时,TiDB 要 35 分钟,而某商业数据库只要 15 分钟,足足相差 20 分

[转帖]tidb集群部署

http://blog.itpub.net/29785807/viewspace-2789852/ 一.安装规划 1 2 3 4 5 6 使用15台服务器 5台tidb服务器:每台3个tidb实例+1个pd+1个pump 10台tikv服务器:每台4个tikv实例 drainer_servers 安

[转帖]tidb 修改root密码

http://blog.51yip.com/tidb/2452.html 通过 {pd-ip}:{pd-port}/dashboard 登录 TiDB Dashboard,登录用户和口令为 TiDB 数据库 root 用户和口令。如果你修改过数据库的 root 密码,则以修改后的密码为准,默认密码为

[转帖]tidb 搭建私有镜像库

https://docs.pingcap.com/zh/tidb/stable/tiup-mirror 在构建私有云时,通常会使用隔离的网络环境,此时无法访问 TiUP 的官方镜像。因此,TiUP 提供了构建私有镜像的方案,它主要由 mirror 指令来实现,该方案也可用于离线部署。使用私有镜像,你

[转帖]tidb 如何对 TiDB 进行 TPC-C 测试

https://docs.pingcap.com/zh/tidb/stable/benchmark-tidb-using-tpcc TPC-C 是一个对 OLTP(联机交易处理)系统进行测试的规范,使用一个商品销售模型对 OLTP 系统进行测试,其中包含五类事务: NewOrder – 新订单的生成