spanner

package
v1.7.1 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: 17 Imported by: 0

README

Kubemq spanner target Connector

Kubemq gcp-spanner target connector allows services using kubemq server to access google spanner server.

Prerequisites

The following are required to run the gcp-spanner target connector:

  • kubemq cluster
  • gcp-spanner set up
  • kubemq-targets deployment

Configuration

spanner target connector configuration properties:

Properties Key Required Description Example
db yes gcp spanner db name "/mydb" should conform to pattern "^projects/(?P[^/]+)/instances/(?P[^/]+)/databases/(?P[^/]+)$"
credentials yes gcp credentials files "<google json credentials"

Example:

bindings:
  - name: kubemq-query-gcp-spanner
    source:
      kind: kubemq.query
      name: kubemq-query
      properties:
        address: "kubemq-cluster:50000"
        client_id: "kubemq-query-gcp-spanner-connector"
        auth_token: ""
        channel: "query.gcp.spanner"
        group:   ""
        auto_reconnect: "true"
        reconnect_interval_seconds: "1"
        max_reconnects: "0"
    target:
      kind: gcp.spanner
      name: target-gcp-spanner
      properties:
        db: "id"
        credentials: 'json'

Usage

Query Request

create query request.

Query metadata setting:

Metadata Key Required Description Possible values
method yes type of method "query"
query yes the query body "select * from table"

Example:

{
  "metadata": {
    "method": "query",
    "query": "select * from table"
  },
  "data": null
}
Read Table Request by columns

read table by table_name

Read Table metadata setting:

Metadata Key Required Description Possible values
method yes type of method "read"
table_name yes table name to read from ""

Example:

{
  "metadata": {
    "method": "read",
    "table_name": "<myTable>"
  },
  "data": "W1wiaWRcIixcIm5hbWVcIl0="
}
Insert Or Update Table

insert or update a table

Insert Or Update metadata setting:

Metadata Key Required Description Possible values
method yes type of method "insert","update","insert_or_update"

Example:

{
  "metadata": {
    "method": "insert_or_update"
  },
  "data": "W3tcInRhYmxlX25hbWVcIjpcInRlc3QyXCIsXCJjb2x1bW5fbmFtZXNcIjpbXCJpZFwiLFwibmFtZVwiXSxcImNvbHVtbl92YWx1ZXNcIjpbMTcsXCJuYW1lMVwiXSxcImNvbHVtbl90eXBlXCI6W1wiSU5UNjRcIixcIlNUUklOR1wiXX0se1widGFibGVfbmFtZVwiOlwidGVzdDJcIixcImNvbHVtbl9uYW1lc1wiOltcImlkXCIsXCJuYW1lXCJdLFwiY29sdW1uX3ZhbHVlc1wiOlsxOCxcIm5hbWUyXCJdLFwiY29sdW1uX3R5cGVcIjpbXCJJTlQ2NFwiLFwiU1RSSU5HXCJdfV0="
}

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
}

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) Init

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

func (*Client) Stop

func (c *Client) Stop() error

type Column

type Column struct {
	Name  string      `json:"name"`
	Value interface{} `json:"value"`
}

type InsertOrUpdate

type InsertOrUpdate struct {
	TableName   string        `json:"table_name"`
	ColumnName  []string      `json:"column_names"`
	ColumnValue []interface{} `json:"column_values"`
	ColumnType  []string      `json:"column_type"`
}

type Row

type Row struct {
	Columns []*Column `json:"columns"`
}

Jump to

Keyboard shortcuts

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