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应用等

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容

  • 一. Java基础部分.................................................
    wy_sure阅读 3,788评论 0 11
  • 第三课: 排序检索数据 distinct关键字:distinct 列名1,列名2,列名3DISTINCT 关键字会...
    VictorBXv阅读 1,465评论 0 8
  • 第三章 数据库系统 3.1 数据库管理系统的类型 通常有多个分类标准。如按数据模型分类、按用户数分类、按数据库分布...
    步积阅读 2,671评论 0 7
  • --- layout: post title: "如果有人问你关系型数据库的原理,叫他看这篇文章(转)" date...
    蓝坠星阅读 775评论 0 3
  • 一个遥远的名字.. 但是对着天空比着这个手势的我,却如此安心.. 我想我是微笑的,因为我相信那里有我最重要的人.....
    般若玖阅读 302评论 0 0