package
1.8.1
Repository: https://github.com/kubemq-io/kubemq-targets.git
Documentation: pkg.go.dev

# README

Kubemq Mysql-gcp Target Connector

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

Prerequisites

The following are required to run the mysql target connector:

  • kubemq cluster
  • mysql server
  • kubemq-targets deployment

Configuration

Mysql target connector configuration properties:

Properties KeyRequiredDescriptionExample
max_idle_connectionsnoset max idle connections"10"
max_open_connectionsnoset max open connections"100"
connection_max_lifetime_secondsnoset max lifetime for connections in seconds"3600"
db_useryesgcp db user name files"<google user"
db_nameyesgcp db name"<google instance name"
db_passwordyesgcp db password"<google db password"

Example:

bindings:
  - name: kubemq-query-gcp-mysql
    source:
      kind: kubemq.query
      name: kubemq-query
      properties:
        address: "kubemq-cluster:50000"
        client_id: "kubemq-query-mysql-connector"
        auth_token: ""
        channel: "query.mysql"
        group:   ""
        auto_reconnect: "true"
        reconnect_interval_seconds: "1"
        max_reconnects: "0"
    target:
      kind: gcp.stores.mysql
      name: target-gcp-mysql
      properties:
        instance_connection_name: "test"
        db_user:                  "test"
        db_name:                  "test"
        db_password:              "Test123"
        max_idle_connections: "10"
        max_open_connections: "100"
        connection_max_lifetime_seconds: "3600"
        credentials: 'json'

Usage

Query Request

Query request metadata setting:

Metadata KeyRequiredDescriptionPossible values
methodyesset type of request"query"

Query request data setting:

Data KeyRequiredDescriptionPossible values
datayesquery stringbase64 bytes array

Example:

Query string: SELECT id,title,content,bignumber,boolvalue FROM post;

{
  "metadata": {
    "method": "query"
  },
  "data": "U0VMRUNUIGlkLHRpdGxlLGNvbnRlbnQsYmlnbnVtYmVyLGJvb2x2YWx1ZSBGUk9NIHBvc3Q7"
}

Exec Request

Exec request metadata setting:

Metadata KeyRequiredDescriptionPossible values
methodyesset type of request"exec"
isolation_levelnoset isolation level for exec operation""
"read_uncommitted"
"read_committed"
"repeatable_read"
"serializable"

Exec request data setting:

Data KeyRequiredDescriptionPossible values
datayesexec stringbase64 bytes array

Example:

Exec string:

INSERT INTO post(ID,TITLE,CONTENT,BIGNUMBER,BOOLVALUE) VALUES
	                       (0,NULL,'Content One',1231241241231231123,true),
	                       (1,'Title Two','Content Two',123125241231231123,false);
{
  "metadata": {
    "method": "exec",
    "isolation_level": "read_uncommitted"
  },
  "data": "SU5TRVJUIElOVE8gcG9zdChJRCxUSVRMRSxDT05URU5ULEJJR05VTUJFUixCT09MVkFMVUUpIFZBTFVFUwoJICAgICAgICAgICAgICAgICAgICAgICAoMCxOVUxMLCdDb250ZW50IE9uZScsMTIzMTI0MTI0MTIzMTIzMTEyMyx0cnVlKSwKCSAgICAgICAgICAgICAgICAgICAgICAgKDEsJ1RpdGxlIFR3bycsJ0NvbnRlbnQgVHdvJywxMjMxMjUyNDEyMzEyMzExMjMsZmFsc2UpOw==" 
}

Transaction Request

Transaction request metadata setting:

Metadata KeyRequiredDescriptionPossible values
methodyesset type of request"transaction"
isolation_levelnoset isolation level for exec operation""
"read_uncommitted"
"read_committed"
"repeatable_read"
"serializable"

Transaction request data setting:

Data KeyRequiredDescriptionPossible values
datayesstring stringbase64 bytes array

Example:

Transaction string:

DROP TABLE IF EXISTS post;
CREATE TABLE post (
         ID bigint,
         TITLE varchar(40),
         CONTENT varchar(255),
         BIGNUMBER bigint,
         BOOLVALUE boolean,
         CONSTRAINT pk_post PRIMARY KEY(ID)
       );
{
  "metadata": {
    "method": "transaction"
  },
  "data": "RFJPUCBUQUJMRSBJRiBFWElTVFMgcG9zdDsKCSAgICAgICBDUkVBVEUgVEFCTEUgcG9zdCAoCgkgICAgICAgICBJRCBiaWdpbnQsCgkgICAgICAgICBUSVRMRSB2YXJjaGFyKDQwKSwKCSAgICAgICAgIENPTlRFTlQgdmFyY2hhcigyNTUpLAoJCQkgQklHTlVNQkVSIGJpZ2ludCwKCQkJIEJPT0xWQUxVRSBib29sZWFuLAoJICAgICAgICAgQ09OU1RSQUlOVCBwa19wb3N0IFBSSU1BUlkgS0VZKElEKQoJICAgICAgICk7"
}