Skip to content

Latest commit

 

History

History

keyspaces

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

Kubemq KeySpaces Target Connector

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

Prerequisites

The following are required to run the keyspaces target connector:

  • kubemq cluster
  • IAM user keyspaces credentials
  • aws keyspaces server/cluster
  • kubemq-targets deployment

Configuration

keyspaces target connector configuration properties:

Properties Key Required Description Example
hosts yes aws end point "localhost"
port yes keyspaces port "9142"
proto_version no keyspaces proto version "4"
replication_factor no set replication factor "1"
username no set keyspaces username "keyspaces"
password no set keyspaces password "keyspaces"
consistency no set keyspaces consistency "One","LocalOne","LocalQuorum" see https://docs.aws.amazon.com/keyspaces/latest/devguide/consistency.html
default_table no set table name "test"
default_keyspace no set keyspace name "test"
tls yes aws keyspace certificate aws tls link see https://docs.aws.amazon.com/keyspaces/latest/devguide/using_go_driver.html
timeout_seconds no set default timeout seconds "60"
connect_timeout_seconds no set default connect timeout seconds "60"

Example:

bindings:
  - name: kubemq-query-keyspaces
    source:
      kind: kubemq.query
      name: kubemq-query
      properties:
        address: "kubemq-cluster:50000"
        client_id: "kubemq-query-keyspaces-connector"
        auth_token: ""
        channel: "aws.query.keyspaces"
        group:   ""
        auto_reconnect: "true"
        reconnect_interval_seconds: "1"
        max_reconnects: "0"
    target:
      kind: aws.keyspaces
      name: aws-keyspaces
      properties:
        hosts: "cassandra.us-east-2.amazonaws.com"
        port: "9142"
        username: "keyspaces"
        password: "keyspaces"
        proto_version: "4"
        replication_factor: "1"
        consistency: "LocalQuorum"
        default_table: "test"
        default_keyspace: "test"
        tls: "https://www.amazontrust.com/repository/AmazonRootCA1.pem"

Usage

Get Request

Get request metadata setting:

Metadata Key Required Description Possible values
key yes keyspaces 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-keyspaces-key",
    "method": "get",
    "consistency": "",
    "table": "table",
    "keyspace": "keyspace"
  },
  "data": null
}

Set Request

Set request metadata setting:

Metadata Key Required Description Possible values
key yes keyspaces 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 keyspaces key base64 bytes array

Example:

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

Delete Request

Delete request metadata setting:

Metadata Key Required Description Possible values
key yes keyspaces 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-keyspaces-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" 
}