Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 66F58200CF4 for ; Sun, 3 Sep 2017 12:56:05 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 65D3616456C; Sun, 3 Sep 2017 10:56:05 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 5D58B16456B for ; Sun, 3 Sep 2017 12:56:04 +0200 (CEST) Received: (qmail 37926 invoked by uid 500); 3 Sep 2017 10:56:03 -0000 Mailing-List: contact commits-help@gora.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@gora.apache.org Delivered-To: mailing list commits@gora.apache.org Received: (qmail 37917 invoked by uid 99); 3 Sep 2017 10:56:01 -0000 Received: from Unknown (HELO svn01-us-west.apache.org) (209.188.14.144) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 03 Sep 2017 10:56:01 +0000 Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id 59E633A047B for ; Sun, 3 Sep 2017 10:55:59 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1807139 - /gora/site/trunk/content/current/gora-cassandra.md Date: Sun, 03 Sep 2017 10:55:58 -0000 To: commits@gora.apache.org From: djkevincr@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20170903105600.59E633A047B@svn01-us-west.apache.org> archived-at: Sun, 03 Sep 2017 10:56:05 -0000 Author: djkevincr Date: Sun Sep 3 10:55:57 2017 New Revision: 1807139 URL: http://svn.apache.org/viewvc?rev=1807139&view=rev Log: GORA-521 add documentaiton for cassandra store Modified: gora/site/trunk/content/current/gora-cassandra.md Modified: gora/site/trunk/content/current/gora-cassandra.md URL: http://svn.apache.org/viewvc/gora/site/trunk/content/current/gora-cassandra.md?rev=1807139&r1=1807138&r2=1807139&view=diff ============================================================================== --- gora/site/trunk/content/current/gora-cassandra.md (original) +++ gora/site/trunk/content/current/gora-cassandra.md Sun Sep 3 10:55:57 2017 @@ -24,16 +24,28 @@ enables [Apache Cassandra](http://cassan Implementation of the persistent Java storage class - gora.cassandra.mapping.file= + gora.cassandrastore.mapping.file= /path/to/gora-cassandra-mapping.xml No The XML mapping file to be used. If no value is used this defaults to gora-cassandra-mapping.xml - gora.cassandra.servers= - localhost:9160 + gora.cassandrastore.cassandraServers= + localhost Yes - This value should specify the host:port for a running Cassandra server or node. In this case the server happens to be running on localhost at port 9160 which is the default Cassandra server configuration. It is important that the host matches that specified in gora-cassandra-mapping.xml + This value should specify the host for a running Cassandra server or node. In this case the server happens to be running on localhost which is the default Cassandra server configuration. + + + gora.cassandrastore.port= + 9042 + Yes + This value should specify the cql port for a running Cassandra server or node. In this case the server happens to be running on 9042 port which is the default Cassandra server configuration. + + + gora.cassandrastore.clusterName= + Test Cluster + No + This value should specify the cassandra cluster name for a running Cassandra server or node. In this case the server has configured to run with Cassandra cluster name as 'Test Cluster' which is the default Cassandra server configuration. gora.cassandrastore.username= @@ -47,80 +59,115 @@ enables [Apache Cassandra](http://cassan No The authentication details for passing a password to the CassandraHostConfigurator. This will be required if security is required for Cassandra reads and writes. - + + gora.cassandrastore.cassandraSerializationType= + AVRO/NATIVE + No + The serialization type for persist into the cassandra data store. default value is Native serialization type + + ##Gora Cassandra mappings -Say we wished to map some Employee data and store it into the CassandraStore. +Say we wished to map some CassandraRecord data and store it into the CassandraStore. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - Here you can see that we require the definition of two child elements within the gora-otd mapping configuration, namely; The keyspace element; where we specify: -1. a parameter containing the Cassandra keyspace schema name e.g. Employee, +1. a parameter containing the Cassandra keyspace schema name e.g. RecordKeySpace, + +2. a parameter containing the durable write enabled property in the Cassandra keyspace e.g. false, More about durable write can be found [here](http://docs.datastax.com/en/cassandra/2.1/cassandra/dml/dml_durability_c.html). -2. a parameter containing the host e.g. localhost. The value of the host attribute of keyspace tag should match exactly what is in - gora.properties file. Essentially this means that if you are using port number, you should - use it everywhere regardless of whether it is the default port or not. - At runtime Gora will otherwise try to connect to localhost. For more information please see [here](https://issues.apache.org/jira/browse/GORA-269) - -3. a parameter containing the Cassandra cluster name e.g. Gora Cassandra Test Cluster, - -4. a parameter containing a placement_strategy: The value of 'placement_strategy' should be a fully qualifed class name that is known to - the cassansra cluster, not the application or Gora. As of this writing, the classes that ship - with cassandra are: - org.apache.cassandra.locator.SimpleStrategy and - org.apache.cassandra.locator.NetworkTopologyStrategy. - gora-cassandra will use SimpleStrategy by default if no value for this attribute is specified. Finally - it should be noted that the placement_strategy attribute of the keyspace tag - will only apply if Gora creates the Cassandra Keyspace. More about placement strategies can be found - [here](http://www.datastax.com/documentation/cassandra/1.2/cassandra/architecture/architectureDataDistributeReplication_c.html). +3. the child element placementStrategy containing the Cassandra placementStrategy details, a parameter containing the Cassandra placement strategy name, e.g. SimpleStrategy, gora-cassandra will use SimpleStrategy by default if no value for this attribute is specified. More about placement strategies can be found [here](http://docs.datastax.com/en/archived/cassandra/2.0/cassandra/architecture/architectureDataDistributeReplication_c.html). -5. a parameter containing a replication_factor attribute with value integer. Again the replacation_factor value associated with the Keyspace tag +4. a parameter containing a replicationFactor attribute with value integer. Again the replicationFactor value associated with the Keyspace tag will only apply if Gora creates the Keyspace and will have no effect if this is being used against - an existing keyspace. the default value for 'replication_factor' is '1'. N.B.In Cassandra this property is required if the placement_strategy - class is SimpleStrategy; otherwise, not used. This value essentially relates to the number of replicas of data you want to reside on multiple nodes. + an existing keyspace. the default value for 'replicationFactor' is '1'. -6. A child element family containing the name, type and gc_grace_seconds parameters for column families we wish to create within Cassandra. In this case we create three columns; p, f and sc the last of which contains an optional type attribute which further defines this as a super column. - Additonally, column families p and f assign a value of 5 to gc_grace_seconds. In Gora we define the default value of 'gc_grace_seconds' as '0' which is ONLY VIABLE FOR A SINGLE NODE - CLUSTER. You should update this value according to your [cluster configuration](https://wiki.apache.org/cassandra/StorageConfiguration). - Columns marked with a gc_grace_seconds exist for a configured time period. More information can be found [here](http://www.datastax.com/documentation/cassandra/2.0/cassandra/dml/dml_about_deletes_c.html) The class element specifying persistent fields which values should map to. This element contains; -1. a parameter containing the Persistent class name e.g. org.apache.gora.examples.generated.Employee, +1. a parameter containing the Persistent class name e.g. org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord, + +2. a parameter containing the keyClass e.g. org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraKey which specifies the keys which map to the field values, + +3. a parameter containing the keyspace e.g. RecordKeySpace which matches to the above keyspace definition, + +4. a parameter containing the table name e.g. CassandraRecord, + +5. a parameter containing the allow filtering e.g. true, More about allow filtering can be found [here](https://www.datastax.com/dev/blog/allow-filtering-explained-2). + +6. a child element(s) field which represent fields which are to be persisted into Cassandra. These need to be configured such that they receive the following; + + finally a parameter name e.g. (name, dateOfBirth, ssn and salary respectively) which map to Gora field name, + + a parameter containing the column name e.g. name, + + a parameter containing the data type of the column e.g. text, + + an optional parameter primarykey, which indicates the primary key. + + +The cassandraKey element specifying composite key fields which is used in keyClass, This is optional, this element should be added only when composite keys are available; + +1. a child element(s) partitionKey which represent cassandra partition key + + a child element(s) compositeKey which represent cassandra composite partition key + + a child element(s) field which represent partition key fields which are to be persisted into Cassandra. These need to be configured such that they receive the following; + + a parameter name e.g. (name, dateOfBirth, ssn and salary respectively) which map to Gora field name, -2. a parameter containing the keyClass e.g. java.lang.String which specifies the keys which map to the field values, + a parameter containing the column name e.g. name, -3. a parameter containing the keyspace e.g. Employee which matches to the above keyspace definition, + a parameter containing the data type of the column text, -4. finally a child element(s) field which represent fields which are to be persisted into Cassandra. These need to be configured such that they receive the following; +2. a child element(s) clusterKey which represent cassandra cluster key - a parameter name e.g. (name, dateOfBirth, ssn and salary respectively), + a child element(s) key which represents column key fields which needs to be add clustered key. - a parameter containing the column family to which the field belongs e.g. (all p in this case), + a parameter containing the column name e.g. name, - an optional parameter qualifier, which enables more granular control over the data to be persisted into Cassandra. + a parameter containing the Order type of the column to be applied e.g. desc, - an optional patameter ttl (time to live): the value of the 'ttl' attribute should most likely always - be zero unless you want Cassandra to create Tombstones and delete portions of your - data once this period expires. Any positive value is read and bound to the number - of seconds after which the value for that field will disappear. The default value of ttl - is '0'. \ No newline at end of file