hbase

package
v0.2.14 Latest Latest
Warning

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

Go to latest
Published: Nov 3, 2022 License: MIT Imports: 10 Imported by: 0

README

database/hbase

项目简介

Hbase Client,进行封装加入了链路追踪和统计。

usage

package main

import (
	"context"
	"fmt"

	"github.com/mapgoo-lab/atreus/pkg/database/hbase"
)

func main() {
	config := &hbase.Config{Zookeeper: &hbase.ZKConfig{Addrs: []string{"localhost"}}}
	client := hbase.NewClient(config)

	values := map[string]map[string][]byte{"name": {"firstname": []byte("hello"), "lastname": []byte("world")}}
	ctx := context.Background()

	_, err := client.PutStr(ctx, "user", "user1", values)
	if err != nil {
		panic(err)
	}

	result, err := client.GetStr(ctx, "user", "user1")
	if err != nil {
		panic(err)
	}
	fmt.Printf("%v", result)
}
依赖包

1.gohbase

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

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

Client hbase client.

func NewClient

func NewClient(config *Config, options ...gohbase.Option) *Client

NewClient new a hbase client.

func NewRawClient

func NewRawClient(config *Config, options ...gohbase.Option) *Client

NewRawClient new a hbase client without prometheus metrics and dapper trace hook.

func (*Client) AddHook

func (c *Client) AddHook(hookFn HookFunc)

AddHook add hook function.

func (*Client) Append

func (c *Client) Append(ctx context.Context, table string, key string, values map[string]map[string][]byte, options ...func(hrpc.Call) error) (*hrpc.Result, error)

Append do a append command.

func (*Client) Close

func (c *Client) Close() error

Close close client.

func (*Client) Delete

func (c *Client) Delete(ctx context.Context, table string, key string, values map[string]map[string][]byte, options ...func(hrpc.Call) error) (*hrpc.Result, error)

Delete is used to perform Delete operations on a single row. To delete entire row, values should be nil.

To delete specific families, qualifiers map should be nil:

 map[string]map[string][]byte{
		"cf1": nil,
		"cf2": nil,
 }

To delete specific qualifiers:

 map[string]map[string][]byte{
     "cf": map[string][]byte{
			"q1": nil,
			"q2": nil,
		},
 }

To delete all versions before and at a timestamp, pass hrpc.Timestamp() option. By default all versions will be removed.

To delete only a specific version at a timestamp, pass hrpc.DeleteOneVersion() option along with a timestamp. For delete specific qualifiers request, if timestamp is not passed, only the latest version will be removed. For delete specific families request, the timestamp should be passed or it will have no effect as it's an expensive operation to perform.

func (*Client) Get

func (c *Client) Get(ctx context.Context, table, key []byte, options ...func(hrpc.Call) error) (result *hrpc.Result, err error)

Get get result for the given table and row key. NOTE: if err != nil then result != nil, if result not exists result.Cells length is 0

func (*Client) GetStr

func (c *Client) GetStr(ctx context.Context, table, key string, options ...func(hrpc.Call) error) (result *hrpc.Result, err error)

GetStr do a get command. NOTE: if err != nil then result != nil, if result not exists result.Cells length is 0

func (*Client) Increment

func (c *Client) Increment(ctx context.Context, table string, key string, values map[string]map[string][]byte, options ...func(hrpc.Call) error) (int64, error)

Increment the given values in HBase under the given table and key.

func (*Client) IncrementSingle

func (c *Client) IncrementSingle(ctx context.Context, table string, key string, family string, qualifier string, amount int64, options ...func(hrpc.Call) error) (int64, error)

IncrementSingle increment the given value by amount in HBase under the given table, key, family and qualifier.

func (*Client) Ping

func (c *Client) Ping(ctx context.Context) (err error)

Ping ping.

func (*Client) PutStr

func (c *Client) PutStr(ctx context.Context, table string, key string, values map[string]map[string][]byte, options ...func(hrpc.Call) error) (*hrpc.Result, error)

PutStr insert the given family-column-values in the given row key of the given table.

func (*Client) Scan

func (c *Client) Scan(ctx context.Context, table []byte, options ...func(hrpc.Call) error) (scanner hrpc.Scanner, err error)

Scan do a scan command.

func (*Client) ScanAll

func (c *Client) ScanAll(ctx context.Context, table []byte, options ...func(hrpc.Call) error) (results []*hrpc.Result, err error)

ScanAll do scan command and return all result NOTE: if err != nil the results is safe for range operate even not result found

func (*Client) ScanRange

func (c *Client) ScanRange(ctx context.Context, table, startRow, stopRow []byte, options ...func(hrpc.Call) error) (scanner hrpc.Scanner, err error)

ScanRange get a scanner for the given table and key range. The range is half-open, i.e. [startRow; stopRow[ -- stopRow is not included in the range.

func (*Client) ScanRangeStr

func (c *Client) ScanRangeStr(ctx context.Context, table, startRow, stopRow string, options ...func(hrpc.Call) error) (hrpc.Scanner, error)

ScanRangeStr get a scanner for the given table and key range. The range is half-open, i.e. [startRow; stopRow[ -- stopRow is not included in the range.

func (*Client) ScanStr

func (c *Client) ScanStr(ctx context.Context, table string, options ...func(hrpc.Call) error) (hrpc.Scanner, error)

ScanStr scan string

func (*Client) ScanStrAll

func (c *Client) ScanStrAll(ctx context.Context, table string, options ...func(hrpc.Call) error) ([]*hrpc.Result, error)

ScanStrAll scan string NOTE: if err != nil the results is safe for range operate even not result found

type Config

type Config struct {
	Zookeeper           *ZKConfig
	RPCQueueSize        int
	FlushInterval       xtime.Duration
	EffectiveUser       string
	RegionLookupTimeout xtime.Duration
	RegionReadTimeout   xtime.Duration
	TestRowKey          string
}

Config hbase config

type HookFunc

type HookFunc func(ctx context.Context, call hrpc.Call, customName string) func(err error)

HookFunc hook function call before every method and hook return function will call after finish.

func MetricsHook

func MetricsHook(config *Config) HookFunc

MetricsHook if stats is nil use stat.DB as default.

func NewSlowLogHook

func NewSlowLogHook(threshold time.Duration) HookFunc

NewSlowLogHook log slow operation.

func TraceHook

func TraceHook(component, instance string) HookFunc

TraceHook create new hbase trace hook.

type ZKConfig

type ZKConfig struct {
	Root    string
	Addrs   []string
	Timeout xtime.Duration
}

ZKConfig Server&Client settings.

Jump to

Keyboard shortcuts

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