blob: 99a290ed2a280cbbfe3dbb8a02877d2aed985c68 [file] [log] [blame]
<!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 Ignite 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&trade; - Gora Ignite 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 Ignite Module">
<h2 id="overview">Overview<a class="headerlink" href="#overview" title="Permalink">&para;</a></h2>
<p>This is the main documentation for the gora-ignite module. <b>gora-ignite</b> module enables <a href="https://ignite.apache.org/">Apache Ignite</a> backend support for Gora.</p>
<div id="toc"><ul><li><a class="toc-href" href="#gora-ignite-properties-goraproperties" title="Gora Ignite Properties - gora.properties">Gora Ignite Properties - gora.properties</a></li><li><a class="toc-href" href="#gora-ignite-mappings-gora-ignite-mappingxml" title="Gora Ignite mappings - gora-ignite-mapping.xml">Gora Ignite mappings - gora-ignite-mapping.xml</a></li><li><a class="toc-href" href="#supported-data-types" title="Supported Data types">Supported Data types</a></li></ul></div>
<h2 id="gora-ignite-properties-goraproperties">Gora Ignite Properties - gora.properties<a class="headerlink" href="#gora-ignite-properties-goraproperties" title="Permalink">&para;</a></h2>
<ul>
<li><code>gora.datastore.default=org.apache.gora.ignite.store.IgniteStore</code> - Implementation of the persistent Java storage class for Ignite</li>
<li><code>gora.datastore.ignite.schema=PUBLIC</code> - Property pointing to the Schema of the Ignite instance</li>
<li><code>gora.datastore.ignite.host=localhost</code> - Property pointing to the host where the server is running</li>
<li><code>gora.datastore.ignite.port=10800</code> - Property pointing to the port where the server is running</li>
<li><code>gora.datastore.ignite.user=username</code> - An optional property defining the username of the server if available</li>
<li><code>gora.datastore.ignite.password=password</code> - An optional property defining the password of the server if available</li>
<li><code>gora.datastore.ignite.additionalConfigurations=</code> - An optional property defining additional configurations for the Ignite connection, format and available parameters: <a href="https://apacheignite-sql.readme.io/docs/jdbc-driver#section-parameters">Ignite JDBC Parameters</a></li>
</ul>
<h2 id="gora-ignite-mappings-gora-ignite-mappingxml">Gora Ignite mappings - gora-ignite-mapping.xml<a class="headerlink" href="#gora-ignite-mappings-gora-ignite-mappingxml" title="Permalink">&para;</a></h2>
<p>You should then create a gora-ignite-mapping.xml which will describe how you want to store each of your Gora persistent objects and which primary keys you want to use:</p>
<pre><code>&lt;gora-otd&gt;
&lt;class name="org.apache.gora.examples.generated.Employee" keyClass="java.lang.String" table="Employee"&gt;
&lt;primarykey column="pkssn" type="VARCHAR" /&gt;
&lt;field name="ssn" column="ssn" type="VARCHAR"/&gt;
&lt;field name="name" column="name" type="VARCHAR"/&gt;
&lt;field name="dateOfBirth" column="dateOfBirth" type="BIGINT"/&gt;
&lt;field name="salary" column="salary" type="INT"/&gt;
&lt;field name="boss" column="boss" type="BINARY"/&gt;
&lt;field name="webpage" column="webpage" type="BINARY"/&gt;
&lt;/class&gt;
&lt;/gora-otd&gt;
</code></pre>
<p>Here you can see that we require the definition of child elements within the <code>gora-otd</code> mapping configuration.</p>
<p>Each <b>class</b> element should contain the following elements;</p>
<ol>
<li>
<p>a parameter defining the Persistent class name e.g. <b>org.apache.gora.examples.generated.Employee</b>,</p>
</li>
<li>
<p>a parameter defining the keyClass e.g. <b>java.lang.String</b> which specifies the key which maps to the field values,</p>
</li>
<li>
<p>a parameter defining the table e.g. <b>Employee</b> which will be used to persist each Gora object</p>
</li>
</ol>
<p>In addition, within the class element we should define two type of child elements: a primary key (<b>primarykey</b> tag) and some fields (<b>field</b> tag).</p>
<p>The primary key element defines which column is used by Ignite to identify the records stored in the DataStore. It has two costumizable parameters: <b>column</b> which defines the column's name of the table to be used as identifier for the records. And <b>type</b> which defines the data type of the aforementioned column.</p>
<p>The fields elements define the actual mapping between persistent object's attributes and the table's columns. These mapping have three customizable parameters: <b>name</b> which correspond to the object attribute's name. <b>column</b> which defines the column's name of the table to be assosiated with the attribute. And <b>type</b> which defines the data type of that column.</p>
<p>Notice that complex structures such 3-union fields are mapped using Binary fields through <a href="https://avro.apache.org/">Avro</a> serialization.</p>
<h2 id="supported-data-types">Supported Data types<a class="headerlink" href="#supported-data-types" title="Permalink">&para;</a></h2>
<p>Description of supported <b>type</b> values:</p>
<table class="table">
<thead>
<tr>
<th>Type value</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>BINARY</td>
<td>Store as Byte[]</td>
</tr>
<tr>
<td>BOOLEAN</td>
<td>Store as Boolean</td>
</tr>
<tr>
<td>INT</td>
<td>Store as Integer</td>
</tr>
<tr>
<td>TINYINT</td>
<td>Store as Byte</td>
</tr>
<tr>
<td>SMALLINT</td>
<td>Store as Short</td>
</tr>
<tr>
<td>BIGINT</td>
<td>Store as Long</td>
</tr>
<tr>
<td>DECIMAL</td>
<td>Store as BigDecimal</td>
</tr>
<tr>
<td>DOUBLE</td>
<td>Store as Double</td>
</tr>
<tr>
<td>REAL</td>
<td>Store as Float</td>
</tr>
<tr>
<td>VARCHAR</td>
<td>Store as Unicode string</td>
</tr></tbody></table>
<p>A more detailed list of data types supported by Ignite and its equivalents in Java refer to <a href="https://apacheignite-sql.readme.io/docs/data-types">Ignite JDBC Data types</a></p>
</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>