DSG公司在经过长期的研究之后,推出了第一版本的历史归档数据管理解决方案SnapArchiving。该解决方案的最大特点就是将那些历史数据迁移到压缩数据库中存储,并且压缩的存储数据库可提供基于SQL方式的数据检索方式,能够与应用软件之间实现最大程度的集成化。
SnapArchiving历史归档数据库管理解决方案的核心是采用DBPlus静态数据压缩存储数据库产品。
DBPlus本身是一套数据库管理系统,只不过该数据库系统是专门针对静态数据设计的,去掉了对事务(Transaction)控制的部分,不支持Insert,Update,Delete等DML操作,对数据采用压缩存储方式,降低存储空间。
DBPlus产品完整的体现了SnapArchiving的技术要求:
1. 以压缩方式保存归档数据,降低存储空间和存储成本
DBPlus系统对从生产系统上迁移过来的历史数据采用专用存储的数据库结构进行存储。
为了降低存储空间,DBPlus采用压缩的存储格式,DBPlus在做数据迁移时,对数据作重新排序,把相同的重复数据重新组织到一个数据块内,并且在块内的数据采用业界通用的压缩算法进行压缩存储,使得压缩率得以大幅度提高。DBPlus的数据块最小300KB,最大可以配置为2MB,按大数据块做数据压缩,可以有效提高压缩倍率。
根据测试的结果,对于记录数为4.3亿,在源系统中的占用了183GB,其中包括索引数据52GB的数据在迁移到DBPlus系统上后,存储空间变为19.1GB,其中包括索引320MB。压缩比达到9:1。
2. 以标准SQL语句方式进行快速查询
DBPlus对外提供标准的SQL引擎进行数据查询,通过简单的SELECT命令就能对归档数据进行任意检索。
为了查询检索性能,系统对数据进行特殊的组织,按照数据库的Block方式进行管理,并对组织的数据提供index信息,加速数据检索性能。
为了进一步提高检索速度,DBPlus还把相同索引的数据重新排序,存放在一个数据块内,用户查询数据时,做一次磁盘寻道和顺序读取就可以返回多条记录;DBPlus使用索引聚合技术减少了搜索时间,降低了Btree数的高度。通过独创的部分索引技术,使用字段的一部分值来建立索引,再把相同键值的索引紧缩成一条记录,把表数据对应的索引数量降低,查询效率得以提高;实时压缩算法保证数据的高吞吐量。
根据测试的结果,对于记录数为4.3亿,在源系统中的占用了183GB的数据在迁移到DBPlus系统上后,随机选取客户200名,分别在源系统和DBPlus批量运行查询业务,两个系统的查询结果完全一致,返回记录总数为210197 。在源系统中运行时间为920秒,DBPlus中的运行时间为82秒。
3. 还能够与oracle等数据库集成访问
DBPlus使用了异构数据库系统互连的技术,通过ODBC驱动程序,与Oracle数据库实现无缝对接,应用程序可以使用Oracle的 JDBC/OCI/Pro*C等程序设计接口,使用Oracle的 SQL语法,直接查询DBPlus中的数据,通过在Oracle中重定义视图等方式,应用程序可以不做任何修改。