因为说呢,HANA很贵。
具体我也不了解,HANA Cloud主要是数据库服务,按CU来收费的,像数据的计算,存储,集成等等,最低得100CU起步,每个CU每年大概是要9.72美刀。
S/4HANA那就是一整套解决方案了,按年收费最低25万美元一年,后期包括实施和license费用得百万美元。上不同的模块费用还不一样。
本地HANA是看内存大小的,按GB收费,大概100美元1G,2T的大小,要花20万美元。还得考虑维护费用,用户的license费用,不同的license费用还不一样,还得搞培训,还得搞定制开发。百万美元打不住。
所以说呢,历史数据是一定要归档的。不需要经常访问的数据能不放在HANA里就不放在HANA里。省钱。
整个归档逻辑是在ADSO上搞。把ADSO激活表的数据转移到一个冷存储的数据库里。减轻巨量数据对BW系统性能的影响。
同时也要保证Query读取数据的时候能把冷存储的数据读回来。和HANA上的数据合并出报表。
1. 怎么把数据转移出去
首先得选一个合适的近线存储系统吧,一般选的是SAP IQ,以前叫Sybase IQ。(俺没用过Hadoop)
需要Basis去装SAP IQ server和SQL Anywhere ODBC驱动,需要我们在DBCO建一个和SAP IQ的连接:这个连接有了,等于说我们能把数据给出去的通道建立了。
接下来就是把数据转移出去到这个SAPIQ上,转移之后从HANA里删除。
怎么做呢?
1. 在ADSO上建一个DAP,data archiving process。
2. 把数据存放到归档数据库表里。
3. 从HANA数据库把归档过的数据删掉。
接下来我们具体的看看,首先肯定你的ADSO里已经有好几年的数据了。假设我们只需要保留最近3年的数据,3年以前的数据都可以归档。那就可以来建DAP了。
在ADSO上选择:
然后选择你的近线存储连接,一般里面选按年来归档。如果你的ADSO里没有时间字段,可以选其他的字段来分区归档。除了年以外,还可以再加一个主键字段分区。接着激活这个DAP。也就等于说能在近线存储数据库里接收你归档文件的表已经生成了。这时候你去查这个ADSO相关的表,可以看到OU开头的表名。(在ABAP object里查)
然后执行归档请求:一般我们都是创建一个处理链,选择处理链类型:archive data from the datastore object.
执行DAP处理链会生成一个归档请求。这个归档请求类似于我们执行DTP的数据抽取请求,当然也可以手工执行:
整个执行过程也能看出来,它是从10 创建DAP,30上锁,40复制,50验证到70删除这一系列操作。如果手动跑的话,刷新请求能看到它在不同的状态编号上。
归档请求执行结束后,数据就转移到NLS上了。
2. 怎么把数据读取回来
让Basis在HANA里建SDA连接到SAP IQ。
这样我们才能把数据读回query。
如果出现了query读取不到NLS数据的。可以检查是不是DAP不激活了,有可能的情况是归档后改了ADSO的结构(比如加了一些字段),但是忘记把DAP激活了。