Apache > Gora
 

Welcome to Apache Gora™

What is Apache Gora?

The Apache Gora open source framework provides an in-memory data model and persistence for big data. Gora supports persisting to column stores, key value stores, document stores and RDBMSs, and analyzing the data with extensive Apache Hadoop MapReduce support.

Why Apache Gora?

Although there are various excellent ORM frameworks for relational databases, data modeling in NoSQL data stores differ profoundly from their relational cousins. Moreover, data-model agnostic frameworks such as JDO are not sufficient for use cases, where one needs to use the full power of the data models in column stores. Gora fills this gap by giving the user an easy-to-use in-memory data model and persistence for big data framework with data store specific mappings and built in Apache Hadoop support.

The overall goal for Gora is to become the standard data representation and persistence framework for big data. The roadmap of Gora can be grouped as follows.

  • Data Persistence : Persisting objects to Column stores such as HBase, Cassandra, Hypertable; key-value stores such as Voldermort, Redis, etc; SQL databases, such as MySQL, HSQLDB, flat files in local file system of Hadoop HDFS.
  • Data Access : An easy to use Java-friendly common API for accessing the data regardless of its location.
  • Indexing : Persisting objects to Lucene and Solr indexes, accessing/querying the data with Gora API.
  • Analysis : Accesing the data and making analysis through adapters for Apache Pig, Apache Hive and Cascading
  • MapReduce support : Out-of-the-box and extensive MapReduce (Apache Hadoop) support for data in the data store.

Background

ORM stands for Object Relation Mapping. It is a technology which abstacts the persistency layer (mostly Relational Databases) so that plain domain level objects can be used, without the cumbersome effort to save/load the data to and from the database. Gora differs from current solutions in that:

  • Gora is specially focussed at NoSQL data stores, but also has limited support for SQL databases.
  • The main use case for Gora is to access/analyze big data using Hadoop.
  • Gora uses Avro for bean definition, not byte code enhancement or annotations.
  • Object-to-data store mappings are backend specific, so that full data model can be utilized.
  • Gora is simple since it ignores complex SQL mappings.
  • Gora will support persistence, indexing and anaysis of data, using Pig, Lucene, Hive, etc.

News

12 September, 2012: Apache Gora at ApacheCon EU 2012

ApacheCon Logo After an absence of several years, the Apache Software Foundation is pleased to announce that ApacheCon is returning to Europe in 2012! ApacheCon EU Community Edition 2012 will be held between the 5th and 8th of November, at the Rhein-Neckar-Arena in Sinsheim, Germany... and guess what? Gora is coming along for the ride! The proposal entitled From Incubation to Continuous Ingestion - The Story of Apache Gora has been included in the Big Data track. We look forward to seeing you in November in Germany.

24 August, 2012: Apache Gora successfully participates in Google Summer of Code 2012

The jury has been out, the results are in and we are extremely proud to announce that the Gora - Amazon DynamoDB datastore for Gora project has come out on top in this years Google Summer of Code. We can now bear the fruits of success in this years program as it marks a first for Gora and will surely reap long term benefits for the community as a whole. A huge congratulations to this years student Renato Javier Marroqui­n Mogrovejo for his work over the summer, as a community we look forward to your continued presence within the project and beyond.

07 August, 2012: Apache Gora 0.2.1 released

The Apache Gora team are proud to announce the release of Gora 0.2.1. This point-oh! release offers users large improvements within the gora-cassandra module including a number of bug fixes, significant upgrades to Apache Cassandra and Hector Client API usage and a number of improvements to the gora-core API. The Maven artifacts for the project are published to Maven Central. See the 0.2-CHANGES.txt file for a full list of changes in this release or alternatively the Jira release report.

24 April, 2012: Apache Gora 0.2 released

The Apache Gora team are proud to announce the release of Gora 0.2, our first since graduating from the Apache Incubator. This release boasts an assortment of over 50 improvements over our previous incubating release with artifacts available both within Maven Central and from official Apache mirrors. The Maven artifacts for the project are published to Maven Central. See the 0.2-CHANGES.txt file for a full list of changes in this release.

23 April, 2012: Apache Gora Amazon DynamoDB project accepted as Google Summer of Code project

The Apache Gora team are very happy to announce conformation that the green light has been given for a Gora Amazon Dynamo DB project within the remit of this years Google Summer of Code. See the official project proposal here.

24 January, 2012: Apache Gora Graduates to Top Level Project at the Apache Software Foundation

The biggest event within Apache Gora's history was revealed on 24/01/2012 when it was announced that Apache Gora was to be established as a Top Level Project entity within the Apache Software Foundation. This is excellent news for the Gora community and we are looking forward to tackling the benefits and challenges brought by our new Top Level status.

15 January, 2012: Apache Gora announces full support for Hector Client:

Some time ago, the Apache Gora development team made the decision to support Hector as the primary Apache Cassandra client. This decision enables Gora to build on the expressiveness offered by the Hector API, some features include:

  • high level, simple object oriented interface to cassandra.
  • failover behavior on the client side.
  • connection pooling for improved performance and scalability.
  • JMX counters for monitoring and management.
  • configurable and extensible load balancing (round robin (the default), least active, and a phi-accrural style response time detector).
  • complete encapsulation of the underlying Thrift API and structs.
  • automatic retry of downed hosts.
  • automatic discovery of additional hosts in the cluster.
  • suspension of hosts for a short period of time after several timeouts.
  • simple ORM layer that works.
  • a type-safe approach to dealing with Apache Cassandra’s data model.
  • As an Apache community we value community over code, this move is definately a step in the right direction towards bringing together two diverse communities, whilst during process undoubtably making both Apache Gora and Hector better technologies. Here at Gora we look forward to working with the Hector community.

    24 September, 2011: Apache Gora 0.1.1-incubating release

    The Apache Gora project made its second incubating release. This release improves the Maven artifacts for the project and publishes them in useable form to Maven Central. See the CHANGES.txt file for a full list of changes in this release.

    06 April, 2011: Apache Gora 0.1-incubating release

    The Apache Gora project made its first incubating release. See the CHANGES.txt file for a full list of changes in this release.

    26 September, 2010: Gora in Apache Incubator

    Gora has been accepted to the Apache Incubator and started it's life as a candidate Apache project.

    Apache Gora Trademark Attribution

    Apache Gora, Gora, Apache, the Apache feather logo, and the Apache Gora project logo are trademarks of The Apache Software Foundation.