【SAP Hana】SAP S/4 HANA 数据库底表查询及运维管理

SAP S/4 HANA 数据库底表查询及运维管理

  • 1、SAP S/4 HANA 简介
    • 1.1 S4与ECC的区别
    • 1.2 SAP S4 Hana数据库(以Q系统为例)
    • 1.3 访问权限设定
  • 2、SAP HANA 连接工具
    • 2.1 工具
    • 2.2 连接服务器
  • 3、SAP S4 底表查询实例
  • 4、Hana脚本注意事项
  • 5、SAP HANA数据库监控

1、SAP S/4 HANA 简介

1.1 S4与ECC的区别

SAP ECC时期支持常规主流的关系型数据库,如MSSQL、ORACLE、IBM DB2等。
SAP S4 仅支持在HANA数据库上运行。
SAP基于HANA的内存计算、列式存储,以及并行计算特性,对SAP数据底表做了大量的改造优化,具体参考相关资料。

参考:SAP S/4 HANA 与R3(ECC) 的区别

1.2 SAP S4 Hana数据库(以Q系统为例)

目前版本为HANA2.0,默认以多租户形式部署,
一般SAP S4 的数据库对应为设定租户下的 SAPHANADB SCHEMA,如图所示:
【SAP Hana】SAP S/4 HANA 数据库底表查询及运维管理_第1张图片

1.3 访问权限设定

不建议用系统账号访问数据库,需要由数据库DBA另外设置访问账号。
这里新建了YKREADER账号,授权对SAPHANADB、YKDB只读访问。

2、SAP HANA 连接工具

2.1 工具

推荐使用官方管理工具SAP HANA Studio,来管理、访问Hana数据库,进行数据开发。
【SAP Hana】SAP S/4 HANA 数据库底表查询及运维管理_第2张图片
也可以通过Eclipse,下载SAP相应组件来访问 Hana数据库。
也可以使用第三方工具,如dbeaver来访问Hana数据库。

2.2 连接服务器

(1)打开Hana Studio主界面,切换如下视图 :
查询用:SAP HANA Administration Console (default)
开发用:SAP HANA Development【SAP Hana】SAP S/4 HANA 数据库底表查询及运维管理_第3张图片
(2)添加Hana服务器
【SAP Hana】SAP S/4 HANA 数据库底表查询及运维管理_第4张图片
【SAP Hana】SAP S/4 HANA 数据库底表查询及运维管理_第5张图片
【SAP Hana】SAP S/4 HANA 数据库底表查询及运维管理_第6张图片
(2)添加成功,如下图所示
【SAP Hana】SAP S/4 HANA 数据库底表查询及运维管理_第7张图片
【SAP Hana】SAP S/4 HANA 数据库底表查询及运维管理_第8张图片
【SAP Hana】SAP S/4 HANA 数据库底表查询及运维管理_第9张图片
SAP S4的数据就是在SAPHANADB里的。

3、SAP S4 底表查询实例

供应商主数据查询 LFA1
【SAP Hana】SAP S/4 HANA 数据库底表查询及运维管理_第10张图片
【SAP Hana】SAP S/4 HANA 数据库底表查询及运维管理_第11张图片

4、Hana脚本注意事项

(1)集团号
在SAP应用层访问数据(如ABAP OPENSQL),集团号由系统自动补上。
但是在执行Hana脚本时,所有表必须要明确指定集团号,关联查询时也必须加上集团号关联条件。
否则会显示该实例下所有集团的数据,多表关联时会产生大量重复数据。

以下以RFC ZFMMM_044(供应商主数据读取RFC接口OA->SAP),返回的LFA1结果为例:
【SAP Hana】SAP S/4 HANA 数据库底表查询及运维管理_第12张图片
对应的Hana Script如下:

SELECT
   a.lifnr, b.bu_group, a.ktokk, a.name1, a.name2, a.stenr, a.loevm,
   a.stras, a.pstlz, a.land1, a.regio, a.ort01, a.telf1, a.telfx,
   a.telf2, a.werks, a.sperr, a.sperm, c.sort1, c.sort2, c.title,
   c.street, c.city1, d.smtp_addr
FROM saphanadb.lfa1 AS a
INNER JOIN saphanadb.but000 AS b ON a.lifnr = b.partner and b.CLIENT = a.mandt
LEFT JOIN saphanadb.adrc AS c ON a.adrnr = c.addrnumber AND c.date_to = '99991231' and c.CLIENT = a.mandt
LEFT JOIN saphanadb.adr6 AS d ON a.adrnr = d.addrnumber AND d.date_from = '00010101' and d.CLIENT = a.mandt
WHERE a.loevm <> 'X' and a.sperr <> 'X' and a.sperm <> 'X'
    and a.mandt in (710);

备注:S4中集团号在不同底表中有不同,有的是mandt,有的是client,还有其它的,可以通过se11查看表关键字确认。

(2)S4 替换对象/代理对象
首先来看以下几种情况:
A.底表有记录,但是数据不一致,如MARD
【SAP Hana】SAP S/4 HANA 数据库底表查询及运维管理_第13张图片
B.底表无数据,如MSEG
【SAP Hana】SAP S/4 HANA 数据库底表查询及运维管理_第14张图片
解决方法:通过SE16N来查看表对应替代对象,通过替代对象来进行底表查询
【SAP Hana】SAP S/4 HANA 数据库底表查询及运维管理_第15张图片
内部原理:内部转换,针对S4改造优化的表,创建了相应的兼容视图
【SAP Hana】SAP S/4 HANA 数据库底表查询及运维管理_第16张图片
说明:由于S4对底表进行了大量的改造优化,替换对象/代理对象是为了保持SAP应用层自定义程序的可用性而引入的。因此,如果自定义程序从MSEG中进行选择,它仍将显示我们在SE16N中看到的内容。

5、SAP HANA数据库监控

DBA可以通过SYSTEM账号,对HANA数据库进行监控管理。
【SAP Hana】SAP S/4 HANA 数据库底表查询及运维管理_第17张图片
【SAP Hana】SAP S/4 HANA 数据库底表查询及运维管理_第18张图片

你可能感兴趣的:(SAP,Hana,数据库,运维,服务器)