OLAP对于数据更新的实现有哪些方式?

提问者:帅平 问题分类:面试刷题
OLAP对于数据更新的实现有哪些方式?
5 个回答
待我幼稚完
待我幼稚完
Delta Store方式:
会通过额外的主键索引来维护新到的数据原来所在的位置和新的修改,数据查询时,会读取老数据和维护的这部分delta内容来做合并,返回给用户。
具体实现如下图:

优缺点如下:
1、写入和读取速度较为均衡。
2、如果单次导入的数据量重复值过多的话,会造成delta store空间占用过大,会有一定的代价牺牲
发布于:2个月前 (02-08) IP属地:四川省
素手烹茶べ待君归
素手烹茶べ待君归
Delete And Insert方式:
会维护主键索引和操作类型标记两种数据结构,数据在导入过程中,会同时去维护的主键索引中去寻找主键相同的数据,同时会在维护的BITMAP操作类型标记中对重复的数据做删除标记,同时做相关的insert 操作,来达到数据更新的需要。数据查询时,会自动根据索引中的标记自动忽略带有删除标记的数据行。
具体实现流程如下图:

优缺点如下:
1、写入性能有一定下降。
2、查询性能比较优异。
发布于:2个月前 (02-08) IP属地:四川省
有你我就幸福
有你我就幸福
Copy On Write方式:
当有新数据进来的时候,会和之前的数据比对,把有变更的数据文件找出来,全部重写,如果找不到有变更的历史文件,则写入新的文件。
具体实现流程如下图:

优缺点如下:
1、查询性能极好,查询时不需要做任何处理。
2、对更新操作的数据量和频率比较敏感。如果单次导入涉及到需要更改的数据量较大,则几乎需要重写所有的数据。
发布于:2个月前 (02-08) IP属地:四川省
帅的很低调
帅的很低调
Merge On Write方式:
在导入过程中,当导入的数据和之前的数据重复的时候,会把之前存在重复数据的标记位标记为删除,查询时,会自动跳过标记位为删除的数据。
写入流程如下图:

优缺点:
1、数据导入时,会有和之前的数据比对的操作,会有一定的导入性能下降。
2、读时只需要根据标记位的索引跳过不需要读取的行,读取效率会比较高效。
发布于:2个月前 (02-08) IP属地:四川省
扎起头发是矫情
扎起头发是矫情
Merge On Read方式:
Merge On Read的实现在数据写入的角度来说,是最容易实现的一种实现数据更新的策略。他的核心在于,所有对于数据的更新或者删除操作,在数据存储层面都是被看作一次数据追加的操作,即“append only”的一种数据写入流程,每一批次的数据写入会携带一个版本号的概念,在查询的时候,通过对相同主键进行merge(这个操作也可能是一个定期的异步compaction任务做一部分的merge),显示对应目标版本的数据,来做到查询侧的数据更新的能力。
写入流程如下图:

优缺点如下:
1、写入快,查询慢,查询有额外的代价消耗。
2、源数据如果无法保证数据更新的顺序的话,这种方式也就无法保证数据更新的顺序性。
发布于:2个月前 (02-08) IP属地:四川省
我来回答