HANA笔记
1、分析视图尽量只使用data foundation进行连表取字段,不做其它操作,不使用star join。
2、过滤、计算列尽量在计算视图中处理
3、限制列都可以用计算列实现,尽量用计算列
4、HANA属性视图中的key字段并不等同与主键,不能保证唯一性
5、要检查输入参数是否都做了映射,否则由于HANA的bug,会出现奇怪的问题
6、HANA STUDIO要升到最新版本,否则有不能传多个输入参数的bug
7、计算列有不能等效拆分求和的复杂运算时,要设置先计算再聚合
8、注意浏览器兼容问题,有些错误是浏览器问题
9、一定要设置数值列的精度scale,否则会出现奇怪的问题(HANA不报错,但Webi报precision specifier out of range错误)
10、分析视图只允许有一个中心表,即度量列只能存在于一个表中,否则要用计算视图
11、赋值Null需要带类型,如string(null),int(null),否则会报错
12、脚本方式创建计算视图,写完脚本后并不会自动产生输出列,需要在右侧output窗口手动添加列,可以从其它视图导入输出列。必须保证脚本中输出列的顺序和output窗口中顺序一致,不一致可以在窗口中调整顺序。
13、脚本创建的视图,是一个只读的存储过程,也不能调用其它的非只读存储过程。
14、字符串匹配要用locate,不能用like
15、字符串匹配(locate)>聚合(string_agg),都很消耗性能, 如果数据样本多样性较小,有大量同一性时,可以先distinct出来,小范围处理,建立字典表,再和主表关联,降低性能损耗。
16、输入参数的几种情况:
a)WEBI输入参数只能做where条件过滤,可以是可选或必填。WEBI可以调用idt定义的参数。
b)IDT定义的输入参数可以通过PLACEHOLDER传给HANA视图或者直接在派生表中作为where过滤条件。IDT输入参数只能是必填,不能可选。
c)HANA视图中定义的输入参数可以是可选或必填。HANA中通过公式定义的参数默认值在preview时可以刷新,但IDT调用时不能刷新,bug。
图形化视图的输入参数可以是可选或必填。脚本视图的输入参数只能必填,不能可选(虽然可勾掉必填选项,但还是要求输默认值)。脚本视图中引用输入参数用":参数名",见sqlscript。脚本视图中不支持‘+’,要用concat。为啥计算列可以?图形化视图、脚本视图、idt派生表中支持的sql函数似乎都有差别。
17、以后尽量直接使用计算视图,不用分析视图,分析视图虽然连接方便,但不利于阅读和定位问题。修改老计算视图宜在最顶层进行,如果有大量改名或有限制列或涉及汇率转换的计算列,最好直接在外面再套一个计算视图进行修改。为方便以后修改,新计算视图在顶层一律不改列名,不建计算列和限制列,这些放到下层进行。
18、需要在HANA->security->users中设置user(idt的数据连接中所用到的hana user)的session client,因hana视图的default client属性默认是取session client,如果不设置,在计算视图中用到汇率转换时,会报找不到client的错。
19、必须在开发视角->repository页签,create或import一个本地workspace,右键视图->show in history,才能选一个版本,右键->check out and rebase to active,回退视图版本。
20、SLT任务数不要配置过多。发现SLT不能复制新表(始终停在初始加载阶段,不能创建本地表),任务数配少一些,解决。
21 、计算列的if()函数,当null值参与数学运算(如相等或不等比较)时,返回的是null,不是false!!if(a=1,y,n),当a为null时,返回的既不是y,也不是n,而是null!要实现想要的效果,需写成if( not( isnull(a) ) and a=1,y,n)!
22、相同维度的数值(度量)列可以通过union方式添加,而属性(维度)列只能通过join方式添加。
23、脚本化视图中,不同schema的表或视图进行关联时,join条件中不能使用以跨schema字段为参数的函数或表达式
如join on fun(schemaA.table1.字段1,schemaB.table2.字段2)>0,编译会报错。
24、图形化视图的主要优点在于便于逐层分析定位,可读性好。
25、查询HANA视图用到聚合函数时,要把HANA视图先括起来,相当于把视图存在临时表里,如select 聚合函数 from (select * from xxHANA视图), 如果不括起来,由于HANA自身的优化机制,可能不按字面解释执行,导致非我们期望的结果。
26、union后要用aggregation节点聚合,否则再join容易出现重复记录。
文章来自于网络,如果侵犯了您的权益,请联系站长删除!