| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| <html> |
| <head> |
| <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> |
| <meta charset="utf-8" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
| <meta name="author" content="dev@gora.apache.org" /> |
| |
| <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> |
| <meta name="Description" content="Apache Gora -- About Apache Gora™" /> |
| <meta name="Keywords" content="Apache Gora NoSQL Framework" /> |
| <meta name="Owner" content="dev@gora.apache.org" /> |
| <meta name="Robots" content="index, follow" /> |
| <meta name="Security" content="Public" /> |
| <meta name="Source" content="wiki template" /> |
| <meta |
| name="DC.Rights" |
| content="Copyright 2010-2024, The Apache Software Foundation" |
| /> |
| <link href="/resources/css/bootstrap.min.css" rel="stylesheet" /> |
| <!-- Fav and touch icons --> |
| <link |
| rel="apple-touch-icon-precomposed" |
| sizes="144x144" |
| href="http://twitter.github.com/bootstrap/assets/ico/apple-touch-icon-144-precomposed.png" |
| /> |
| <link |
| rel="apple-touch-icon-precomposed" |
| sizes="114x114" |
| href="http://twitter.github.com/bootstrap/assets/ico/apple-touch-icon-114-precomposed.png" |
| /> |
| <link |
| rel="apple-touch-icon-precomposed" |
| sizes="72x72" |
| href="http://twitter.github.com/bootstrap/assets/ico/apple-touch-icon-72-precomposed.png" |
| /> |
| <link |
| rel="apple-touch-icon-precomposed" |
| href="http://twitter.github.com/bootstrap/assets/ico/apple-touch-icon-57-precomposed.png" |
| /> |
| <link rel="shortcut icon" href="/resources/img/feather-small.png" /> |
| |
| <title>Apache Gora™ - About Apache Gora™</title> |
| </head> |
| |
| <body style="padding-top: 100px"> |
| <nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top shadow-lg"> |
| <div class="container-fluid"> |
| <a class="navbar-brand" href="/index.html" |
| ><img |
| src="/resources/img/gora-logo.png" |
| alt="Apache Gora" |
| title="Apache Gora" |
| height="50px" |
| /></a> |
| <button |
| class="navbar-toggler" |
| type="button" |
| data-bs-toggle="collapse" |
| data-bs-target="#navbarNav" |
| aria-controls="navbarNav" |
| aria-expanded="false" |
| aria-label="Toggle navigation" |
| > |
| <span class="navbar-toggler-icon"></span> |
| </button> |
| <div class="collapse navbar-collapse" id="navbarNav"> |
| <ul class="navbar-nav me-auto"> |
| <li class="nav-item"> |
| <a class="nav-link" href="/downloads.html">Downloads</a> |
| </li> |
| <li class="nav-item dropdown"> |
| <a |
| class="nav-link dropdown-toggle" |
| href="#" |
| id="navbarDropdown1" |
| role="button" |
| data-bs-toggle="dropdown" |
| aria-expanded="false" |
| >Community</a |
| > |
| <ul class="dropdown-menu" aria-labelledby="navbarDropdown1"> |
| <li> |
| <a |
| class="dropdown-item" |
| href="https://whimsy.apache.org/board/minutes/Gora.html" |
| >Board Reporting</a |
| > |
| </li> |
| <li> |
| <a class="dropdown-item" href="/contribute.html" |
| >Contribute</a |
| > |
| </li> |
| <li> |
| <a class="dropdown-item" href="/mailing_lists.html" |
| >Mailing Lists</a |
| > |
| </li> |
| <li> |
| <a class="dropdown-item" href="/credits.html">People</a> |
| </li> |
| <li> |
| <a class="dropdown-item" href="/related.html" |
| >Related Projects</a |
| > |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item dropdown"> |
| <a |
| class="nav-link dropdown-toggle" |
| href="#" |
| id="navbarDropdown2" |
| role="button" |
| data-bs-toggle="dropdown" |
| aria-expanded="false" |
| >Documentation</a |
| > |
| <ul class="dropdown-menu" aria-labelledby="navbarDropdown2"> |
| <li><a class="dropdown-item" href="/about.html">About</a></li> |
| <li> |
| <a class="dropdown-item" href="/current/index.html" |
| >Current Documentation</a |
| > |
| </li> |
| <li> |
| <a class="dropdown-item" href="/current/api/javadoc.html" |
| >JavaDoc Documentation</a |
| > |
| </li> |
| <li> |
| <a class="dropdown-item" href="/current/tutorial.html" |
| >Gora Tutorial</a |
| > |
| </li> |
| <li> |
| <a |
| class="dropdown-item" |
| href="https://cwiki.apache.org/confluence/display/GORA/" |
| >Gora Wiki</a |
| > |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item dropdown"> |
| <a |
| class="nav-link dropdown-toggle" |
| href="#" |
| id="navbarDropdown3" |
| role="button" |
| data-bs-toggle="dropdown" |
| aria-expanded="false" |
| >Development</a |
| > |
| <ul class="dropdown-menu" aria-labelledby="navbarDropdown3"> |
| <li> |
| <a |
| class="dropdown-item" |
| href="https://issues.apache.org/jira/browse/GORA" |
| >Issue Tracking</a |
| > |
| </li> |
| <li> |
| <a class="dropdown-item" href="/mailing_lists.html" |
| >Mailing Lists</a |
| > |
| </li> |
| <li> |
| <a class="dropdown-item" href="/version_control.html" |
| >Version Control</a |
| > |
| </li> |
| <li> |
| <a class="dropdown-item" href="/roadmap.html">Roadmap</a> |
| </li> |
| </ul> |
| </li> |
| <li class="nav-item dropdown"> |
| <a |
| class="nav-link dropdown-toggle" |
| href="#" |
| id="navbarDropdown4" |
| role="button" |
| data-bs-toggle="dropdown" |
| aria-expanded="false" |
| > |
| <img |
| src="/resources/img/feather-small.png" |
| alt="Apache" |
| title="Apache" |
| /> |
| </a> |
| <ul class="dropdown-menu" aria-labelledby="navbarDropdown4"> |
| <li> |
| <a class="dropdown-item" href="http://www.apache.org" |
| >Apache Home</a |
| > |
| </li> |
| <li> |
| <a |
| class="dropdown-item" |
| href="http://www.apache.org/licenses/" |
| >Apache License</a |
| > |
| </li> |
| <li> |
| <a |
| class="dropdown-item" |
| href="http://www.apache.org/security/" |
| >Security</a |
| > |
| </li> |
| <li> |
| <a |
| class="dropdown-item" |
| href="http://www.apache.org/foundation/sponsorship.html" |
| >Support</a |
| > |
| </li> |
| <li> |
| <a |
| class="dropdown-item" |
| href="http://www.apache.org/foundation/thanks.html" |
| >Thanks</a |
| > |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| </div> |
| </nav> |
| |
| <div class="container top-buffer" id="Gora_About Apache Gora™"> |
| <h1 id="about-gora">About Gora<a class="headerlink" href="#about-gora" title="Permalink">¶</a></h1> |
| <div id="toc"><ul><li><a class="toc-href" href="#why-gora" title="Why Gora?">Why Gora?</a></li><li><a class="toc-href" href="#who-is-gora-for" title="Who is Gora For?">Who is Gora For?</a></li><li><a class="toc-href" href="#background" title="Background">Background</a></li><li><a class="toc-href" href="#what-platforms-does-gora-work-on" title="What Platform(s) does Gora work on?">What Platform(s) does Gora work on?</a></li><li><a class="toc-href" href="#which-languagestechnologies-do-i-need-to-know-to-use-gora" title="Which Languages/Technologies do I need to know to use Gora?">Which Languages/Technologies do I need to know to use Gora?</a></li></ul></div> |
| <h2 id="why-gora">Why Gora?<a class="headerlink" href="#why-gora" title="Permalink">¶</a></h2> |
| <p>Although there are various excellent ORM frameworks such as JPA, Apache OpenJPA, Hibernate, etc 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 (for example). 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 <a href="http://hadoop.apache.org">Apache Hadoop™</a> support.</p> |
| <p>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:</p> |
| <ul> |
| <li>Data Persistence : Persisting objects to Column stores such as <a href="http://hbase.apache.org">Apache HBase™</a>, |
| <a href="http://cassandra.apache.org">Apache Cassandra™</a>, <a href="http://hypertable.org/">Hypertable</a>; |
| key-value stores such as <a href="http://www.project-voldemort.com/voldemort">Voldermort</a>, <a href="http://redis.io/">Redis</a>, |
| etc; SQL databases, such as <a href="http://www.mysql.com/">MySQL</a>, <a href="http://hsqldb.org/">HSQLDB</a>, flat files |
| in local file system of <a href="http://hadoop.apache.org/docs/stable/hdfs_user_guide.html">Hadoop HDFS</a>;</li> |
| <li>Data Access : An easy to use Java-friendly common API for accessing the data regardless of its location;</li> |
| <li>Indexing : Persisting objects to <a href="http://lucene.apache.org">Apache Lucene</a> and |
| <a href="http://lucene.apache.org/solr">Apache Solr</a> indexes, accessing/querying the data with Gora API;</li> |
| <li>Analysis : Accesing the data and making analysis through adapters for <a href="http://pig.apache.org">Apache Pig</a>, |
| <a href="http://hive.apache.org">Apache Hive</a> and <a href="http://www.cascading.org/">Cascading</a>;</li> |
| <li>MapReduce support : Out-of-the-box and extensive |
| <a href="http://hadoop.apache.org/docs/stable/mapred_tutorial.html">MapReduce</a> (<a href="http://hadoop.apache.org">Apache Hadoop™</a>) |
| support for data in the data store.</li> |
| </ul> |
| <h2 id="who-is-gora-for">Who is Gora For?<a class="headerlink" href="#who-is-gora-for" title="Permalink">¶</a></h2> |
| <p>Gora is a framework primarily aimed towards</p> |
| <ul> |
| <li><b>Hands on Developers</b> required to deal with data volumes which justify Big Data storage solutions classified under |
| the NoSQL umbrella.</li> |
| <li>Developers who seek a <b>Java friendly (REST-style) API</b> for mapping Java objects to and from |
| NoSQL technologies.</li> |
| <li><b>Development and/or Testing Engineers</b> looking to quickly set up and deploy applications on top of |
| Big Data storage mediums. This includes testing how applications are suited to underlying data stores |
| as data stores are easily interchanged.</li> |
| <li>Developers interested in <b>technology agnostic storage methods</b> for addressing data storage tasks.</li> |
| <li><b>Decision Makers</b> looking to implement a flexible storage framework under the <a href="http://www.apache.org/licenses/LICENSE-2.0">most liberal |
| open source license available</a>.</li> |
| </ul> |
| <h2 id="background">Background<a class="headerlink" href="#background" title="Permalink">¶</a></h2> |
| <p><b>ORM</b> stands for <a href="http://en.wikipedia.org/wiki/Object-relational_mapping">Object Relation Mapping</a>. 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.</p> |
| <p>Gora extends this concept to introduce <b>Object-to-Datastore Mapping</b> where the underlying |
| technological implementations rely mostly on non-relational data modeling. In essence |
| Gora provides storage abstraction for NoSQL technologies.</p> |
| <p>Gora differs from current solutions in that:</p> |
| <ul> |
| <li>Gora is specially focussed at NoSQL data stores, but also has limited support for SQL databases.</li> |
| <li>The main use case for Gora is to access/analyze big data using <a href="http://hadoop.apache.org">Apache Hadoop™</a>.</li> |
| <li>Gora uses <a href="http://avro.apache.org">Apache Avro</a> for bean definition, not byte code enhancement or annotations.</li> |
| <li>Object-to-data store mappings are backend specific, so that full data model can be utilized.</li> |
| <li>Gora is simple since it ignores complex SQL mappings.</li> |
| <li>Gora will support persistence, indexing and anaysis of data, using <a href="http://pig.apache.org">Apache Pig</a>, |
| <a href="http://lucene.apache.org">Apache Lucene</a>, <a href="http://hive.apache.org">Apache Hive</a>, etc.</li> |
| </ul> |
| <h2 id="what-platforms-does-gora-work-on">What Platform(s) does Gora work on?<a class="headerlink" href="#what-platforms-does-gora-work-on" title="Permalink">¶</a></h2> |
| <p>Gora <a href="https://builds.apache.org/view/All/job/gora-trunk/">builds nightly</a> on Ubuntu.</p> |
| <p>The software has been tested and verified to run on the following platforms:</p> |
| <ul> |
| <li>Mac OSX 10.9.3</li> |
| <li>Linux Mint</li> |
| <li>Ubuntu</li> |
| </ul> |
| <p>Gora does publish <b>.zip</b> artifacts for Windows users, however there is no gurantee |
| of platform compatibility.</p> |
| <p>Please provide platform compatibility issues and/or feedback to our <a href="./mailing_lists.html">mailing lists</a>.</p> |
| <h2 id="which-languagestechnologies-do-i-need-to-know-to-use-gora">Which Languages/Technologies do I need to know to use Gora?<a class="headerlink" href="#which-languagestechnologies-do-i-need-to-know-to-use-gora" title="Permalink">¶</a></h2> |
| <ul> |
| <li>Gora is written in Java.</li> |
| <li>Configuration however requires a working knowledge of syntax for JSON and XML.</li> |
| <li>You should be able to use the command line terminal.</li> |
| <li>You should be able to use Apache Maven from the command line.</li> |
| <li>You should be able to edit simple flat files using a text editor.</li> |
| </ul> |
| |
| </div> |
| <!-- /container (main block) --> |
| |
| <hr /> |
| |
| <div class="container"> |
| <footer> |
| <p> |
| Copyright © 2010-2024 The Apache Software Foundation. |
| Licensed under |
| <a href="http://www.apache.org/licenses/LICENSE-2.0" |
| >Apache License 2.0</a |
| >. |
| </p> |
| <p> |
| Apache Gora, Gora, Apache, the Apache feather logo, and the Apache |
| Gora project logo are trademarks of The Apache Software Foundation. |
| </p> |
| </footer> |
| </div> |
| <!-- /container --> |
| |
| <script src="/resources/js/bootstrap.bundle.min.js"></script> |
| <script type="text/javascript"> |
| stLight.options({ |
| publisher: "4059fafd-3891-49f9-8c96-e4100290d8e6", |
| doNotHash: false, |
| doNotCopy: false, |
| hashAddressBar: false, |
| }); |
| </script> |
| <script src="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.0.1/build/highlight.min.js"></script> |
| <script> |
| hljs.highlightAll(); |
| </script> |
| </body> |
| </html> |