Gora是一个类似Hibernate的ORM框架,但是不只是支持关系数据库,更重要支持NoSQL之类大数据的存储。
Apache Gora是一个开源的ORM(Object/Relation Mapping,对象关系映射)框架,主要为大数据提供内存数据模型与数据的持久化。目前Gora支持对于列数据、key-value数据,文档数据与RDBMS数据的存储,还支持使用Apache Hadoop来对对大数据进行分析
虽然目前市面上有很多不错的关系数据库的ORM框架,但是基于数据模型的框架如JDO还是有一些不足,如对于列数据模型的存储与持久化。Gora正好弥补了这个问题,它能使用户很容易对大数据时行 内存建模与持久化,而且支持Hadoop来对大数据进行分析。
Gora的目标是成为大数据的标准数据表示和持久化框架。它的功能[1] 归纳如下:
· 数据持久化:将对象持久化到列存储,如Apache HBase, Apache Cassandra, Hypertable;持久化到key-value存储,如Voldermort, Redis等;持久化到SQL数据库,如MySQL, HSQLDB; 也可对文件进行Hadoop HDFS存储;
· 数据访问:使用Java API轻松地对数据进行访问而不考虑数据的位置;
· 索引:持久化对象到Apache Lucene和Solr索引,使用Gora API来对数据进行访问或查询;
· 分析:通过Apache Pig, Hive和Cascading来访问数据并进行分析
· MapReduce的支持:原生支持Hadoop的MapReduce框架。
Gora的一个源代码结构 编辑
Gora源代码以模块的形式来组织,其中gora-core是主要核心模块。所有其它模块都依赖这个核心模块,当然你可以扩展自己的模块,当前实现的模块如下
gora-core : 核心模块 gora-cassandra : apache cassandra模块 gora-hbase : apache hbase模块 gora-sql : sql数据库模块[1]