像学Oracle一样学习SAP HANA体系架构

2022-03-07 00:00:00 数据 语句 数据库 会话 服务器
SAP HANA DataBase核心有五部分组成: Index Server, Name Server, Statistics Server, Preprocessor Server and XS Engine.

另外还包括daemon,scriptServer,appserver, remotesupportdaemon,R 和sapstartsrv.

您可以同通过SAP HANA Studio进行查看:SAP HANA studio--->Administration --> Landscape 查看SAP HANA启动的服务。

daemon进程:主要负责的是启动其他服务器在正确的顺序。

scriptServer:

appserver:

remotesupportdaemon:

sapstartsrv:SAP HANA Studio通过sapstartsrv连接去收集HDB 数据库的信息。查看sapstartsrv进程有没启动:ps -ef | grep sapstartsrv

lsof -i -n -P | grep 50013  ,通过HDB info查看HDB信息

五个核心服务的分工是不同的。

索引服务器(index server): 内存数据库的核心组件,包含关系数据库引擎,包括实际的数据存储(内存数据存储)和数据处理的引擎等等。它还协调和使用的所有其他服务器。下图是索引服务器的体系机构:

 


汇总统计服务器(Statistics Server):主要收集数据库有关信息状态,性能监控和资源消耗从所有其他服务器组件。另外从SAP HANA studio我们可以访问统计服务器获得各种统计信息。

DBA定期的管理任务,查看到的系统信息都是由Statistics Server汇总产生的。

默认情况下,在系统启动时Statistics Server在主域名服务器主机上自动启动。Statistics Server在内核使用的SQL语句进行收集资料从所有index server。收集的系统重要信息

可以从SAP HANA 的 Administration Editor---> Overview tab进行查看,需要查看详细的告警信息可以通过Alerts tab进行查看。Statistics Server会定时刷新这些信息,以保证

总是看到的都是新的汇总信息。

Statistics Server收集汇总系统的表都保存在schema: _SYS_STATISTICS


 

名称服务器(Name Server):保存SAP HANA DB 分布式部署的拓扑结构的相关信息。在一个分布式系统中SAP HANA数据库实例存在在不同主机上,name server可以辨别的出SAP HANA相关的组件是运行在那台服务器和所加载的数据是从哪一台服务器中获取的。名称服务器知道哪个表或分区表位于哪个索引服务器。总之,域名是意识到数据的位置

查看名称服务器的拓扑结构可以通过M_TOPOLOGY_TREE查看。

预处理服务器(Preprocessor Server):由于SAP HANA加入了对文本数据的特殊处理,而Preprocessor Server主要就是用于分析文本数据和提取信息用于进行优化文本搜索功能,


XS引擎(XS Engine): 是一个可选的组件,用XS引擎客户端可以通过HTTP连接到SAP HANA数据库获取数据·。

下面主要讲解下index server: SAP HANA DB的核心:负责内存的分配,事物管理,metadata管理,权限认证,关系型数据库引擎,行存储,列存储,多版本并发控制(MVCC Multi-Version Concurrency Control),日志文件\控制文件的管理等等。

SAP HANA Index Server Architecture:
SAP HANA Index Server体系架构图:                                              

连接和会话管理(Connection and Session Management)   主要负责创建和管理会话和管理连接数据库的客户端,用于与用户进行交互。一旦建立一个会话,index server会分配一块专用会话内存,客户端可以通过SQL 语句与SAP HANA数据库进行交互。

每个会话都会存放有相应会话信息,有一组参数数据,如:auto-commit,当前事务隔离级别等,在创建会话进行用户权限认证可以由SAP HANA数据库本身进行验证(登录的用户名和密码),也可以通过委托给外部第三方认证机构进行验证如LDAP directory。     

通过HANA 的监控视图M_CONNECTIONS可以得到连接的详细信息,如连接类型,资源使用情况。MEMORY_SIZE_PER_CONNECTION保存的一个连接占用的内存大小。

 请求处理和执行控制(Request Processing And Execution Control) 对客户端请求进行分析和执行的一套组件。请求解析器负责分析客户端请求和调度它到相应的组件去处理。执行层充当控制器调用不同的引擎和路线的中间结果去下一个执行步骤。例如,事务控制语句被转发到事务管理器。数据定义语句派遣的元数据管理和对象调用转发到对象存储。数据操作语句被转发给优化器创造一个优化的执行计划,随后被转发到执行层。

SQL解析器(SQL Parser):检查SQL语句的语法和语义,生成逻辑的执行计划,标准的SQL语句可以直接被HDB引擎处理运行。

 Sqlscript: SAP HANA数据库有自己的脚本语言叫Sqlscript,Sqlscript是一个SQL语句扩展的集合,目的是为了优化SQL语句,增强SQL语句的并行性。Sqlscript操作数据库表采用的SQL查询处理一种对数据库无副作用的功能。目的是把密集型数据的应用逻辑卸载到数据库中,在数据库进行计算。

多维表达式(Multidimensional Expressions(MDX)):是一个语言,用来对存储在联机事务处理数据立方体中的多维数据进行查询和操作处理。

        3.     事务管理(Transaction Manager):

        4.    元数据管理(Metadata Manager) :

        5.    权限管理(Authorization Manager) :

        6.    数据库优化器(Database Optimizer):

        7.    数据库执行器(Database Executor):

        8.    行存储(Row Store):

        9.    列存储(Column Store):

        10.持久层(Persistence Layer):
来源 https://mp.weixin.qq.com/s/6lCFnLEbvp_k4yPvRfzwfQ
 

相关文章