资料储存策略
计算机技术的当前状态是可以存储几乎无限量的数据。 结果,实际上消除了删除数据以释放新数据空间的需要。
从数据和它们描述的对象的自然关系开始,这提供了很多优势,因为自然界中存在自然保护法则,同样适用于反映自然对象的数据,最后仅涉及与数据完整性相关的纯技术问题。时间。
因此,存储策略应基于“软”删除范例,该范例包括将数据标记为从某个时间点开始失去其相关性。
数据更改完全相同。 更新不应覆盖以前的数据,而是指示从某个时间点开始,数据具有不同的含义。
如果您确实想通过清除未使用的数据中的存储来释放空间,则可以采用压缩存储的策略,即通过在过去的某个时间点仅覆盖相关数据来制作存储的副本。
这些注意事项并不是什么新问题,因为它们已在Hadoop等大数据仓库中实现。
资料储存格式
反映某些实体的数据通常是一组属性,其组成反映了该实体的必要特征。 为了简单起见,我们假设我们正在谈论的是由元组组成的关系模型。
因此,数据以某种类型的元组的形式存储,随着时间的流逝,它们可能会更改并失去相关性。
我们还意味着,现代大数据存储区通常具有键值结构,其中键的主索引和其他属性的可选索引。
考虑到这些考虑,提出了以下数据存储格式。
我想立即指出,这种格式不是唯一的,而是受称为“寄存器”的1C对象中数据存储结构的启发。 但是在此开发中,建议使该格式通用并在其中存储所有数据。
因此,我们基于以下定义的工作流概念,提出了一种用于记录有关实体及其属性的数据的格式:
- 操作是一个数据实体中的原子更改。
- 实体由属性组成。
- 实体具有确定其属性组成的类型。
- 相同类型的实体存储在单个线程中。
- 工作流-类型表的存储对象,与相同类型的实体相关的操作和更改其状态的位置位于其中。
因此,每个操作都由一个操作标头和一组取决于实体类型的属性组成:
- OpID-操作的唯一标识符
- OpTS-操作时间戳
- OpType-操作类型
- OpClass-流名称
- OpUser-发出命令的系统用户
- OpDoc-操作文档,即创建该文档的文档可能未安装
- OpComment-操作注释
- ID-与操作相关的实体的标识符
- 参数-流量相关的操作属性
OpID和ID可以是任何值,但就目前而言,使用UID可能有意义。
如果多个操作落在同一时间段内以确保唯一的操作顺序,则OpTS最有可能应为时间戳类型,但应由序号索引进行补充。
OpType可以是任何类型,例如,一个/几个字符或一个数字。
OpClass,OpUser和OpComment可以是字符串,也可以是对目录的某种引用。
OpDoc提供了指向文档的链接,但可能不存在。 这是与上层的连接。
操作分为基本和服务。
基本操作
基本操作3-添加,更新,删除:
- 操作“ A”添加-说明特定类型的新实体的实例化并设置一组属性。
- 操作“ U”更新-检测某种类型的实体中的更改,并为一组特定的属性设置新值。
- 删除操作“ D”-表示某种类型的实体的现实的终结。
操作A和U不能设置所有属性,而只能设置一些属性。 那些未被此操作设置的属性可能具有NULL类型的值,或某些其他特殊值,目前尚不可用,但是创建它会很好。
结果,实体的属性在特定时间点的实际值需要通过选择所有与特殊(未设置)值不同的属性进行搜索来进行计算。
发出操作U时,系统应检查该实体是否存在操作A,如果不存在,则将操作类型更改为A。
操作D关闭了某个实体的存在,并且在此操作之后请求具有相关点的该实体的属性值时,应为该实体的所有属性返回值“未设置”。 发出操作D时,系统应检查该实体是否存在操作A,如果不存在,则拒绝保存命令D。
作为一项附加功能,这种操作结构允许您在不同的时间点组织具有相同ID,具有不同属性的实体的存储,不仅基于属性,而且还基于整个实体。 也就是说,我们可以有多个AN * UD块,其中存在该实体,而在D和A之间不存在该实体。
服务运营
服务操作可以是很多的,并且可以补充其组成。 例如,可以考虑以下几点:
- 操作“ N”是无效操作-系统必须忽略此操作。 您可以将其他类型的操作更改为N,以将其从工作中排除。
- 操作“ C”高速缓存-可以以一定的频率创建此操作,并在特定的时间点存储属性值,以减少深度搜索属性值的成本。 操作参数的详细信息可以存储在例如注释中或操作代码本身中。 当然,在应用基本操作时,应重新计算C类型的操作或将其替换为N。
- 操作“ S”的组操作-可以按一定的频率创建此操作,并在一定时期内存储数字类型属性的组值(例如,总和,平均值等)。 操作参数的详细信息可以存储在例如注释中或操作代码本身中。 当然,在应用基本操作时,应重新计算S类型的操作或将其替换为N。
- “ G”操作分组属性-此操作可能类似于U,但同时,某些系统命令将不发出一个属性值,而是发出多个属性值。 每个操作A / U一个属性值,其余值-操作G,位于相邻的A / U之间。
服务操作是可选的,但是它们可以为存储系统提供附加服务并提高其性能。 对于不同的系统,它们的组成可能有所不同。