Cassandra

Kubemq cassandra target connector allows services using kubemq server to access cassandra database services.

Prerequisites

The following are required to run the cassandra target connector:

  • kubemq cluster

  • cassandra server/cluster

  • kubemq-targets deployment

Configuration

Cassandra target connector configuration properties:

Properties Key

Required

Description

Example

hosts

yes

cassandra hosts addresses

"localhost"

port

yes

cassandra port

"9042"

proto_version

no

cassandra proto version

"4"

replication_factor

no

set replication factor

"1"

username

no

set cassandra username

"cassandra"

password

no

set cassandra password

"cassandra"

consistency

no

set cassandra consistency

"", "All","One","Two"

"Quorum","LocalQuorum","EachQuorum"

"LocalOne","Any"

default_table

no

set table name

"test"

default_keyspace

no

set keyspace name

"test"

timeout_seconds

no

set default timeout seconds

"60"

connect_timeout_seconds

no

set default connect timeout seconds

"60"

Example:

bindings:
  - name: kubemq-query-cassandra
    source:
      kind: kubemq.query
      name: kubemq-query
      properties:
        address: "kubemq-cluster:50000"
        client_id: "kubemq-query-cassandra-connector"
        auth_token: ""
        channel: "query.cassandra"
        group:   ""
        auto_reconnect: "true"
        reconnect_interval_seconds: "1"
        max_reconnects: "0"
    target:
      kind: stores.cassandra
      name: target-cassandra
      properties:
        hosts: "localhost"
        port: "9042"
        username: "cassandra"
        password: "cassandra"
        proto_version: "4"
        replication_factor: "1"
        consistency: "All"
        default_table: "test"
        default_keyspace: "test"
        connect_timeout_seconds: "60"
        timeout_seconds: "60"

Usage

Get Request

Get request metadata setting:

Metadata Key

Required

Description

Possible values

key

yes

cassandra key string

any string

method

yes

get

"get"

consistency

yes

set consistency

"",strong","eventual"

table

yes

table name

"table

keyspace

yes

key space name

"keyspace"

Example:

{
  "metadata": {
    "key": "your-cassandra-key",
    "method": "get",
    "consistency": "",
    "table": "table",
    "keyspace": "keyspace"
  },
  "data": null
}

Set Request

Set request metadata setting:

Metadata Key

Required

Description

Possible values

key

yes

cassandra key string

any string

method

yes

method name set

"set"

consistency

yes

set consistency

"",strong","eventual"

table

yes

table name

"table

keyspace

yes

key space name

"keyspace"

Set request data setting:

Data Key

Required

Description

Possible values

data

yes

data to set for the cassandra key

base64 bytes array

Example:

{
  "metadata": {
    "key": "your-cassandra-key",
    "method": "set",
    "consistency": "",
    "table": "table",
    "keyspace": "keyspace"
  },
  "data": "c29tZS1kYXRh" 
}

Delete Request

Delete request metadata setting:

Metadata Key

Required

Description

Possible values

key

yes

cassandra key string

any string

method

yes

method name delete

"delete"

table

yes

table name

"table

keyspace

yes

key space name

"keyspace"

Example:

{
  "metadata": {
    "key": "your-cassandra-key",
    "method": "set",
    "table": "table",
    "keyspace": "keyspace"
  },
  "data": null
}

Query Request

Query request metadata setting:

Metadata Key

Required

Description

Possible values

method

yes

method name query

"query"

consistency

yes

set consistency

"",strong","eventual"

Query request data setting:

Data Key

Required

Description

Possible values

data

yes

query string

base64 bytes array

Example:

Query string: SELECT value FROM test.test WHERE key = 'some-key

{
  "metadata": {
    "method": "query",
    "consistency": "strong"
  },
  "data": "U0VMRUNUIHZhbHVlIEZST00gdGVzdC50ZXN0IFdIRVJFIGtleSA9ICdzb21lLWtleQ=="
}

Exec Request

Exec request metadata setting:

Metadata Key

Required

Description

Possible values

method

yes

set type of request

"exec"

consistency

yes

set consistency

"",strong","eventual"

Exec request data setting:

Data Key

Required

Description

Possible values

data

yes

exec string

base64 bytes array

Example:

Exec string:

INSERT INTO test.test (key, value) VALUES ('some-key',textAsBlob('some-data'))
{
  "metadata": {
    "method": "exec",
    "consistency": "strong"
  },
  "data": "SU5TRVJUIElOVE8gdGVzdC50ZXN0IChrZXksIHZhbHVlKSBWQUxVRVMgKCdzb21lLWtleScsdGV4dEFzQmxvYignc29tZS1kYXRhJykp" 
}

Last updated