本指南介绍如何进一步探索并使用 TiDB 在线事务与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 功能。

注意

如果你对 TiDB HTAP 功能还不太了解,希望快速试用体验,请参阅快速上手 HTAP。

要快速了解 TiDB 在 HTAP 场景下的体系架构与 HTAP 的适用场景,建议先观看下面的培训视频(时长 15 分钟)。注意本视频只作为学习参考,如需了解详细的 HTAP 相关内容,请参阅下方的文档内容。

HTAP 适用场景

TiDB HTAP 可以满足企业海量数据的增产需求、降低运维的风险成本、与现有的大数据栈无缝缝合,从而实现数据资产价值的实时变现。

以下是三种 HTAP 典型适用场景:

  • 混合负载场景

    当将 TiDB 应用于在线实时分析处理的混合负载场景时,开发人员只需要提供一个入口,TiDB 将自动根据业务类型选择不同的处理引擎。

  • 实时流处理场景

    当将 TiDB 应用于实时流处理场景时,TiDB 能保证源源不断流入系统的数据实时可查,同时可兼顾高并发数据服务与 BI 查询。

  • 数据中枢场景

    当将 TiDB 应用于数据中枢场景时,TiDB 作为数据中枢可以无缝连接数据业务层和数据仓库层,满足不同业务的需求。

如果想了解更多关于 TiDB HTAP 场景信息,请参阅 PingCAP 官网中关于 HTAP 的博客。

HTAP 架构

在 TiDB 中,面向在线事务处理的行存储引擎 TiKV 与面向实时分析场景的列存储引擎 TiFlash 同时存在,自动同步,保持强一致性。

更多架构信息,请参考 TiDB HTAP 形态架构。

HTAP 环境准备

在深入探索 TiDB HTAP 功能前,请依据你的数据场景部署 TiDB 以及对应的数据分析引擎。大数据场景 (100 T) 下,推荐使用 TiFlash MPP 作为 HTAP 的主要方案,TiSpark 作为补充方案。

  • TiFlash

    • 如果已经部署 TiDB 集群但尚未部署 TiFlash 节点,请参阅扩容 TiFlash 节点中的步骤在现有 TiDB 集群中添加 TiFlash 节点。

    • 如果尚未部署 TiDB 集群,请使用 TiUP 部署 TiDB 集群,并在包含最小拓扑的基础上,同时增加 TiFlash 拓扑架构。

    • 在决定如何选择 TiFlash 节点数量时,请考虑以下几种业务场景:

      • 如果业务场景以 OLTP 为主,做轻量级的 Ad hoc OLAP 计算,通常部署 1 个或几个 TiFlash 节点就会产生明显的加速效果。
      • 当 OLTP 数据吞吐量对节点 I/O 无明显压力时,每个 TiFlash 节点将会使用较多资源用于计算,这样 TiFlash 集群可实现近似线性的扩展能力。TiFlash 节点数量应根据期待的性能和响应时间调整。
      • 当 OLTP 数据吞吐量较高时(例如写入或更新超过千万行/小时),由于网络和物理磁盘的写入能力有限,内部 TiKV 与 TiFlash 之间的 I/O 会成为主要瓶颈,也容易产生读写热点。此时 TiFlash 节点数与 OLAP 计算量有较复杂非线性关系,需要根据具体系统状态调整节点数量。
  • TiSpark

    • 如果你的业务需要基于 Spark 进行分析,请部署 TiSpark。具体步骤,请参阅 TiSpark 用户指南。

HTAP 数据准备

TiFlash 部署完成后并不会自动同步数据,你需要指定需要同步到 TiFlash 的数据表。指定后,TiDB 将创建对应的 TiFlash 副本。

  • 如果 TiDB 集群中还没有数据,请先迁移数据到 TiDB。详情请参阅数据迁移。
  • 如果 TiDB 集群中已经有从上游同步过来的数据,TiFlash 部署完成后并不会自动同步数据,而需要手动指定需要同步的表,详情请参阅使用 TiFlash。

HTAP 数据处理

使用 TiDB 时,你只需输入 SQL 语句进行查询或者写入需求。对于创建了 TiFlash 副本的表,TiDB 会依靠前端优化器自由选择最优的执行方式。

注意

TiFlash 的 MPP 模式默认开启。当执行 SQL 语句时,TiDB 会通过优化器自动判断并选择是否以 MPP 模式执行。

  • 如需关闭 MPP 模式,请将系统变量 tidb_allow_mpp 的值设置为 OFF。
  • 如需强制使用 TiFlash 的 MPP 模式执行查询,请将系统变量 tidb_allow_mpp 和 tidb_enforce_mpp 的值设置为 ON。
  • 如需查看 TiDB 是否选择以 MPP 模式执行,你可以通过 EXPLAIN 语句查看具体的查询执行计划。如果 EXPLAIN 语句的结果中出现 ExchangeSender 和 ExchangeReceiver 算子,表明 MPP 已生效。

HTAP 性能监控

在 TiDB 的使用过程中,可以选择以下方式监控 TiDB 集群运行情况并查看性能数据。

  • TiDB Dashboard:查看集群整体运行概况,分析集群读写流量分布及趋势变化,详细了解耗时较长的 SQL 语句的执行信息。
  • 监控系统 (Prometheus & Grafana):查看 TiDB 集群各组件(包括 PD、TiDB、TiKV、TiFlash、TiCDC、Node_exporter)的相关监控参数。

如需查看 TiDB 和 TiFlash 集群报警规则和处理方法,请查阅 TiDB 集群报警规则和 TiFlash 报警规则。

HTAP 故障诊断

在使用 TiDB 的过程中如果遇到问题,请参阅以下文档:

  • 分析慢查询
  • 定位消耗系统资源多的查询
  • TiDB 热点问题处理
  • TiDB 集群故障诊断
  • TiFlash 常见问题

除此之外,你可以在 Github Issues 新建一个 Issue 反馈问题,或者在 AskTUG 提交你的问题。

HTAP 深入探索指南相关推荐

  1. HTAP 快速上手指南

    本指南介绍如何快速上手体验 TiDB 的一站式混合型在线事务与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 功能. 注意 ...

  2. TIDB——HTAP

    新一代HTAP数据库选型 HTAP概念的产生 传统数据库OLAP的技术:并行计算,partition,物化视图,列存,bitmap HTAP核心诉求数据服务的统一 TiDB应对HTAP 1.海量存储允 ...

  3. 2019年5月 Teams Community Call (China)

    这个月有四个话题: Tony Xia:这个月的Teams的产品更新,Teams开发能力的更新,开源项目更新,库更新 王远:升级/迁移到Microsoft Teams 刘钰:Teams账号注册探索指南 ...

  4. 空前绝后!PostgresConf.CNPGConf.Asia 2020大会闭幕

    2020年11月17日-20日,PostgresConf.CN & PGconf.Asia2020大会(简称2020 PG亚洲大会)通过线上盛大召开!本次大会由中国开源软件推进联盟PG分会.P ...

  5. 2022年12月国产数据库大事记-墨天轮

    本文为墨天轮技术社区整理的2022年12月国产数据库大事件和重要产品发布消息. 目录 12月国产数据库大事记(时间线) 产品/版本发布 兼容认证 排行榜新增数据库 厂商活动 相关资料 12月国产数据库 ...

  6. python异常值检测和处理_【Python实战】单变量异常值检测

    [Python实战]单变量异常值检测 异常值检测是数据预处理阶段重要的环节,这篇文章介绍下对于单变量异常值检测的常用方法,通过Python代码实现. 一.什么是异常值 异常值是在数据集中与其他观察值有 ...

  7. SOA 建模之服务实施

       本文的内容 前面几篇文章中的步骤创建了一个满足业务需求的完全的 SOA 解决方案模型.因此,我们知道这个解决方案体系机构完成什么需求,以及当需求变化时需要什么改变. 要配置和运行 Web 服务, ...

  8. 《树莓派学习指南(基于Linux)》——第 2 章 开始探索 2.1 欢迎使用LXDE

    本节书摘来自异步社区<树莓派学习指南(基于Linux)>一书中的第2章,第2.1节,作者[英]Peter Membrey ,[澳]David Hows ,译者 张志博,孙峻文,更多章节内容 ...

  9. 米其林餐厅 盐之花_在世界范围内探索《米其林指南》

    米其林餐厅 盐之花 Among the culinary world, there are few greater accolades for a restaurant than being awar ...

最新文章

  1. 智源杯天文数据算法挑战赛开赛,前沿AI技术助力天文科学研究
  2. mysql dml ddldcl权限_MySQL中的DML、DDL、DCL到底是什么呢?
  3. [iphone]XML 解析 之 TBXML 介绍
  4. 袋鼯麻麻——智能购物平台
  5. boost::spirit模块演示 AST 生成的计算器示例,AST一旦创建就会被遍历
  6. ROS学习总结一ROS组织框架与几个关键词
  7. iframe 页面填充
  8. 西门子stl语言指令_STEP7项目的JL跳转指令你会用吗?
  9. 无法定位程序输入点 except_软件测试中的功能测试点(三)
  10. LeetCode 126. 单词接龙 II(图的BFS)
  11. 以时间作为条件查询记录(案例)
  12. 使用说明_无线投屏器使用说明教程
  13. 分布式微服务云架构电子商务平台
  14. group by having执行顺序
  15. [ctfshow]web入门——命令执行(web54-web71)
  16. c语言课后编程题第八章答案,C语言课后编程题答案
  17. 国内首个“新基建”安全大赛启动了!
  18. 华为RH2288 V3分区并装系统
  19. 玉米社:抖音作品几大核心指标,完播率、点赞率、吸粉率多少算好?
  20. vim常用插件安装及使用

热门文章

  1. 小型初创公司Trisymbiotic IP(R)宣布,其美国专利10,020,436的设施效率超越美国和中国最快的超级计算机
  2. tf2常用数据类型与常用函数汇总
  3. 自再现模形成过程matlab,激光原理课程设计--平行平面腔自再现模Fox-Li数值迭代解法及MATLAB实现.doc...
  4. HIV数据可视-可交互式地图+可拖动时间条(D3+Javascript)
  5. JavaEE(SSM框架,黑马程序员) P163~P178
  6. 初识DTW(动态时间规整)算法及Python实现例
  7. Autoware1.15 + OpenPlanner2.5 下的laneChange解析(1)
  8. 有了它,你的照片能“屏蔽”人脸识别算法
  9. 功能测试——抓包工具(fiddler)
  10. javascript世界上最被误解的语言