Author: djkevincr Date: Sun Nov 11 18:47:34 2018 New Revision: 1846356 URL: http://svn.apache.org/viewvc?rev=1846356&view=rev Log: Fix GORA-540 - adding doc for Ignite datastore
Added: gora/site/trunk/content/current/gora-ignite.md Modified: gora/site/trunk/content/current/index.md Added: gora/site/trunk/content/current/gora-ignite.md URL: http://svn.apache.org/viewvc/gora/site/trunk/content/current/gora-ignite.md?rev=1846356&view=auto ============================================================================== --- gora/site/trunk/content/current/gora-ignite.md (added) +++ gora/site/trunk/content/current/gora-ignite.md Sun Nov 11 18:47:34 2018 @@ -0,0 +1,68 @@ +Title: Gora Ignite Module + +##Overview +This is the main documentation for the gora-ignite module. <b>gora-ignite</b> module enables [Apache Ignite](https://ignite.apache.org/) backend support for Gora. + +[TOC] + +##Gora Ignite Properties - gora.properties + +* <code>gora.datastore.default=org.apache.gora.ignite.store.IgniteStore</code> - Implementation of the persistent Java storage class for Ignite +* <code>gora.datastore.ignite.schema=PUBLIC</code> - Property pointing to the Schema of the Ignite instance +* <code>gora.datastore.ignite.host=localhost</code> - Property pointing to the host where the server is running +* <code>gora.datastore.ignite.port=10800</code> - Property pointing to the port where the server is running +* <code>gora.datastore.ignite.user=username</code> - An optional property defining the username of the server if available +* <code>gora.datastore.ignite.password=password</code> - An optional property defining the password of the server if available +* <code>gora.datastore.ignite.additionalConfigurations=</code> - An optional property defining additional configurations for the Ignite connection, format and available parameters: [Ignite JDBC Parameters](https://apacheignite-sql.readme.io/docs/jdbc-driver#section-parameters) + +##Gora Ignite mappings - gora-ignite-mapping.xml +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: + + <gora-otd> + <class name="org.apache.gora.examples.generated.Employee" keyClass="java.lang.String" table="Employee"> + <primarykey column="pkssn" type="VARCHAR" /> + <field name="ssn" column="ssn" type="VARCHAR"/> + <field name="name" column="name" type="VARCHAR"/> + <field name="dateOfBirth" column="dateOfBirth" type="BIGINT"/> + <field name="salary" column="salary" type="INT"/> + <field name="boss" column="boss" type="BINARY"/> + <field name="webpage" column="webpage" type="BINARY"/> + </class> + </gora-otd> + +Here you can see that we require the definition of child elements within the <code>gora-otd</code> mapping configuration. + +Each <b>class</b> element should contain the following elements; + +1. a parameter defining the Persistent class name e.g. <b>org.apache.gora.examples.generated.Employee</b>, + +2. a parameter defining the keyClass e.g. <b>java.lang.String</b> which specifies the key which maps to the field values, + +3. a parameter defining the table e.g. <b>Employee</b> which will be used to persist each Gora object + +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). + +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. + +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. + +Notice that complex structures such 3-union fields are mapped using Binary fields through [Avro](https://avro.apache.org/) serialization. + + +##Supported Data types +Description of supported <b>type</b> values: + +| Type value | Description | +|------------|---------------------------------| +| BINARY | Store as Byte[] | +| BOOLEAN | Store as Boolean | +| INT | Store as Integer | +| TINYINT | Store as Byte | +| SMALLINT | Store as Short | +| BIGINT | Store as Long | +| DECIMAL | Store as BigDecimal | +| DOUBLE | Store as Double | +| REAL | Store as Float | +| VARCHAR | Store as Unicode string | + +A more detailed list of data types supported by Ignite and its equivalents in Java refer to [Ignite JDBC Data types](https://apacheignite-sql.readme.io/docs/data-types) Modified: gora/site/trunk/content/current/index.md URL: http://svn.apache.org/viewvc/gora/site/trunk/content/current/index.md?rev=1846356&r1=1846355&r2=1846356&view=diff ============================================================================== --- gora/site/trunk/content/current/index.md (original) +++ gora/site/trunk/content/current/index.md Sun Nov 11 18:47:34 2018 @@ -39,6 +39,7 @@ following modules are currently implemen * [gora-mongodb](./gora-mongodb.html): Module for [MongoDB](http://www.mongodb.org/) backend and MongoStore implementation; * [gora-solr](./gora-solr.html): Module for [Apache Solr](http://lucene.apache.org/solr) backend and SolrStore implementation; * [gora-aerospike](./gora-aerospike.html): Module for [Aerospike](http://www.aerospike.com/) backend and Aerospike implementation; +* [gora-ignite](./gora-ignite.html): Module for [Apache Ignite](https://ignite.apache.org/) backend and IgniteStore implementation; * [gora-tutorial](./tutorial.html): The Gora LogManager tutorial; * gora-sources-dist: Packaging module used to build and distribute Gora sources during project releases;