当前位置: 首页 > backend >正文

SAP HANA Scale-out 01:表分布

基础信息

节点内存

--查询节点信息
SELECT HOST AS "节点",TO_VARCHAR(VALUE/1024/1024/1024,'0') || 'G' AS "物理内存"
FROM M_HOST_INFORMATION
WHERE KEY = 'mem_phys'

示例

 节点类型

--查询节点类型
SELECT 
HOST
,SERVICE_NAME
,COORDINATOR_TYPE AS "节点类型"
FROM M_SERVICES
WHERE ACTIVE_STATUS = 'YES'
AND SERVICE_NAME IN ('nameserver','indexserver')

示例

系统拓扑

--查询系统工作组
SELECTHOST,WORKER_CONFIG_GROUPS AS "配置工作组",WORKER_ACTUAL_GROUPS AS "实际工作组"
FROM M_LANDSCAPE_HOST_CONFIGURATION
WHERE HOST_ACTIVE = 'YES' AND HOST_STATUS = 'OK'

示例

--查询卷
SELECT * FROM M_VOLUMES
--查询卷大小
SELECT * FROM M_VOLUME_SIZES

 表分组 

表分组结构

Column

Description

SCHEMA_NAME

The schema name.

TABLE_NAME

表名

GROUP_NAME

组名

GROUP_TYPE

组类型,BW内预定的类型有: sap.bw.cube, sap.bw.dso, sap.bw.psa and so on.

SUBTYPE

The subtype. This is required for some group types, for example in SAP BW:

  • a table belonging to an InfoCube (group type sap.bw.cube) can be a fact table (subtype FACT_IMO) or a dimension table (subtype DIM)
  • a table belonging to a DataStore Object (group type sap.bw.dso) can be an active table (subtype ACTIVE), an activation queue (subtype QUEUE), or a Changelog (subtype CHANGE_LOG)

IS_GROUP_LEAD

Determines the leading table within a group. If none is set, the largest, partitioned, non-replicated column store table is used as leading table.

配置表分组

--建表时指定
CREATE COLUMN TABLE ZFIGL00 (A INT) 
GROUP NAME ZFIGL
GROUP TYPE GP_T1
GROUP SUBTYPE ST_01
;
-后期修改
ALTER TABLE ZFIGL00 SET GROUP NAME "GP_T2";

示例

Table Name

Group Type (GROUP_TYPE)

Subtype (SUBTYPE)

Group Name (GROUP_NAME)

/BIC/AZFIGL00

sap.bw.dso

ACTIVE

ZFIGL

/BIC/AZFIGL40

sap.bw.dso

QUEUE

ZFIGL

/BIC/B0000197000

sap.bw.dso

CHANGE_LOG

ZFIGL

查询表分组

--查询数据表的分组信息
SELECTSCHEMA_NAME --,TABLE_NAME --表名,GROUP_TYPE --组类型,SUBTYPE --子组,GROUP_NAME --组名,IS_GROUP_LEAD --是否组内主表
FROM SYS.TABLE_GROUPS
WHERE TABLE_NAME LIKE '%%'

位置分布

位置信息

位置可以使用系统预定义位置、用户自定义工作组、用户自定义位置。

系统预定义位置

Location

Description

default

'default' is the name of a worker group and it used as the default location for hosts if no other locations are defined. This value can be seen in the WORKER_CONFIG_GROUPS field in system view M_LANDSCAPE_HOST_CONFIGURATION.

master

This is the master location node. The value 'MASTER' is set as coordinator_type for the indexserver in system view M_SERVICES.

slave

Other pre-defined locations are slaves, that is, any coordinator_type value for the indexserver in system view M_SERVICES which is not MASTER.

all

The 'all' location includes both masters and slaves.

用户自定义工作组

--配置工作组
call SYS.UPDATE_LANDSCAPE_CONFIGURATION( 'SET WORKERGROUPS','<hostname>','<name1> <name2> <name3>' )
--查询工作组
call SYS.UPDATE_LANDSCAPE_CONFIGURATION( 'GET WORKERGROUPS','<hostname>')
--工作组
SELECT HOST --主机,WORKER_CONFIG_GROUPS --配置的工作组,WORKER_ACTUAL_GROUPS --实际工作组
FROM M_LANDSCAPE_HOST_CONFIGURATION

用户自定义位置

--自定义位置MyLocation 
ALTER SYSTEM ALTER TABLE PLACEMENT LOCATION MyLocation SET (INCLUDE => '2,3',
EXCLUDE => 'SLAVE');
--调整自定义位置MyLocation 
ALTER SYSTEM ALTER TABLE PLACEMENT LOCATION MyLocation SET (INCLUDE => '2,3',
EXCLUDE => '');
--删除自定义位置
ALTER SYSTEM ALTER TABLE PLACEMENT LOCATION MyLocation UNSET;

位置分布规则 

--位置分布表
SELECTLOCATION_NAME --位置名称,INCLUDE --包含的位置,EXCLUDE --排除的位置
FROM SYS.TABLE_PLACEMENT_LOCATIONS

默认表数据如下:

LOCATION_NAME

INCLUDE

EXCLUDE

ALL

WORKER_DT

SLAVE

WORKER_DT

MY_GROUP

WORKER_DT, MASTER

OLTP_PROCESSOR

2,3

myLocation

5

Note that the worker group worker_dt is a special worker group required for handling warm data in the extension node (see section on Extension Node and following example).

位置与卷对照关系

New locations and volume assignments are only effective after the next reconfiguration of the indexserver,当前有效的对照关系在表M_TABLE_PLACEMENT_LOCATIONS

--查看当前有效的位置与卷的对照关系
SELECTLOCATION_NAME --组名,SYSTEM_DEFINED_VOLUME_IDS --,INCLUDE --,EXCLUDE --EFFECTIVE_VOLUME_IDS --有效的卷ID
FROM M_TABLE_PLACEMENT_LOCATIONS

示例数据

LOCATION_NAMESYSTEM_DEFINED_VOLUME_IDSINCLUDEEXCLUDEEFFECTIVE_VOLUME_IDS
all3,4,5,63,4,5,6
coordinator33
default3,4,5,63,4,5,6
workerallcoordinator4,5,6

表分布规则

配置【表分布规则】

可以按表分组内的字段值配置表分布

--配置表分布规则
ALTER SYSTEM ALTER TABLE PLACEMENT (
SCHEMA_NAME => 'MY_APPLICATION') SET (LOCATION=>'all_without_worker_dt');ALTER SYSTEM ALTER TABLE PLACEMENT (
SCHEMA_NAME => 'MY_APPLICATION',GROUP_TYPE=>'WARM_DATA') SET (LOCATION=>'worker_dt');

建表时使用分布规则

--建表时,根据配置的分布规则进行分布
CREATE TABLE "MY_APPLICATION"."TABLE_A" (INT A);
CREATE TABLE "MY_APPLICATION"."TABLE_B" (INT A);
CREATE TABLE "MY_APPLICATION"."TABLE_C" (INT A) GROUP TYPE "WARM_DATA";

分布规则如何应用

按以下内容从上到下,1是最高优先级

查询表的分布规则

SYS.TABLE_PLACEMENT

#

Column

Description

1

SCHEMA_NAME

The schema name (as for table groups).

2

TABLE_NAME

The table name.

3

GROUP_NAME

The group name.

4

GROUP_TYPE

The group type.

5

SUBTYPE

The subtype.

6

MIN_ROWS_FOR_PARTITIONING

Partitioning rule: the number of records that must exist in the table before the number of first-level partitions is increased above 1.

7

INITIAL_PARTITIONS

Partitioning rule: determines the number of initial partitions to create, for example, HASH 1, HASH 3,

经测试只有在表内实际数据大于MIN_ROWS_FOR_PARTITIONING后会生成此数目的分区,而不是刚建表就生成此数目的分区

8

REPARTITIONING_THRESHOLD

Partitioning rule: if the row count exceeds this value then further split iterations are considered.

9

DYNAMIC_RANGE_THRESHOLD

Applies to tables that use the dynamic range partitioning feature. Overwrites the system default value defined in indexserver.ini   [partitioning]   dynamic_range_default_threshold (10,000,000) for that specific combination of schema / table / group characteristics.

10

SAME_PARTITION_COUNT

Specifies that all partitions of the tables in a group will contain the same number of partitions.

Globally maintained in global.ini   [table_placement]   same_num_partitions but in case of several applications with deviating settings, it can be maintained on a more granular level.

11

LOCATION

Location rule: master, slave, all (see following topic on Locations).

12

PERSISTENT MEMORY

Whether or not the data is loaded in persistent memory.

13

PAGE LOADABLE

Whether or not the data is page loadable.

14

NUMA_NODE_INDEXES

The allowed NUMA nodes.

15

REPLICA COUNT

The required number of replicas.

16

REPLICA TYPE

The replication type. The default type is ASYNCHRONOUS.

示例

查询分布规则匹配的位置

根据分布规则匹配到的分布位置

SELECT
*
FROM M_EFFECTIVE_TABLE_PLACEMENT

表重分布

使用以下工具进行表重分布

  • SAP HANA Cockpit

  • SQL Console

  • SAP HANA Studio (deprecated)

表的实际分布

--表的逻辑分布:M_TABLE_LOCATIONS
SELECT * FROM  M_TABLE_LOCATIONS
--表的物理分布:M_TABLE_PERSISTENCE_LOCATIONS
SELECT * FROM M_TABLE_PERSISTENCE_LOCATIONS

http://www.xdnf.cn/news/20030.html

相关文章:

  • Vue.js 面试题集合
  • 钉钉 AI 深度赋能制造业 LTC 全流程:以钉钉宜搭、Teambition 为例
  • 【C++】计算地球上两个地理坐标点之间的距离和航向角
  • 期货市场上证50期权沪深300期权中证500期权那个好?
  • git命令行打patch
  • 支付域——支付与交易概念
  • 龙虎榜——20250904
  • 深度剖析:智能驾驶到底给2025带来了什么
  • 用服务器搭 “私人 AI 助手”:不用联网也能用,支持语音对话 / 文档总结(教程)
  • Hoppscotch:开源轻量API测试工具,秒启动高效解决临时接口测试需求
  • git基础命令 git基础操作
  • PyTorch DDP 随机卡死复盘
  • < 自用文 OS 有关 > (续)发现正在被攻击 后的自救 Fail2ban + IPset + UFW 工作流程详解
  • 十四、STM32-----低功耗
  • 【前端教程】JavaScript DOM 操作案例解析与代码优化
  • 不用服务器也能监控网络:MyIP+cpolar让中小企业告别昂贵方案
  • 【全网最全】《2025国赛/高教杯》C题 思路+代码python和matlab+文献 一到四问 退火算法+遗传算法 NIPT的时点选择与胎儿的异常判定
  • Qt 系统相关 - 1
  • 大整数乘法实现日志:从查表法到逐位运算
  • 基于深度掩码的动态模糊处理
  • 《Html泛型魔法学院:用霍格沃茨风格网页教授集合框架》
  • SpringBoot 集成 MyBatis-Plus 的使用指南
  • 学习PaddlePaddle--环境配置-Windows 11 + RTX 4060
  • 优质技术博客分享(第1期)
  • Beautiful.ai:AI辅助PPT工具高效搞定排版,告别熬夜做汇报烦恼
  • maven settings.xml文件的各个模块、含义以及它们之间的联系
  • 阿瓦隆 A1146 Pro 63T:性能与设计详解,探索区块链挖矿新高度
  • 【网工基础】20+常用网络协议介绍
  • 水下管道巡检机器人结构设cad+三维图+设计说明书
  • 2508C++,skia动画