声明:
本博客旨在交流SAP内存数据库产品HANA的相关开发技术
文章内容主要来源于官方文档、SCN网友及笔者个人开发经验,欢迎转载但请注明引用
文中所有操作皆在HANA Studio中执行,HDB基于SPS09版本,截止笔者发稿前,HDB最新版本已至SPS12
概念
对于HANA中模型是什么东西,笔者说不上来,官方文档亦是言语不详。
早前有幸参加过蓝厂的培训,介绍BI产品。讲师着重讲CUBE的概念,各种高大上专业名词,唬的笔者一愣一愣,而干货寥寥。
本着踏实学习的目的,笔者无意对HANA模型做高深脚注,徒增理解难度,仅以自己经验总结下,HANA里面的模型基本就等同于视图和存储过程。有些地方会与其它数据库产品存在差别,容笔者慢慢道来。
地位
在整个HANA开发中,建模属于最为基础的一个环节。HANA开发模式基于MVC。Model在MVC中的地位不用多说,HANA模型还包含逻辑,一个设计合理的模型可以减轻不少工作量。此外,模型还可以作为视图通过JDBC、ODBC等方式访问。故学好模型的搭建是重中之重。
附图是官方HANA开发的学习大纲:
模型类别
首先介绍下HANA模型的类别,HANA中共有三种模型
- 属性视图(Attribute View)
- 分析视图(Analytic View)
- 计算视图(Calculation View)
创建难度由上至下递增,这次先介绍最简单的属性视图
属性视图
HANA作为内存数据库,当数据加载到内存时,主要采用列存储(压缩率高,节约内存同时检索也快)。对于这些表,当其包含的某些列数据重要性不大或者并不经常会用到,譬如时间戳,在建模时可以摘除,这样可以减少模型调用时分配的内存,且访问起来比原表更迅速,同时内容也更清晰,方便开发人员理解。
属性视图作为最基础的模型,其主要工作就是进行 数据关联 和 数据清洗。
通俗的讲就是
SELECT ta.col1,
ta.col2,
CASE tb.col2
WHEN 'X' THEN 'X'
ELSE ''
END