Author: buildbot Date: Tue Sep 3 18:44:28 2019 New Revision: 1049575 Log: Staging update by buildbot for gora
Added: websites/staging/gora/trunk/content/current/gora-kudu.html Modified: websites/staging/gora/trunk/content/ (props changed) Propchange: websites/staging/gora/trunk/content/ ------------------------------------------------------------------------------ --- cms:source-revision (original) +++ cms:source-revision Tue Sep 3 18:44:28 2019 @@ -1 +1 @@ -1866342 +1866343 Added: websites/staging/gora/trunk/content/current/gora-kudu.html ============================================================================== --- websites/staging/gora/trunk/content/current/gora-kudu.html (added) +++ websites/staging/gora/trunk/content/current/gora-kudu.html Tue Sep 3 18:44:28 2019 @@ -0,0 +1,336 @@ +<!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="d...@gora.apache.org" /> + + <META http-equiv="Content-Type" content="text/html;charset=UTF-8" /> + <META name="Description" content="Apache Gora -- Gora Kudu Module" /> + <META name="Keywords" content="Apache Gora NoSQL Framework" /> + <META name="Owner" content="d...@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-2014, 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; + } + </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 Kudu 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 Kudu Module"> + +<style type="text/css"> +/* The following code is added by mdx_elementid.py + It was originally lifted from http://subversion.apache.org/style/site.css */ +/* + * Hide class="elementid-permalink", except when an enclosing heading + * has the :hover property. + */ +.headerlink, .elementid-permalink { + visibility: hidden; +} +h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> +<h2 id="overview">Overview<a class="headerlink" href="#overview" title="Permanent link">¶</a></h2> +<p>This is the main documentation for the gora-kudu module. <b>gora-kudu</b> module enables <a href="https://kudu.apache.org">Apache Kudu</a> backend support for Gora.</p> +<div class="toc"> +<ul> +<li><a href="#overview">Overview</a></li> +<li><a href="#gora-kudu-properties-goraproperties">Gora Kudu Properties - gora.properties</a></li> +<li><a href="#gora-kudu-mappings-gora-kudu-mappingxml">Gora Kudu mappings - gora-kudu-mapping.xml</a><ul> +<li><a href="#class">Class</a></li> +<li><a href="#table">Table</a></li> +</ul> +</li> +<li><a href="#supported-data-types">Supported Data types</a></li> +</ul> +</div> +<h2 id="gora-kudu-properties-goraproperties">Gora Kudu Properties - gora.properties<a class="headerlink" href="#gora-kudu-properties-goraproperties" title="Permanent link">¶</a></h2> +<ul> +<li><code>gora.datastore.default=org.apache.gora.kudu.store.KuduStore</code> - Implementation of the persistent Java storage class for Kudu</li> +<li><code>gora.datastore.kudu.masterAddresses=localhost:7051</code> - Comma-separated list of "host:port" pairs of the Kudu masters</li> +<li><code>gora.datastore.kudu.flushMode=AUTO_FLUSH_SYNC</code> - Flush mode for the Kudu-client session. More details here: https://kudu.apache.org/apidocs/org/apache/kudu/client/SessionConfiguration.FlushMode.html.</li> +<li><code>gora.datastore.kudu.flushInterval=1000</code> - Flush interval in ms, which will be used for the next scheduling.</li> +<li><code>gora.datastore.kudu.bossCount=1</code> - Maximum number of boss threads. Optional. If not provided, 1 is used.</li> +<li><code>gora.datastore.kudu.defaultAdminOperationTimeoutMs=1000</code> - Default timeout used for administrative operations (e.g. createTable, deleteTable, etc). Optional. If not provided, defaults to 30s. A value of 0 disables the timeout.</li> +<li><code>gora.datastore.kudu.defaultOperationTimeoutMs=1000</code> - Default timeout used for user operations (using sessions and scanners). Optional. If not provided, defaults to 30s. A value of 0 disables the timeout.</li> +<li><code>gora.datastore.kudu.defaultSocketReadTimeoutMs=10000</code> - Default timeout to use when waiting on data from a socket. Optional. If not provided, defaults to 10s. A value of 0 disables the timeout.</li> +<li><code>gora.datastore.kudu.clientStatistics=true</code> - Client's collection of statistics. Statistics are enabled by default.</li> +<li><code>gora.datastore.kudu.workerCount=2</code> - Maximum number of worker threads. Optional. If not provided, (2 * the number of available processors) is used.</li> +</ul> +<h2 id="gora-kudu-mappings-gora-kudu-mappingxml">Gora Kudu mappings - gora-kudu-mapping.xml<a class="headerlink" href="#gora-kudu-mappings-gora-kudu-mappingxml" title="Permanent link">¶</a></h2> +<p>You should then create a gora-kudu-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> +<div class="codehilite"><pre><span class="nt"><gora-otd></span> + <span class="nt"><table</span> <span class="na">name =</span><span class="s">"Employee"</span><span class="nt">></span> + <span class="nt"><primaryKey</span> <span class="na">column=</span><span class="s">"pkssn"</span> <span class="na">type=</span><span class="s">"STRING"</span> <span class="nt">/></span> + <span class="nt"><hashPartition</span> <span class="na">numBuckets=</span><span class="s">"8"</span><span class="nt">/></span> + <span class="nt"></table></span> + <span class="nt"><class</span> <span class="na">name=</span><span class="s">"org.apache.gora.examples.generated.Employee"</span> <span class="na">keyClass=</span><span class="s">"java.lang.String"</span> <span class="na">table=</span><span class="s">"Employee"</span><span class="nt">></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"ssn"</span> <span class="na">column=</span><span class="s">"ssn"</span> <span class="na">type=</span><span class="s">"STRING"</span><span class="nt">/></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"value"</span> <span class="na">column=</span><span class="s">"value"</span> <span class="na">type=</span><span class="s">"STRING"</span><span class="nt">/></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"name"</span> <span class="na">column=</span><span class="s">"name"</span> <span class="na">type=</span><span class="s">"STRING"</span><span class="nt">/></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"dateOfBirth"</span> <span class="na">column=</span><span class="s">"dateOfBirth"</span> <span class="na">type=</span><span class="s">"INT64"</span><span class="nt">/></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"salary"</span> <span class="na">column=</span><span class="s">"salary"</span> <span class="na">type=</span><span class="s">"INT32"</span><span class="nt">/></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"boss"</span> <span class="na">column=</span><span class="s">"boss"</span> <span class="na">type=</span><span class="s">"BINARY"</span><span class="nt">/></span> + <span class="nt"><field</span> <span class="na">name=</span><span class="s">"webpage"</span> <span class="na">column=</span><span class="s">"webpage"</span> <span class="na">type=</span><span class="s">"BINARY"</span><span class="nt">/></span> + <span class="nt"></class></span> +<span class="nt"></gora-otd></span> +</pre></div> + + +<p>Here you can see that we require the definition of two child elements within the <code>gora-otd</code> mapping configuration: a class and a table.</p> +<h3 id="class">Class<a class="headerlink" href="#class" title="Permanent link">¶</a></h3> +<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 the fields to be mapped (field tag). The fields elements define the actual mapping between persistent object's attributes and the table's columns. These mapping have three customizable parameters: name which correspond to the object attribute's name. column which defines the column's name of the table to be associated with the attribute. And type which defines the data type of that column.</p> +<ul> +<li>The DECIMAL data type is parameterizable, so two additional attributes might be used in the XML mapping, scale and precision. Example:<div class="codehilite"><pre><span class="o"><</span><span class="n">field</span> <span class="n">name</span><span class="p">=</span>"<span class="n">value</span>" <span class="n">column</span><span class="p">=</span>"<span class="n">value</span>" <span class="n">type</span><span class="p">=</span>"<span class="n">DECIMAL</span>" <span class="n">scale</span><span class="p">=</span>â1â <span class="n">precision</span><span class="p">=</span>â1â<span class="o">/></span> +</pre></div> + + +</li> +</ul> +<h3 id="table">Table<a class="headerlink" href="#table" title="Permanent link">¶</a></h3> +<p>Each <b>table</b> element should contain the following elements;</p> +<ol> +<li> +<p>A <strong><code>primaryKey</code></strong> element defining which column is used by Kudu to identify the records stored in the DataStore. It has two attributes: <strong><code>column</code></strong> which defines the column's name of the table to be used as identifier for the records, and <strong><code>type</code></strong> which defines the data type of the aforementioned column.</p> +</li> +<li> +<p>A partition definition for the table, which could be either a hash partition or a range partition. For more information about Partitioning in Kudu refer to <a href="https://kudu.apache.org/docs/schema_design.html#partitioning">https://kudu.apache.org/docs/schema_design.html#partitioning</a></p> +</li> +</ol> +<p>asdhfjalkjhf</p> +<p>Example for Hash partition:</p> +<div class="codehilite"><pre> <span class="o"><</span><span class="n">hashPartition</span> <span class="n">numBuckets</span><span class="p">=</span>"8"<span class="o">/></span> +</pre></div> + + +<p>The numBuckets attribute specifies the number of hash buckets to be used as partitions.</p> +<p>Example for Range partition:</p> +<div class="codehilite"><pre> <span class="o"><</span><span class="n">rangePartition</span> <span class="n">lower</span><span class="p">=</span>"" <span class="n">upper</span> <span class="p">=</span>"1000"<span class="o">/></span> + + <span class="o"><</span><span class="n">rangePartition</span> <span class="n">lower</span><span class="p">=</span>"1000" <span class="n">upper</span> <span class="p">=</span>""<span class="o">/></span> +</pre></div> + + +<p>The lower and upper attributes define the boundaries of each partition. This partition is applied only on the primary key column of the table. Take into consideration that the lower bound is inclusive and the upper one is not.</p> +<h2 id="supported-data-types">Supported Data types<a class="headerlink" href="#supported-data-types" title="Permanent link">¶</a></h2> +<p>Description of supported <b>type</b> values:</p> +<table class="table"> +<thead> +<tr> +<th>Kudu datatype</th> +<th>Java datatype</th> +</tr> +</thead> +<tbody> +<tr> +<td>BOOL</td> +<td>boolean</td> +</tr> +<tr> +<td>INT8</td> +<td>byte</td> +</tr> +<tr> +<td>INT32</td> +<td>short</td> +</tr> +<tr> +<td>INT16</td> +<td>int</td> +</tr> +<tr> +<td>INT64</td> +<td>long</td> +</tr> +<tr> +<td>UNIXTIME_MICROS</td> +<td>java.sql.Timestamp</td> +</tr> +<tr> +<td>FLOAT</td> +<td>float</td> +</tr> +<tr> +<td>DOUBLE</td> +<td>double</td> +</tr> +<tr> +<td>DECIMAL</td> +<td>BigDecimal</td> +</tr> +<tr> +<td>STRING</td> +<td>String</td> +</tr> +<tr> +<td>BINARY</td> +<td>byte[]</td> +</tr> +</tbody> +</table> +<p>For more details about supported data types refer to <a href="https://kudu.apache.org/docs/schema_design.html#column-design">https://kudu.apache.org/docs/schema_design.html#column-design</a></p> + + </div> <!-- /container (main block) --> + + <hr> + + <div class="container"> + <footer> + <p>Copyright © 2010-2018 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> +</body> +</html>