ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HANA Delta Merge

2022-01-27 11:36:27  阅读:292  来源: 互联网

标签:delta1 merge HANA Delta storage Merge delta DTP


文章目录

1. 啥是HANA Delta Merge

首先咱知道HANA是列存储的。就是用的压缩算法,把所有应用数据保存在内存里。那你都压缩保存了。只是针对读取数据相当方便,那我怎么写数据进去呢?
这不就困难了么?
难道我要重新组织下你这个保存的数据?再按行来写?这就不行了啊。
我要更新和插入数据到一个已经排好序的列式存储的表里,也太难了。因为我得重新排序啊,也就是说我无论搞啥,都得重新组织下这整个表。那么大的表,非常耗时。
有什么好一点的办法呢?
SAP是怎么办的呢?
把方便读的,排好序的表,放到Main storage里。
把方便写的,非排序的列表或者行表,放到delta storage里。所有的更改都先给你放到delta storage里。
delta storage在哪?在主存里。当有插入新增数据,把delta storage给合并到main storage里去。
在这里插入图片描述
光靠讲是理解不了的。具体后台操作得看图:
在这里插入图片描述
具体咋回事呢?在我看来就是修补:
在合并前:所有写操作存到delta1,读取从main1和delta1出。
合并中:所有写更改存到delta2, 因为delta1 和 main1正在往main2 进行合并。那么读操作此刻从delta1 ,delta2 和main1出。 有一些delta1还没提交的更改,给放到delta2 了。
合并后:main 1 和delta1删掉。

总结,HANA数据库中,数据更改默认存储到delta storage中,其后通过delta merge转移到main storage中。
如果在数据加载过程中数据有更改,那么最后要执行delta merge。这个在那呢?

  1. DTP的delta merge
    在这里插入图片描述
    DTP运行完之后就进行delta merge。
    但是如果你有很多个DTP更新到一个ADSO里。
    那么就在ADSO中进行。一般在处理链里:
    在这里插入图片描述
    在这里插入图片描述
    一般不建议DTP完了就直接搞delta merge.
    因为如果你有其他DTP,那还在进行数据填入呢。好歹在所有数据加载结束后再搞。
    但是不能不搞,要不然数据一直在delta storage里。读取的效率就低啊,而且还有存储空间不够的问题。
    在这里插入图片描述
    对于标准ADSO一般都要这么搞。
    如果对于staging ADSO,默认你要在DTP里面勾。

2. 怎么执行一个Delta Merge

那你到HANA Modeler你的BW Schema下面去搜ADSO的表名:/BIC/A*
然后open definition
看到runtime information 中的main storage 和 delta storage.
然后执行一个带delta merge的DTP。
再回头看。
在这里插入图片描述

标签:delta1,merge,HANA,Delta,storage,Merge,delta,DTP
来源: https://blog.csdn.net/weixin_45689053/article/details/122713709

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有