| <!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 -- Gora Accumulo Module" /> |
| <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-2023, The Apache Software Foundation" /> |
| |
| <!-- The styles --> |
| <link href="/resources/css/bootstrap.css" rel="stylesheet"> |
| <style type="text/css"> |
| body { |
| padding-top: 60px; |
| padding-bottom: 40px; |
| } |
| .headerlink { |
| visibility: hidden; |
| } |
| dt:hover > .headerlink, p:hover > .headerlink, td:hover > .headerlink, h1:hover > .headerlink, h2:hover > .headerlink, h3:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, h6:hover > .headerlink { |
| visibility: visible |
| } </style> |
| <link href="/resources/css/bootstrap-responsive.css" rel="stylesheet"> |
| <link href="/resources/css/gora.css" rel="stylesheet"> |
| |
| <style type="text/css"> |
| .stpulldown-gradient |
| { |
| background: #E1E1E1; |
| background: -moz-linear-gradient(top, #E1E1E1 0%, #A7A7A7 100%); /* firefox */ |
| background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#E1E1E1), color-stop(100%,#A7A7A7)); /* webkit */ |
| filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#E1E1E1', endColorstr='#A7A7A7',GradientType=0 ); /* ie */ |
| background: -o-linear-gradient(top, #E1E1E1 0%,#A7A7A7 100%); /* opera */ |
| color: #636363; |
| } |
| #stpulldown .stpulldown-logo |
| { |
| height: 40px; |
| width: 300px; |
| margin-left: 20px; |
| margin-top: 5px; |
| background:url("http://gora.apache.org/resources/img/feather-small.png") no-repeat; |
| } |
| </style> |
| <!-- HTML5 shim, for IE6-8 support of HTML5 elements --> |
| <!--[if lt IE 9]> |
| <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> |
| <![endif]--> |
| |
| <!-- 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™ - Gora Accumulo Module</title> |
| </head> |
| |
| <body> |
| <div class="navbar navbar-inverse navbar-fixed-top"> |
| <div class="navbar-inner"> |
| <div class="container"> |
| <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| </a> |
| <a class="brand" href="/index.html"><img src="/resources/img/gora-logo.png" alt="Apache Gora" title="Apache Gora"/></a> |
| <div class="nav-collapse collapse"> |
| <ul class="nav"> |
| <li><a href="/downloads.html">Downloads</a></li> |
| <li class="dropdown"> |
| <a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a> |
| <ul class="dropdown-menu pull-right"> |
| <li><a href="https://whimsy.apache.org/board/minutes/Gora.html">Board Reporting</a></li> |
| <li><a href="/contribute.html">Contribute</a></li> |
| <li><a href="/mailing_lists.html">Mailing Lists</a></li> |
| <li><a href="/credits.html">People</a></li> |
| <li><a href="/related.html">Related Projects</a></li> |
| </ul> |
| </li> |
| <li class="dropdown"> |
| <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a> |
| <ul class="dropdown-menu pull-right"> |
| <li><a href="/about.html">About</a></li> |
| <li><a href="/current/index.html">Current Documentation</a></li> |
| <li><a href="/current/api/javadoc.html">JavaDoc Documentation</a></li> |
| <li><a href="/current/tutorial.html">Gora Tutorial</a></li> |
| <li><a href="https://cwiki.apache.org/confluence/display/GORA/">Gora Wiki</a></li> |
| <li><a href="http://en.wikipedia.org/wiki/Apache_Gora">Gora Wikipedia Entry</a></li> |
| </ul> |
| </li> |
| <li class="dropdown"> |
| <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a> |
| <ul class="dropdown-menu pull-right"> |
| <li><a href="https://issues.apache.org/jira/browse/GORA">Issue Tracking</a></li> |
| <li><a href="/mailing_lists.html">Mailing Lists</a></li> |
| <li><a href="https://builds.apache.org/view/All/job/gora-trunk/">Nightly Builds</a></li> |
| <li><a href="https://analysis.apache.org/dashboard/index/76356">Sonar Analysis</a></li> |
| <li><a href="/version_control.html">Version Control</a></li> |
| <li><a href="/roadmap.html">Roadmap</a></li> |
| </ul> |
| </li> |
| <li class="dropdown"> |
| <a href="#" class="dropdown-toggle" data-toggle="dropdown"> |
| <img src="/resources/img/feather-small.png" alt="Apache" title="Apache" /> |
| <b class="caret"></b> |
| </a> |
| <ul class="dropdown-menu pull-right"> |
| <li><a href="http://www.apache.org">Apache Home</a></li> |
| <li><a href="http://www.apache.org/licenses/">Apache License</a></li> |
| <li><a href="http://www.apache.org/security/">Security</a></li> |
| <li><a href="http://www.apache.org/foundation/sponsorship.html">Support</a></li> |
| <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li> |
| </ul> |
| </li> |
| </ul> |
| <form id="search-form" class="navbar-search pull-right" action="http://www.google.com/cse" method="get"> |
| <input value="gora.apache.org" name="sitesearch" type="hidden" /> |
| <input class="search-query" name="q" id="query" type="text" /> |
| </form> |
| <script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script> |
| </div> <!--/.nav-collapse --> |
| </div> <!-- /container --> |
| </div> <!-- /navbar-inner --> |
| </div> <!-- /navbar --> |
| |
| <div class="container top-buffer" id="Gora_Gora Accumulo Module"> |
| |
| <h2 id="overview">Overview<a class="headerlink" href="#overview" title="Permalink">¶</a></h2> |
| <p>This is the main documentation for the gora-accumulo module which |
| enables <a href="http://accumulo.apache.org">Apache Accumulo</a> backend support for Gora.</p> |
| <div id="toc"><ul><li><a class="toc-href" href="#goraproperties" title="gora.properties">gora.properties</a></li><li><a class="toc-href" href="#gora-accumulo-mappings" title="Gora Accumulo mappings">Gora Accumulo mappings</a></li></ul></div> |
| <h2 id="goraproperties">gora.properties<a class="headerlink" href="#goraproperties" title="Permalink">¶</a></h2> |
| <ul> |
| <li><code>gora.datastore.default</code>=org.apache.gora.accumulo.store.AccumuloStore - Implementation of the storage class</li> |
| <li><code>gora.accumulo.mapping.file</code>=gora-accumulo-mapping.xml - The XML mapping file to be used</li> |
| <li><code>gora.datastore.accumulo.mock</code>=true - Mock Accumulo supplies mock implementations for much of the client API. It presently does not enforce users, logins, permissions, etc. It does support Iterators and Combiners. Note that MockAccumulo holds all data in memory, and will not retain any data or settings between runs.</li> |
| <li><code>gora.datastore.accumulo.instance</code>=a14 - An identifier for the Accumulo instance</li> |
| <li><code>gora.datastore.accumulo.zookeepers</code>=localhost - This value should specify the host:port for a running Zookeeper server or node. In this case the server happens to be running on localhost which is the default server configuration.</li> |
| <li><code>gora.datastore.accumulo.user</code>=root - This relates to the name of the client which will be communicating with Accumulo. This is also used for authentication purposes.</li> |
| <li><code>gora.datastore.accumulo.password</code>=secret - This relates to the password of the client which will be communicating with Accumulo. This is also used for authentication purposes.</li> |
| </ul> |
| <h2 id="gora-accumulo-mappings">Gora Accumulo mappings<a class="headerlink" href="#gora-accumulo-mappings" title="Permalink">¶</a></h2> |
| <p>Say we wished to map some Employee data and store it into the AccumuloStore.</p> |
| <pre><code><gora-otd> |
| <table name="Employee"> |
| <family name="info" /> |
| <config key="table.file.compress.blocksize" value="32K"/> |
| </table> |
| |
| <class name="org.apache.gora.examples.generated.Employee" keyClass="java.lang.String" table="Employee" |
| encoder="org.apache.gora.accumulo.encoders.BinaryEncoder"> |
| <field name="name" family="info" qualifier="nm"/> |
| <field name="dateOfBirth" family="info" qualifier="db"/> |
| <field name="ssn" family="info" qualifier="sn"/> |
| <field name="salary" family="info" qualifier="sl"/> |
| <field name="boss" family="info" qualifier="bs"/> |
| <field name="webpage" family="info" qualifier="wp"/> |
| </class> |
| </gora-otd> |
| </code></pre> |
| <p>Here you can see that we require the definition of two child elements within the <code>gora-otd</code> mapping configuration, namely;</p> |
| <p>The <strong>table</strong> element; where we specify:</p> |
| <ol> |
| <li> |
| <p>a parameter relating to the Accumulo table name (String) e.g. name="Employee",</p> |
| </li> |
| <li> |
| <p>a nested element containing the type and definition of any families we wish to create within Accumulo. In this case we create one family <em>info</em> which could have a combination of any of the following parameters;</p> |
| <p>a <strong>name</strong> (String): family name e.g. info</p> |
| <p>a <strong>config</strong> (key:value): which is a typical key/value-type configuration for Accumulo runtime configuration. A fully comprehensive list of options can be found <a href="http://accumulo.apache.org/1.5/accumulo_user_manual.html#_table_configuration">here</a></p> |
| </li> |
| </ol> |
| <p>The <strong>class</strong> element where we specify of persistent fields which values should map to. This contains;</p> |
| <ol> |
| <li> |
| <p>a parameter containing the Persistent class <strong>name</strong> e.g. <code>org.apache.gora.examples.generated.Employee</code>,</p> |
| </li> |
| <li> |
| <p>a parameter containing the <strong>keyClass</strong> e.g. <code>java.lang.String</code> which specifies the keys which map to the field values,</p> |
| </li> |
| <li> |
| <p>a parameter containing the Table <strong>name</strong> e.g. <code>Employee</code> which matches to the above Table definition,</p> |
| </li> |
| <li> |
| <p>a parameter containing the <strong>Encoder</strong> to be used e.g. <code>org.apache.gora.accumulo.encoders.BinaryEncoder</code> which defines an appropriate <a href="https://github.com/apache/gora/tree/master/gora-accumulo/src/main/java/org/apache/gora/accumulo/encoders">encoder</a> for for object field values.</p> |
| </li> |
| <li> |
| <p>finally nested child element(s) mapping fields which are to be persisted into Accumulo. These fields need to be configured such that they receive;</p> |
| <p>a parameter containing the <strong>name</strong> e.g. (name, dateOfBirth, ssn and salary respectively),</p> |
| <p>a parameter containing the column <strong>family</strong> to which they belong e.g. (all info in this case),</p> |
| <p>an optional parameter <strong>qualifier</strong>, which enables more granular control over the data to be persisted into HBase.</p> |
| </li> |
| </ol> |
| |
| |
| </div> <!-- /container (main block) --> |
| |
| <hr> |
| |
| <div class="container"> |
| <footer> |
| <p>Copyright © 2010-2023 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 --> |
| |
| <!-- The javascript |
| ================================================== --> |
| <!-- Placed at the end of the document so the pages load faster --> |
| <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"; type="text/javascript"></script> |
| <script src="/resources/js/bootstrap.min.js"></script> |
| <script type="text/javascript">stLight.options({publisher: "4059fafd-3891-49f9-8c96-e4100290d8e6", doNotHash: false, doNotCopy: false, hashAddressBar: false});</script> |
| <link rel="stylesheet" href="/resources/css/docco.css"> |
| <script src="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.0.1/build/highlight.min.js"></script> |
| <script>hljs.highlightAll();</script> |
| </body> |
| </html> |