percona

package
v1.7.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 26, 2023 License: Apache-2.0 Imports: 13 Imported by: 0

README

Kubemq percona Target Connector

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

Prerequisites

The following are required to run the percona target connector:

  • kubemq cluster
  • percona server
  • kubemq-targets deployment

Configuration

percona target connector configuration properties:

Properties Key Required Description Example
connection yes percona connection string address "root:percona@(localhost:3306)/store?charset=utf8&parseTime=True&loc=Local"
max_idle_connections no set max idle connections "10"
max_open_connections no set max open connections "100"
connection_max_lifetime_seconds no set max lifetime for connections in seconds "3600"

Example:

bindings:
- name: percona
  source:
    kind: kubemq.query
    properties:
      address: localhost:50000
      channel: query.percona
  target:
    kind: stores.percona
    properties:
      connection: root:root@(localhost:3306)/percona?charset=utf8&parseTime=True&loc=Local
  properties: {}

Usage

Query Request

Query request metadata setting:

Metadata Key Required Description Possible values
method yes set type of request "query"

Query request data setting:

Data Key Required Description Possible values
data yes query string base64 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 Key Required Description Possible values
method yes set type of request "exec"
isolation_level no set isolation level for exec operation ""
"read_uncommitted"
"read_committed"
"repeatable_read"
"serializable"

Exec request data setting:

Data Key Required Description Possible values
data yes exec string base64 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 Key Required Description Possible values
method yes set type of request "transaction"
isolation_level no set isolation level for exec operation ""
"read_uncommitted"
"read_committed"
"repeatable_read"
"serializable"

Transaction request data setting:

Data Key Required Description Possible values
data yes string string base64 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"
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Connector

func Connector() *common.Connector

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client is a Client state store

func New

func New() *Client

func (*Client) Connector

func (c *Client) Connector() *common.Connector

func (*Client) Do

func (c *Client) Do(ctx context.Context, req *types.Request) (*types.Response, error)

func (*Client) Exec

func (c *Client) Exec(ctx context.Context, meta metadata, value []byte) (*types.Response, error)

func (*Client) Init

func (c *Client) Init(ctx context.Context, cfg config.Spec, log *logger.Logger) error

func (*Client) Query

func (c *Client) Query(ctx context.Context, meta metadata, value []byte) (*types.Response, error)

func (*Client) Stop

func (c *Client) Stop() error

func (*Client) Transaction

func (c *Client) Transaction(ctx context.Context, meta metadata, value []byte) (*types.Response, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL