建模方面
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应用等