Git Product home page Git Product logo

gora's Introduction

Apache Gora Project

license Jenkins Jenkins tests Maven Central SonarQube Tech Debt Twitter URL

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 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 ORM 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 or 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.

For the latest information about Gora, please visit our website at:

http://gora.apache.org

License

Gora is provided under Apache License version 2.0. See LICENSE.txt for more details.

gora's People

Contributors

alfonsonishikawa avatar bryant1410 avatar cguzel avatar chrismattmann avatar cloudysunny14 avatar danielshahaf avatar djkevincr avatar dobromyslov avatar drazzib avatar emopers avatar enis avatar hsaputra avatar iocanel avatar jnioche avatar kamaci avatar keith-turner avatar lewismc avatar lifove avatar madhawa-gunasekara avatar mjjoyce avatar otrack avatar renato2099 avatar sigram avatar talatuyarer avatar vaibhavthapliyal avatar vijuk avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.