009、体系架构之HTAP

news2024/11/25 4:59:20

HTAP

  • HTAP技术
    • 传统的HTAP解决方案
    • HATP的要求
    • TiDB的HTAP架构
    • TiDB的HTAP特性
    • 使用场景
  • MPP

HTAP技术

在这里插入图片描述

传统的HTAP解决方案

在这里插入图片描述
在这里插入图片描述

HATP的要求

  • 可扩展性
    • 分布式事务
    • 分布式存储
  • 同时支持OLTP与OLAP
    • 同时支持行存和列存
    • OLTP与OLAP业务隔离
  • 实时性
    • 行存与列存数据实时同步

TiDB的HTAP架构

数据存到TiKV的同是也会同步(也是使用raft算法,并且它不参与选举,只用于同步)到TiFlash,并且是它是列式。列式的意思就是数据块当中存的不是一行数据,而是一列的数据。

对于数据一致性要求的查询,会去到TiKV当中(行存)处理数据。例如银行转账
对于某列的数据大量更新,则会去到TiFLASH当总(列存)处理数据。

在这里插入图片描述
在这里插入图片描述

TiDB的HTAP特性

  • 行列混合
    • 列存(TiFlash) 支持基于主键的实时更新
    • TiFlash作为列存副本
    • OLTP与OLAP业务隔离
  • 智能选择(CBO自动或人工选择)
  • MPP架构
  • 强一致性,自动同步

MPP: 大规模平行并发处理。 它在TiFLASH中处理。

使用场景

HTAP—— TiDB 在线事务与在线分析处理 (Hybrid Transactional and Analytical Processing,HTAP) 功能。

TiDB HTAP 可以满⾜企业海量数据的增产需求、降低运维的⻛险成本、与现有的⼤数据栈⽆缝缝合,从⽽实现数据资产价值的实时变现。
以下是三种 HTAP 典型适⽤场景:

  • 混合负载场景
    当将 TiDB 应⽤于在线实时分析处理的混合负载场景时,开发⼈员只需要提供⼀个⼊⼝,TiDB 将⾃动根据业务类型选择不同的处理引擎。
  • 实时流处理场景
    当将 TiDB 应⽤于实时流处理场景时,TiDB 能保证源源不断流⼊系统的数据实时可查,同时可兼顾⾼并发数据服务与 BI 查询。
  • 数据中枢场景
    当将 TiDB 应⽤于数据中枢场景时,TiDB 作为数据中枢可以⽆缝连接数据业务层和数据仓库层,满⾜不同业务的需求。
  • 大数据量
    ⼤数据场景 (100 T) ,推荐使⽤ TiFlash MPP 作为 HTAP 的主要⽅案,TiSpark 作为补充⽅案。

MPP

  • 大量数据的join聚合查询
  • 所有MPP计算都在TiFlash节点内存中完成
  • 目前只支持等值连接
  • Enforce_mpp 帮助验证是否可以使用MPP
    在这里插入图片描述
    实现了聚合和连接的一个加速。MPP只在TiFlash上完成。

SQL过来,TiDB Server作为协调者,Tidb 会将每个TiFLASH 上面的列存做交换,交换后让表连接需要的数据只在一个TiFLASH上。(不会跨TiFlash做表连接)
另外TiFlash也会走计算下推到它,例如过滤,交换,连接,聚合等等。
每个TiFlash 在这里还有个专用名称(MPP WORKER)
在这里插入图片描述
先做过滤

在这里插入图片描述
然后数据交换
在这里插入图片描述
让pid相等(符合条件)的数据 都到一个节点上来。 这样在连接的时候,就只需要在本节点连接即可。
pid:hash(pid) = 0,1,2 : 假设分片的时候是按照hash或者求模的方式操作。 数据交换也可以根据对应的规则进行交换。

在这里插入图片描述

然后做连接的时候,只发生在本节点,不需要到其他节点查找数据,这样就可以并行执行了。

那如何对聚合做提速?
group by order.state 提速
在这里插入图片描述
state = cn 80个 的全放到一个TiFlash USA 15个 放到一个节点 Jp 77个都放到一个节点,

在这里插入图片描述
这个计算就下推到每个TiFLASH上。

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Committer 迎新!这次是来自阿里云的同学

点击蓝字 关注我们 迎新! 截至今天,Apache DolphinScheduler 项目在 GitHub 上的 Star 数已突破 10.6K,贡献者人数也突破了 470 人。社区的不断壮大,离不开每位 Contributor 的支持。 最近,Apache DolphinScheduler 又…

AI模型部署实战:利用CV-CUDA加速视觉模型部署流程

本文首发于公众号【DeepDriving】,欢迎关注。 CV-CUDA简介 随着深度学习技术在计算机视觉领域的发展,越来越多的AI算法模型被用于目标检测、图像分割、图像生成等任务中,如何高效地在云端或者边缘设备上部署这些模型是工程师迫切需要解决的问…

Android 13(T) - 智能指针

Android有一套自己的智能指针管理办法,并且将其运用在源码的各个角落,所以学习Media框架之前,我们有必要先了解下Android智能指针。 本节代码源自于Android 13(T),参考 (aospxref.com) 1 概述 与智能指针相关的总共有5个类&#…

某小厂面试加答案(6.15)

看 Java 面试题就去 www.javacn.site 磊哥新推出《企业面经和答案》栏目,最近会持续更新,欢迎大家订阅此账号查看,或访问 www.javacn.site 查看。 面经来源于牛客,如下图所示: https://www.nowcoder.com/feed/main/det…

OpenAI的创始人World Coin项目介绍

🎯 在一个崇高的目标支持下,不停地工作,即使慢,也一定会获得成功。—— 爱因斯坦 如果你对项目感兴趣请联系v:weixin605405145 一、项目速览 项目背景 Worldcoin由OpenAI的创始人Sam Altman于2019年创立,就…

【C++】的继承

继承的概念及定义 继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构…

010、体系架构之TiFlash

TiFlash TiFlash 功能架构异步复制一致性读取场景选择是选择TiKV还是TiFLash TiFlash 功能 异步复制一致性读取(写虽然是异步,但读可以做到一致性)引擎智能选择计算加速 架构 TiFLASH 也是通过raft 算法进行同步,但它不怎么消耗资源,因为它…

ProGuard 进阶系列(二)配置解析

书接上文,从开源库中把代码下载到本地后,就可以在 IDE 中进行运行了。从 main 方法入手,可以看到 ProGuard 执行的第一步就是去解析参数。本文的内容主要分析源码中我们配置的规则解析的实现。 在上一篇文章末尾,在 IDE 中&#x…

Vue Router4

后端路由 客户端请求不同的URL服务器匹配URL并给一个Controller处理Controller处理完返回渲染好的HTML页面或数据给前端 优点: 不需要单独加载js和css,直角交给浏览器展示,有利于SEO优化 缺点: 页面有后端人员编写或由前端人员…

告别里程焦虑:深蓝S7超级增程打造超长续航

提起新能源汽车,估计许多人第一时间都会想要查看它的续航里程。 虽然如今的新能源汽车在续航里程上较过去已经有了很大改进,但是稀缺的充电桩和漫长的充电时间,仍然无法让需要长途出行的用户摆脱里程焦虑。 那么问题就来了:有没有…

基于协同过滤算法的外贸出口电子电器产品的推荐系统的设计与实现源码+文档

博主介绍:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 项目名称 基于协同过滤算法的外贸出口电子电器产品的推荐系统的设计与实现源码文档 视频演示 https://www.bilibili.com/video/BV1HW4y197Fe/ 系统介绍 摘 要 …

dubbo源码之-ExtensionInjector

dubbo源码之-ExtensionInjector 概述源码入口Extension 是如何获取到?SpiExtensionInjector 概述 其实ExtensionInjector 非常简单, 我们知道dubbo有ioc注入的功能, 是靠的set方法注入,对应的底层源码主要是ExtensionInjector 如…

MySQL数据库语言一、DDL

😘作者简介:正在努力的99年打工人。 👊宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。 🙏创作不易,动…

华为OD机试真题B卷 JavaScript 实现【分班】,附详细解题思路

一、题目描述 幼儿园两个班的小朋友在排队时混在了一起,每位小朋友都知道自己是否与前面一位小朋友是否同班,请你帮忙把同班的小朋友找出来。 小朋友的编号为整数,与前一位小朋友同班用Y表示,不同班用N表示。 二、输入描述 输…

uniapp/手机APP使用支付宝支付(服务端)

博主介绍:✌全网粉丝4W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战、定制、远程,博主也曾写过优秀论文,查重率极低,在这方面…

chatgpt赋能python:Python接口应用于SEO的指南

Python接口应用于SEO的指南 Python成为了web开发中最流行的语言之一,而且尤其在SEO领域中被广泛应用。一些Python库和框架可帮助SEO团队实现其目标,如排名跟踪,爬取数据,进行网站分析,等等。在本文中,我们…

基于Hexo和Butterfly创建个人技术博客,(9) 优化butterfly主题配置文章版本

Butterfly官方网站,请 点击进入 本章目标: 掌握butterfly主题对文章的配置,熟悉并可按需配置到个人的博客站点中,本章内容是一个必会章节,不仅包括文章的UI美化、SEO相关配置还包括其它增加的功能,内容不多…

英语不好能不能学编程?

入门教程、案例源码、学习资料、读者群 请访问: python666.cn 大家好,欢迎来到 Crossin的编程教室 ! 常有人问我:我英语不好,想学编程行不行? 这个问题需要分情况讨论。 1. 可以学 如果你因为担心自己英语不…

chatgpt赋能python:Python怎么用?Python编程的入门指南

Python怎么用?Python编程的入门指南 Python是一种流行的高级编程语言,它被广泛应用于数据分析、机器学习、Web开发、自动化测试等领域。Python语言非常容易学习和使用,因此非常适合初学者和有经验的开发人员。在这篇文章中,我们将…

手把手教你在CentOS7.9上使用docker 安装MySQL5.7

前言 大家好,又见面了,我是沐风晓月,本文主要讲解如何用docker在centos7.9系统上安装MySQL5.7,以及如何设置MySQL的远程登录。 文章收录到【容器管理】和【数据库入门到精通专栏】,此专栏是沐风晓月对linux云计算架构…