SAP HANA Archi结构:数据库概述

⚡ 智能摘要

SAP HANA Archi架构、景观和规模构成了基于 SUSE Linux 构建的内存数据平台的基础, C++本文解释了索引服务器、存储引擎、行存储和列存储、增量合并以及硬件容量规划方法。

  • 🧠 核心平台: SAP HANA 是一个主内存数据库,可在单个引擎上处理 OLAP 和 OLTP 工作负载。
  • ????️ 服务器组件: 索引服务器、预处理器服务器、名称服务器、统计服务器和 XS 服务器协调查询、元数据和 HTTP 服务。
  • 📊 存储模型: 行式存储类似于传统的关系数据库管理系统;列式存储支持压缩、快速读取和分析。
  • 🔄 Delta 合并: 将数据写入增量存储(L1、L2),并按计划或按需合并到主存储中。
  • 📏 驱动单元尺寸: 内存是主要的尺寸决定因素,其次是 CPU;磁盘支持持久化和日志记录。
  • 🛠️ 尺寸确定方法: 使用 ABAP 报表、数据库脚本或 SAP 快速评估工具,用于估算硬件需求。

SAP HANA Archi建筑、景观、尺寸

什么是 SAP HANA数据库?

SAP HANA 是一个以主内存为中心的数据管理平台。该数据库运行在 SUSE Linux Enterprise Server (SLES) 上,并且 Red Hat Enterprise Linux (RHEL)是用以下语言编写的: C++它可以跨多台机器横向扩展,以应对非常大的工作负载。

主要优点 SAP 哈娜:

  • 由于所有数据都加载到内存中,从而消除了关键路径上的缓慢磁盘 I/O,因此查询性能极快。
  • 在同一数据库上混合使用 OLAP(联机分析处理)和 OLTP(联机事务处理),简化数据环境。

SAP HANA 数据库由一组内存处理引擎构建而成。计算引擎是主引擎,它与其他引擎交互,例如关系引擎(行存储和列存储)、OLAP 引擎、文本引擎和图引擎。关系表存储在行存储或列存储中,而其他引擎则在内存可用时处理文本和图数据。

SAP HANA Archi质地

列式存储中的数据采用字典编码、游程编码、稀疏编码、簇编码和间接编码等技术进行压缩。当达到主内存限制时,未使用的数据库对象(表、视图等)会自动卸载到磁盘,并在再次请求时重新加载。

管理员还可以通过右键单击表格来手动加载或卸载单个表格。 SAP HANA 工作室 并选择 卸下 or 载荷.

SAP HANA 服务器由以下部分组成:

  1. 索引服务器
  2. 预处理服务器
  3. 域名服务器
  4. 统计服务器
  5. XS 引擎

SAP HANA架构图,展示了核心服务器组件

1. SAP HANA 索引服务器

索引服务器是主要 SAP HANA数据库组件:

  • 它是……的核心 SAP HANA数据库引擎。
  • 它包含实际的数据存储库和处理数据的引擎。
  • 它执行传入的 SQL 和 MDX 语句。

索引服务器架构如下所示。

SAP HANA索引服务器内部架构

SAP HANA 索引服务器概述

  • 会话和事务管理器: 会话组件管理数据库的连接和会话。事务管理器协调和控制所有事务。
  • SQL 和 MDX 处理器: SQL处理器将查询发送到相应的引擎(SQL/SQL脚本/R/计算引擎)。MDX处理器处理多维查询(例如,针对分析视图的查询)。
  • SQL / SQL 脚本 / R / 计算引擎: 对数据执行 SQL、SQL 脚本、R 和计算模型。
  • 库: 维护版本控制 SAP HANA 元数据对象,例如属性视图、分析视图和存储过程。
  • 持久层: 通过将保存点和日志写入磁盘上的数据卷,提供内置的灾难恢复功能。

2. 预处理器服务器

预处理器服务器由文本分析使用。它trac当调用搜索功能时,ts 会根据文本内容准备数据。

3. 名称服务器

名称服务器保存着整个系统环境的信息。在分布式部署中,它 tracks 获取每个运行组件以及跨节点的数据位置,以便将查询路由到正确的服务器。

4. 统计服务器

统计服务器收集以下各项的状态、资源分配、消耗和性能数据: SAP HANA 系统。注意:在 HANA SPS 7 及更高版本中,嵌入式统计服务在索引服务器内部运行,而不是作为独立进程运行。

5. XS 服务器

XS 服务器托管 XS 引擎,外部应用程序和开发人员可以使用该引擎。 SAP 通过 HTTP 协议访问 HANA 数据库。XS Engine 本身充当轻量级 HTTP 服务器,使基于浏览器和 REST 的客户端能够直接与 HANA 通信。

SAP HANA 景观

“HANA”代表 高性能分析设备 它以软硬件结合的平台形式交付。

  • 现代硬件提供的 CPU 核心数、内存和存储带宽远远超过传统数据库服务器的设计用途。
  • SAP HANA 通过 kee 来利用这一点ping 所有工作数据都存储在主内存中,消除了限制传统数据库的磁盘 I/O 瓶颈。

下图总结了…… SAP HANA硬件和软件创新。

SAP HANA硬件和软件创新概述

SAP HANA 支持两种关系数据存储: 行存储 和 列存储.

行存储

行存储的行为类似于传统数据库(Oracle(SQL Server)。主要区别在于所有行都驻留在主内存中。 SAP HANA 将数据存储在磁盘上,而传统数据库则主要将数据存储在磁盘上。

列存储

列式存储以列的形式将数据保存在内存中。列式表存储于此,引擎会在良好的写入性能和优化的读取性能之间取得平衡。下图展示了实现这种平衡的两种结构。

主储罐和三角储罐结构 SAP HANA 列存储

主存

主存储器存储大部分数据。为了节省内存并加快搜索速度,采用了字典编码、聚类编码、稀疏编码和游程编码等压缩方法。

  • 直接在主存储器中修改压缩数据成本很高,因此写入操作不会针对主存储器。
  • 相反,所有更改都会写入一个名为“单独区域”的文件中。 Delta 存放读取操作可以访问主存储或增量存储。

可以使用以下方法手动加载或卸载数据: 加载到内存 和 从内存中卸载 以下列出一些选项。

加载到内存和从内存卸载选项 SAP HANA 工作室

Delta 存放

Delta 此存储针对写入进行了优化,并使用了较轻量的压缩。所有对列式表的未提交更改都保存在此处。当需要将更改合并回主存储时,请运行以下命令: Delta 合并 操作从 SAP HANA 工作室。

Delta 合并选项 SAP HANA 工作室

  • 增量合并会将增量存储中收集的更改移动到主存储中。
  • 合并后,新的主存储内容将持久化到磁盘,并重新计算压缩率。

数据如何流动 Delta 到主存储

Delta 从 L1 到 L2 再到主存储的合并数据流

行式缓冲区 L1-Delta 它位于每个列式表的前面,这就是为什么列式表可以承受高吞吐量写入的原因。

  1. 用户对表执行 UPDATE 或 INSERT 操作。
  2. 数据首先落在 L1 层。Delta (未提交的数据)。
  3. 一旦提交,数据就会移动到面向列的 L2 存储中。Delta 缓冲。
  4. 当 L2-Delta 如果主存储器已满或合并操作完成,则数据写入主存储器。

因此,列式存储既针对写入进行了优化(通过 L1 和 L2 增量缓存),也针对读取进行了优化(通过主存储)。处理完成后,数据由持久层持久化到磁盘。

行式表格示例:

示例行式表格 SAP HANA

同一个逻辑表在磁盘上的存储方式会因存储类型的不同而有所差异。在行存储中,行是连续写入的:

行存储内存布局 SAP HANA

在列存储中,来自同一列的值存储在一起:

列式存储内存布局 SAP HANA

由于列值共享数据类型并且经常重复,因此列布局可以得到非常好的压缩——这是列存储的主要内存优势。

列存储压缩优势 SAP HANA

SAP HANA 大小

容量规划是指确定系统所需的硬件资源(内存、磁盘和 CPU)的过程。 SAP HANA系统。内存是最重要的因素,CPU次之,磁盘则由前两者衍生而来。

在一个 SAP 在 HANA 实施过程中,为业务工作负载选择合适的服务器规模是最关键的任务之一。与传统数据库管理系统 (DBMS) 相比,HANA 的规模调整主要体现在以下三个方面:

  • 主内存: 受元数据以及内存中存储的大量事务和分析数据驱动。
  • CPU: 采用估算而非测量的方式,根据预测查询和负载模式进行估算。
  • 磁盘: 专为数据持久性和日志量而设计,不适用于在线查询数据。

与之前的数据库相比,应用服务器的 CPU 和内存保持不变,因为 HANA 只替换了数据库层。

SAP 提供了几种计算正确尺寸的方法:

  1. 使用 ABAP 报表(事务代码)进行尺寸计算 ST03 数据和报告 /SDF/HDB_SIZING).
  2. 使用数据库脚本对非 ABAP 系统进行容量规划。
  3. 使用尺寸 SAP 快速尺寸 上的工具 SAP 服务市场。

使用快速尺寸计算工具时,需求将以下列格式显示。

SAP HANA Quick Sizer 输出示例

常见问题

SAP HANA 将所有工作数据保存在主内存中,并在同一引擎上同时支持 OLAP 和 OLTP。传统数据库将数据存储在磁盘上,并且通常出于性能考虑而将分析系统和事务系统分开。

对于小型、频繁连接的事务表,请使用行存储。对于大型分析表、聚合表和事实表,请使用列存储,因为压缩和并行扫描可以显著提高读取性能。

SAP HANA Cloud 是一种托管式数据库即服务。 SAP 它负责补丁管理、扩展和基础设施维护,让客户可以专注于数据和应用程序。本地部署的 HANA 可以完全控制硬件、容量规划和性能调优,但需要更多的管理工作。

SAP HANA 内置了预测分析库 (PAL)、自动预测库 (APL) 和用于嵌入的向量引擎支持。模型直接在数据库内部进行训练和评分,无需移动数据,即可在运营数据上实现实时 AI。

是的。 SAP Joule 和第三方 LLM 代理可以通过 HANA 的 SQL、REST 和向量接口进行连接,以检索、汇总和推理业务数据,同时遵守原生授权、脱敏和审计控制。

总结一下这篇文章: