一文带你看懂SAP-HANA的基本架构与原理

注:本篇主要对SAP HANA做了总结与论述,如有错误欢迎读者提出并补充

创作不易,希望大家一键三连支持!!!♥♥♥

创作不易,希望大家一键三连支持!!!♥♥♥

创作不易,希望大家一键三连支持!!!♥♥♥

目录

  • 一. 背景引入
    • 1.1 硬件与数据库系统
    • 1.2 行业现状
  • 二. SAP HANA应用架构
    • 2.1 HANA架构图
    • 2.2 行式存储与列式存储-内存地址
      • 2.2.1 列式存储数据字典压缩---案例
      • 2.2.2 行式存储与列式存储的对比
    • 2.3 HANA列式存储的特点
      • 2.3.1 加载状态
      • 2.3.2 主存储(Main)+增量存储(Delta)
      • 2.3.3 增量融合(Delta Merge)
  • 三. HANA持久层与HANA重启
    • 3.1 HANA持久层
    • 3.2 HANA重启

一. 背景引入

1.1 硬件与数据库系统

请添加图片描述

传统数据库系统将数据存储在磁盘(Disk)中,磁盘I/O次数多,效率低。

随着多核处理器的出现,现代数据库系统将数据存储在了内存(Memory)中,降低了磁盘I/O,但同时引入了处理器缓存的新问题。

现代化硬件上的理想数据库系统:
(1)内存式数据库,减少I/O.
(2)缓存优化的内存结构,连续访问数据临近存储.(CPU在未命中和等待状态下的优化)
(3)支持并行执行,利用多处理器的优势。

1.2 行业现状

①企业资源计划系统(ERP)需要处理混合工作量
·OLAP:创建销售订单、进货出货凭证、发票等 →写优化
·OLTP:运营月度报告、可承诺量、库存量分析等 →读优化

②OLAP+OLTP系统因性能的顾虑而分离
·不便:
(1)OLAP数据并非最新数据,只是数据预先处理后的子集.
(2)需要ETL工具来同步两个系统,系统冗余,程序复杂.

③开发愿景
·使用现代硬件和数据库系统将OLTP和OLAP数据结合在一起,创建一个单一数据源,实现实时分析,并简化应用程序和数据库结构。

二. SAP HANA应用架构

2.1 HANA架构图

SAP HANA是一个包括了硬件、数据库和解决方案的结合体。

请添加图片描述

2.2 行式存储与列式存储-内存地址

请添加图片描述

行式存储每一行为一个基本存储单位。

列式存储每一列为一个基本存储单位。

列式存储的优点:压缩

基于企业数据特点:
(1)列的使用相对集中
(2)列中的值基数不高;
列式存储的结构支持高效的数据压缩:
(1)节省空间
(2)提升速度:内存←传输→CPU缓存;字典编码,整数值比较快于字符值比较;加快扫描和聚合请添加图片描述数据库中真正存储的是:数字+字典+对应关系。

2.2.1 列式存储数据字典压缩—案例

请添加图片描述
HANA列式存储通过字典压缩的流程:

(1)HANA基于原数据表对主键列进行排序并计算唯一值,由此提取出一个数据字典

(2)对每一行的数据生成行ID与其对应值ID的对应表(验证了前述所说:数据库中真正存储的是数字、字典、对应关系)

(3)同时,HANA还会对原数据表的主键建立倒排索引,该索引是对(2)中对应表的一次再次索引,可以找到每个值ID所出现在的行数

对查询语句使用倒排索引优化前后的对比:

请添加图片描述

在找到所有行号之后,基于流派字典(值ID和值的对应表)即找到所要查询的行记录。

请添加图片描述

2.2.2 行式存储与列式存储的对比

请添加图片描述

请添加图片描述

常见问题:
1.HANA只是一个列式数据库么?
不是的,HANA中既有行存储,也有列存储

2.HANA中的列存储是否还可以使用索引?
是的,HANA的列式存储对所有主键自动建立索引(倒排索引),对于经常访问到的非主键列也是可以建立索引的。
3.内存式数据库是否仍然依赖于硬盘?
是的,依旧需要硬盘支持备份与恢复

2.3 HANA列式存储的特点

2.3.1 加载状态

(1)未加载: 数据仍在磁盘中

(2)部分加载:由于查询条件而载入内存

(3)全部加载:数据全部在内存中

注:可以通过对表的加载状态设置来控制哪些表置于内存中(全部加载)、哪些表置于磁盘中(未加载)

2.3.2 主存储(Main)+增量存储(Delta)

(1)数据并不直接修改而是插入新数据:并行化,减少锁,多版本控制

(2)主存储对值ID进一步压缩,对读取、计算性能优化

(3)增量存储不排序、不对值ID进一步压缩,占空间较大

2.3.3 增量融合(Delta Merge)

(1)额外的CPU、内存消耗

(2)可选优化方案:内存内融合、分区

增量融合过程:

(1)融合前:

请添加图片描述

Read:主存储Main1、增量存储Delta1

Write:增量存储Delta1

(2)融合中:

请添加图片描述

拷贝出新的主存储,将主存储Main1中的数据解压缩并和增量存储Delta1已经提交的事务来进行重新解压、排序、编码、压缩来生成新的主存储Main2,同时在增量融合过程中,所有Write操作会连同增量存储Delta1未提交的事务一起融合到增量存储Delta2中.

Read:主存储Main1、增量存储Delta1、增量存储Delta2

Write:增量存储Delta2

(3)融合后:

请添加图片描述

增量融合后,原有的主存储Main1增量存储Delta1被舍弃,留下最新的主存储Main2增量存储Delta2.

Read:主存储Main2、增量存储Delta2

Write:增量存储Delta2

三. HANA持久层与HANA重启

3.1 HANA持久层

HANA持久层和传统数据库持久层类似。

请添加图片描述

3.2 HANA重启

请添加图片描述

每5min写一个Savepoint,将更改后的数据和日志冲刷到磁盘中,并且对已提交的事务,HANA会通过SSD硬盘读写的方式在Log Volume记录Redo日志,一旦发生断电,系统就会自动读取最近的一个Savepoint,之后再通过Redo日志即可使断电恢复后系统回到一个稳定的状态.

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

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

相关文章

AES Android IOS H5 加密方案

前景: 1、本项目原有功能RSA客户端对敏感信息进行加密 2、本次漏洞说是服务端返回值有敏感信息,需要密文返回 方案: 本次方案不算完美,还是有被劫持篡改的风险,但基本https证书认证加持,风险相对较小 …

Camera XTS 处理笔记

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 常用测试步骤(下面均以CTS为例) 打开终端,进入 cts 包 tools目录下执行 ./cts-tradefed 进入cts测试 :~/XTS/CTS/14…

永磁同步电机高性能控制算法(14)—— 有源阻尼电流环

1.前言 在之前的之后中已经发过一篇复矢量电流环和我们平时用的比较多的前馈补偿的电流环的对比,感觉复矢量电流环的效果还是挺明显的。 https://zhuanlan.zhihu.com/p/682880365https://zhuanlan.zhihu.com/p/682880365 当时在看文献的时候,复矢量电…

AI算法17-贝叶斯岭回归算法Bayesian Ridge Regression | BRR

贝叶斯岭回归算法简介 贝叶斯岭回归(Bayesian Ridge Regression)是一种回归分析方法,它结合了岭回归(Ridge Regression)的正则化特性和贝叶斯统计的推断能力。这种方法在处理具有大量特征的数据集时特别有用&#xff…

13、Shell自动化运维编程基础

弋.目录 RHCE板块一、为什么学习和使用Shell编程二、Shell是什么1、shell起源2、查看当前系统支持的shell3、查看当前系统默认shell4、Shell 概念 三、Shell 程序设计语言1、Shell 也是一种脚本语言2、用途 四、如何学好shell1、熟练掌握shell编程基础知识2、建议 五、Shell脚本…

英伟达股票1拆10后,现在再买入是否为时已晚?

英伟达股票1拆10后,现在再买入是否为时已晚? 英伟达的股价在过去18个月里已经上涨了近800% 人工智能领域无疑是当下最受投资者关注的焦点之一,而这一领域的佼佼者--英伟达,也被一些华尔街投资机构和看好半导体、数据中心行业的专业…

SoulApp创始人张璐团队以AI驱动社交进化,平台社交玩法大变革

在科技飞速发展的今天,人工智能正逐步渗透到社交媒体的各个环节,赋能全链路社交体验。AI的引入不仅提升了内容推荐的精准度,使用户能够更快速地发现感兴趣的内容,还能通过用户行为预测,帮助平台更好地理解和满足用户需求。此外,AI驱动的虚拟助手和聊天机器人也正在改变用户互动…

NVIDIA RTX 50系显卡接口全变,功耗爆炸超500W

七月伊始,手机圈就开始打的不可开交了。 例如真我 GT6、IQOO Neo 9S、以及蓄势待发的红米 K70 Ultra,都想在这个暑假向莘莘学子发出最诚挚的「邀请函」。 反观电脑圈这边,不能说一潭死水,只能说毫无波澜。 不过该来的还是要来的&…

Redis的使用(四)常见使用场景-缓存使用技巧

1.绪论 redis本质上就是一个缓存框架,所以我们需要研究如何使用redis来缓存数据,并且如何解决缓存中的常见问题,缓存穿透,缓存击穿,缓存雪崩,以及如何来解决缓存一致性问题。 2.缓存的优缺点 2.1 缓存的…

睿考网:造价员和造价工程师是一个意思吗?

在工程建设领域中,经常会有人问:“造价员和造价工程师是一样的吗?”这两者代表的是两种独立的职业身份,职责和资格要求有明显的差异,是两种完全不同的考试。 造价工程师是一种具有专业资质的人员,通过国家统一的执业…

『 Linux 』命名管道

文章目录 命名管道与匿名管道命名管道特点命名管道的理解命名管道实现两个毫无关联的进程间通信 命名管道与匿名管道 命名管道是管道的一种,数据流向为单向故被称为管道; 与匿名管道相同属于一种内存级文件; 区别如下: 名字 匿名管道 没有名字,只存在于内存当中(类似内核缓冲…

【软件测试】编写测试用例篇

前面部分主要是编写测试用例的方法和方向,后面一部分是编写出具体的测试用例 目录 什么是测试用例 1.设计测试用例的万能公式 1.1.从思维出发 1.2.万能公式 1.3.弱网测试 1.4.安装与卸载测试 2.设计测试用例的方法 2.1.基于需求的设计方法 2.2.等价类 2.3…

测试开发面经总结(三)

TCP三次握手 TCP 是面向连接的协议,所以使用 TCP 前必须先建立连接,而建立连接是通过三次握手来进行的。 一开始,客户端和服务端都处于 CLOSE 状态。先是服务端主动监听某个端口,处于 LISTEN 状态 客户端会随机初始化序号&…

原来,BI数据分析也是有模板的

在当今数据驱动的时代,商业智能(BI)数据分析已经成为企业决策的重要工具。然而,很多人可能并不了解,BI数据分析并非从零开始,而是可以依托现成的模板和解决方案来快速搭建和实施的。以奥威BI方案为例&#…

React+TS前台项目实战(二十九)-- 首页构建之性能优化实现首页Echarts模块数据渲染

文章目录 前言Echart模块源码功能分析数据渲染一、HashRateEchart统计图1. 功能分析2. 代码详细注释 二、BlockTimeChart统计图1. 功能分析2. 代码详细注释 三、使用方式四. 数据渲染后效果如下 总结 前言 还记得之前我们创建的 高性能可配置Echarts组件 吗?今天我…

redis 配置文件参数详解

1、redis.conf 通用类 Redis的配置文件是一个文本文件,通常名为redis.conf。以下是一些常见配置项的解释和示例: 1、bind 127.0.0.1:绑定的主机地址 2、 protected-mode ,默认是开启状态,一般不需要修改,可以保证服务…

唯众物联网综合实训台 物联网实验室建设方案

物联网综合实训装置 物联网工程应用综合实训台是我公司针对职业院校物联网行业综合技能型人才培养,综合运用传感器技术、RFID技术、接口控制技术、无线传感网技术、Android应用开发等,配合实训台上的433M无线通信设备、ZigBee节点、射频设备、控制设备、…

智能家居产品公司网站源码,自适应布局设计,带完整演示数据

适合各类智能家居电子产品使用的网站源码,深色大气设计,自适应布局设计,pc手机均可完美适配,带完整演示数据。 独家原创资源。源码是asp开发的,数据库是access,主流的虚拟主机空间都支持asp,直…

第三届经济、智慧金融与当代贸易国际学术会议(ESFCT2024)

【五大高校联合支持】第三届经济、智慧金融与当代贸易国际学术会议(ESFCT 2024) 2024 3rd International Conference on Economics, Smart Finance and Contemporary Trade 文章投稿均可免费参会 高录用快见刊【最快会后1-2个月左右见刊】【最快刊后1个月内上知网&谷歌学…

【人工智能】高级搜索技术(模拟退火搜索算法和遗传算法解决旅行商问题)

目录 一、旅行商问题 1. 需求分析 2. 数据结构、功能模块设计与说明 2.1 数据结构 (1)模拟退火搜索算法 (2)遗传算法 2.2 功能模块设计 (1)模拟退火搜索算法 (2)遗传算法 …