HANA开发指南

建模方面

1、建模方式:图像化建模、SQL建模、CE语言建模 

2、维护:SQL和CE比图形化建模更容易维护和修改

3、性能:图形化和CE会经过系统优化,性能一般优于SQL语言

4、可按需要设置参数、变量、Hierachy、聚合类型等

5、在S4系统里,HANA View可配合CDS视图使用,效果不错

6、计算视图节点有Projection、Join、Union、Rank、Aggregation,其中Rank主要用作按维度排序和取前几行

7、为减少重复工作,建模层次应该遵循基础层、转换层、集市层、报表层等类似于BW模型的规范

8、属性视图类似于BW infoObject的属性、分析视图类似于BW DSO、计算视图类似于BW CUBE

9、建模应该考虑性能,影响性能主要有:层次间传输的数据量、Join操作、Query Result、复合表达式(IF、CASE)和Intermediate results(需要耗费时间写入缓存)

10、CE语言:CE_COLUMN_TABLE、CE_JOIN_VIEW、CE_OLAP_VIEW、CE_CALC_VIEW、CE_JOIN、CE_PROJECTION、CE_CALC、CE_AGGREGATION、CE_UNION、CE_RANK

11、Input Parameter用于参数化或Filter,Variable用于FIlter

SQL和存储过程方面

1、SQL可CREATE或者DELETE Data Type、Function、Procedure

2、Procedure属性READS SQL DATA(只读)、LANGUAGE(指定语言、默认SQLScript)、WITH RESULT VIEW(可直接在SQL中使用Procedure的输出参数)

3、可使用SQL EDITOR或者在Content package中创建

4、可使用控制语句:WHILE、FOR、IF、CASE等 

性能优化方面

1、尽量在底层Filter数据

2、在OLAP和Join Engine执行Join,最好使用Key Column或者Index Column进行Join

3、在聚合前,不要进行计算

4、不通的Engine(Join、OLAP、Calculation)之间使用聚合方式减少数据传输,

5、聚合后执行计算、并尽量避免复合表达式(IF、CASE)

6、使用HAVING、TOP、LIMIT尽量避免输出结果数据量过大

7、Join应该在属性视图或者分析视图执行而不是在计算视图进行

8、Left Join比Inner Join更快

9、不要使用CURSOR,因为无法并行执行

10、避免使用Casting、mixed script

11、使用Visualize Plan 可查看HANA执行的过程和耗时

12、可在HANA中开启SQL Trace监控和分析SQL执行情况

ABAP调用方面

1、可使用第二数据库连接HANA:

SELECT * INTO FROM TABLE CONNECTION  LV_DBCON_NAME

2、可使用NativeSQL:

EXEC SQL ENDEXEC或者CL_SQL_CONNECTION、CL_SQL_STATEMENT、CL_SQL_RESULT_SET

3、功能代码下沉到HANA中计算,而不是在ABAP中计算

4、减少数据传输到应用层

5、使用CDS、AMDP等可在应用层开发

用户和权限管理方面

1、权限分为:OBJECT SQL权限、Package权限、System权限、分析权限

2、OBJECT SQL权限:SELECT、UPDATE、DELETE、CALL

3、Package权限:access packages in the repository

4、System权限:Create or Change Schema、User、Role

5、分析权限:Row-level Authorization View

6、分析权限参考文章:https://www.cnblogs.com/omygod/archive/2013/05/01/3052739.html

7、动态分析权限参考文章:https://archive.sap.com/documents/docs/DOC-65734

集成方面

1、集成方式有SLT、SDA、SDI、Data Service、Vora等

2、和ERP或者Oracle、SQLServer等可以使用SLT

3、和Hadoop集成可以使用SDA、SDI、Vora

4、SDA:虚拟表,SQL直接在对方系统执行

5、SDI:实体表,对方系统的表更新实时同步到HANA中

6、Vora:可以读取,也可以回写,功能强大

SQL语法方面

1、数据类型:DATE(日期) 、TIME(时间) 、SECONDDATE(日期+时间)、 TIMESTAMP(时戳) 、TINYINT、 SMALLINT 、INTEGER 、BIGINT 、DEC( p, s)、SMALLDECIMAL 、REAL 、DOUBLE 、FLOAT( n )、VARCHAR 、NVARCHAR 、ALPHANUM 、SHORTTEXT 、VARBINARY 、BLOB 、CLOB 、NCLOB 、TEXT

2、谓词:= 、!=、 >、 <、 <>、 <=、 >=、 BETWEEN、 IN、 EXISTS、 LIKE、 NULL、 CONTRAINS( select * from T where CONTAINS( (column1,column2,column3), 'cats OR dogz', FUZZY(0.7)) )

3、合并操作UNION、UNION ALL、INTERSECT(交集)、EXCEPT(差集)

4、函数:CAST、TO_DATS、TO_INT、TO_VARCHAR、ADD_DAYS、LAST_DAY、DAYS_BETWEEN、CURRENT_UTCTIMESTAMP、NEXT_DAY、NOW、ABS、CEIL、GREATEST、LEAST、LOG、MOD、POWER、ROUND、CONCAT、LEFT、LPAD、LTRIM、REPLACE、UCASE、CURRENT_SCHEMA、NULLIF、SESSION_CONTEXT等

5、正则表达式:LIKE_REGEXPR、SUBSTRING_REGEXPR、OCCURRENCES_REGEXPR、REPLACE_REGEXPR

PAL方面

1、PAL主要用于数据预测与分析、针对大数据量

2、PAL函数主要包括:聚类、分类、关联分析、时间序列分析、统计分析

3、使用步骤:

     1)生成AFL_WRAPPER_GENERATOR 与 AFL_WRAPPER_ERASER存储过程

     2)生成算法的实例,CALL SYSTEM.AFL_WRAPPER_GENERATOR( '<procedure_name>',  '<area_name>','<function_name>', <signature_table>);

     3)调用算法实例  CALL <procedure_name>

XS方面

1、可根据View创建OData

2、可创建XSJS服务,UI5应用等

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值