首页 > 其他分享 >GaussDB实时分析组件

GaussDB实时分析组件

时间:2025-01-16 14:22:24浏览次数:1  
标签:OLTP GaussDB 实时 索引 RowID 组件 数据库 行存 列存

云原生数据库以OLTP为主,同时也支持基于OLTP数据的OLAP需求,如每日报表。在云原生数据库中,DBA可以选择为这部分表创建列存索引。创建完列存索引之后,执行器在做顺序扫描的时候,会自动选择列存索引进行数据的读取,实现快速扫描计算的能力。

云原生数据库以行存为基础,数据的增删改都先以行存的形式落到数据库中。事务、xlog等机制保障了行存的ACID特性。行存采用Inplace-update引擎,一个Tuple一旦被插入到表中,位置基本不会改变。每个Tuple可以用它的物理位置(文件页号+页内偏移,称为RowID),作为唯一标识。事务的多版本在回滚段中,可以根据RowID直接访问。

云原生数据库中的列存索引方案如下图所示:列存是根据行存构建的一个read-only的副本,每次对行存的更新操作会在元数据区域(In Memory Delta Unit,IMDU)增加一条RowID记录。列存扫描的时候会查看元数据区域,确定哪些Tuple已经失效,再去行存中根据RowID读相应的数据。后台线程会周期性地更新列存,回收元数据。如果列存索引和更新操作不在同一台机器上,使用batch模式,即把一个事务中产生的所有失效信息,统一打包到一个RPC请求中,发送给列存索引所在的实例上,从而减少对OLTP请求的影响。行存的block为8KB,列存需要较多的数据量才能实现更好的压缩、向量化操作等优化。所以一个IMCU对应多个行存的block,目前暂定为1024个,这样一个1024个block称为一个Super Block。

在这里插入图片描述
为了支持列存大小超过内存容量的场景,列存索引支持从内存中置换到磁盘上。但是列存本身在故障情况下并不能保证自身的一致性,故障重启之后列存需要根据行存的内容重新构建。所以这里的磁盘对于列存来说,是内存的延伸,用来缓存额外的数据。

因为DU容量小,且经常被修改,所以可以常驻内存。列存索引和行存完全是解耦开的。部署形态上,列存索引既可以与行存在一个实例中,节约物理资源;也可以与行存在不同的实例中,避免OLAP请求对OLTP请求产生影响。两种部署形态分别如下图所示:

在这里插入图片描述

标签:OLTP,GaussDB,实时,索引,RowID,组件,数据库,行存,列存
From: https://www.cnblogs.com/xiaoxu0211/p/18674914

相关文章

  • GaussDB关键技术方案_通信组件
    GaussDB关键技术方案_通信组件云原生数据库采用shareddisk架构,各个计算节点对等,计算节点之间通过页面交换实现缓存数据的一致性,为了提高页面传递的效率,需要利用RDMA或UB单边读写的能力;云原生数据库为了管理动态资源,需要对动态资源的owner分配进行加锁,分布式锁管理需要利用原子操......
  • GaussDB多租组件
    云原生数据库支持多租户,通过多租户资源共享,一是降低租户的成本,二是通过共享资源的池化实现租户的资源弹性,提高租户业务的可用性。租户的资源弹性支持两种模式,ScaleUp和ScaleOut。ScaleUp是在单个计算节点上对租户的分配资源进行弹性处理,ScaleOut是在计算节点之间对租户的分配......
  • Qml 中实现时间轴组件
    【写在前面】时间轴组件是现代用户界面中常见的元素,用于按时间顺序展示事件。本文将介绍如何使用Qml实现一个灵活且可定制的时间轴组件,并探讨其设计思路和实现细节。【正文开始】效果图组件概述我们实现的时间轴组件具有以下特点:支持自定义节点样式:可以设置节点的图......
  • vue2子组件获取父组件的实例以及数据,vue2子组件获取父组件的数据
    多个组件引入同一个js文件,实例化对象,数据不会错乱,再引入相同的组件,例如每个页面都需要引入到一个分页组件,然后分页组件需要获取各自父组件中的实例对象通过  this.$parent 即可获取到父组件中的数据所以在使用子组件时可以不用在组件上传入数据 公共js文件functionda......
  • GaussDB系统表和系统视图概述
    系统表和系统视图概述系统表是GaussDB存放结构元数据的地方,它是GaussDB数据库系统运行控制信息的来源,是数据库系统的核心组成部分。系统视图提供了查询系统表和访问数据库内部状态的方法。系统表和系统视图要么只对管理员可见,要么对所有用户可见。下面的系统表和视图有些标......
  • GaussDB-SQL查询最佳实践
    GaussDB-SQL查询最佳实践根据数据库的SQL执行机制以及大量的实践总结发现:通过一定的规则调整SQL语句,在保证结果正确的基础上,能够提高SQL执行效率。使用unionall代替union。union在合并两个集合时会执行去重操作,而unionall则直接将两个结果集合并、不执行去重。执行去重会......
  • GaussDB 客户端工具--gsql常见问题处理
    GaussDB-常见问题处理连接性能问题开启log_hostname,但是配置错误的DNS导致的连接性能问题。连接数据库,通过“showlog_hostname”语句,检查数据库中是否开启log_hostname参数。如果开启了相关参数,那么数据库内核通过DNS反查客户端所在机器的主机名。如果数据库配置了不正确......
  • Windows 可靠多播传输驱动程序(RMCAST) 是 Windows 操作系统中负责支持和管理可靠多播(Re
    CVE-2025-21307漏洞是Windows可靠多播传输驱动程序(RMCAST)中的远程代码执行漏洞。该漏洞允许未经身份验证的攻击者在受影响的系统上执行任意代码,可能导致系统被完全控制。漏洞描述:该漏洞存在于Windows可靠多播传输驱动程序(RMCAST)中。攻击者可以通过发送特制的请求......
  • WPF冷却塔组件
    1.封装基类ComponentBase.cs继承自UserControl,定义组件中使用的属性和命令publicclassComponentBase:UserControl{privatebool_isSelected;publicboolIsSelected{get{return_isSelected;}set{_isSelecte......
  • 华为GaussDB数据库包括:事务性(OLTP)数据库、分析型(OLAP)数据库和混合负载(HTAP)数据库
    华为GaussDB数据库包括:事务性(OLTP)数据库、分析型(OLAP)数据库和混合负载(HTAP)数据库。这里需要解释下OLTP、OLAP、HTAP之间的区别,这也是数据库最基本的内容。据库系统一般分为两种类型:一种是面向前台应用的,应用比较简单,但是重吞吐和高并发的OLTP类型;一种是重计算的,对大数据集进行统......