什麼是Apache Gora
Apache Gora是一個開源的ORM(Object/Relation Mapping,對象關係映射)框架,主要為大數據提供記憶體數據模型與數據的持久化。目前Gora支持對於列數據、key-value數據,文檔數據與RDBMS數據的存儲,還支持使用Apache Hadoop來對對大數據進行分析。
為什麼要使用Apache Gora
雖然目前市面上有很多不錯的關係資料庫的ORM框架,但是基於數據模型的框架如JDO還是有一些不足,如對於列數據模型的存儲與持久化。Gora正好彌補了這個問題,它能使用戶很容易對大數據時行 記憶體建模與持久化,而且支持Hadoop來對大數據進行分析。
Gora的目標是成為大數據的標準數據表示和持久化框架。它的功能 歸納如下:
· 數據持久化:將對象持久化到列存儲,如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資料庫模組