地震大数据存储管理研究
2015-05-13李盛乐陈晓琳刘珠妹中国地震局地震研究所地震大地测量重点实验室武汉430071
刘 坚 李盛乐 陈晓琳 康 凯 刘珠妹(中国地震局地震研究所地震大地测量重点实验室,武汉 430071)
地震大数据存储管理研究
刘 坚 李盛乐 陈晓琳 康 凯 刘珠妹
(中国地震局地震研究所地震大地测量重点实验室,武汉 430071)
针对目前传统关系数据库在存储大数据时遇到的诸多挑战,提出了一种基于Hbase的地震大数据存储管理方法。Hbase表是一个分布式多维表,表中的数据通过一个行关键字(Row Key)、一个列族和一个列名(Columnfamily:column name)以及一个时间戳进行索引和查询定位。关键在设计好Row Key,以方便数据查询并进行数据分析。下面以地震观测数据为实例,讲述在Hbase的存储原理和方法。
假设地震业务数据库中有一Obs观测数据表,如果按照传统的RDBMS的话,Obs表中的列是不能随意改变的,比如schema定义了Netid,Stationid,pointid、Intrid、Itemid、value等属性,Obs表的属性是不能动态增加的。如果是Hbase列式存储数据库,在创建Obs表时,再为它定义一个info列族,Obs的数据便可以表示为:info:value=23.4,如果欲增加新的字段属性,只需要通过添加一个info:newProperty就可以了。

表1 关系数据库表结构
表1是关系数据库定义的Obs表,一旦设计完投入运行,该表的列是固定的,不能动态改变,并且列值为null值时,因占存储空间而浪费了这部分空间。表2是在Hbase的NoSQL数据库,Obs表的列可通过列族动态增加,并且空值列是不存储的,这样就节约了存储空间,因此Hbase的基于列存储的数据模型就非常适合地震数据频繁扩展的场景。另外,选用Hbase数据库存储管理数据,还有另外一个好处就是能自动切分数据,当Obs表中的数据超过某一个阀值时,Hbase就会自动切分数据,这样就使查询具有了伸缩性,再加上Hbase的弱事务性的特性,因此Hbase的数据写入效率非常高。……
