Kubemq keyspaces target connector allows services using kubemq server to access keyspaces database services.
The following are required to run the keyspaces target connector:
- kubemq cluster
- IAM user keyspaces credentials
- aws keyspaces server/cluster
- kubemq-targets deployment
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"
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 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 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 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 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"
}