transforms

package
v1.5.5 Latest Latest
Warning

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

Go to latest
Published: May 18, 2020 License: Apache-2.0 Imports: 4 Imported by: 28

Documentation

Index

Constants

View Source
const (
	TransformAt = "transform_at"

	TransformTypeString  = "string"
	TransformTypeLong    = "long"
	TransformTypeFloat   = "float"
	TransformTypeBoolean = "bool"
	TransformTypeByte    = "[]byte"
)
View Source
const (
	StageBeforeParser = "before_parser"
	StageAfterParser  = "after_parser"
)
View Source
const (
	General = iota
	GetErr
	SetErr
)

Variables

View Source
var (
	KeyStage = Option{
		KeyName:       "stage",
		Element:       Radio,
		ChooseOnly:    true,
		ChooseOptions: []interface{}{StageAfterParser, StageBeforeParser},
		Default:       StageAfterParser,
		DefaultNoUse:  false,
		Description:   "transform运行的阶段(parser前还是parser后)(stage)",
		ToolTip:       "transform在parser前或在parser后进行运行",
		Type:          TransformTypeString,
		Advance:       true,
	}
	KeyFieldName = Option{
		KeyName:      "key",
		ChooseOnly:   false,
		Default:      "",
		Required:     true,
		Placeholder:  "my_field_keyname",
		DefaultNoUse: true,
		Description:  "要进行Transform变化的键(key)",
		ToolTip:      "对该字段的值进行transform变换",
		Type:         TransformTypeString,
	}
	KeyFieldNew = Option{
		KeyName:      "new",
		ChooseOnly:   false,
		Default:      "",
		Placeholder:  "new_field_keyname",
		DefaultNoUse: false,
		Description:  "新的字段名(new)",
		CheckRegex:   CheckPatternKey,
		ToolTip:      "生成的字段名称,不改变原有的字段",
		Type:         TransformTypeString,
	}
	KeyFieldNewRequired = Option{
		KeyName:      "new",
		ChooseOnly:   false,
		Default:      "",
		Required:     true,
		Placeholder:  "new_field_keyname",
		DefaultNoUse: false,
		Description:  "新的字段名(new)",
		CheckRegex:   CheckPatternKey,
		ToolTip:      "生成的字段名称,不改变原有的字段",
		Type:         TransformTypeString,
	}
	KeyTimezoneoffset = Option{
		KeyName:    "offset",
		ChooseOnly: true,
		ChooseOptions: []interface{}{0, -1, -2, -3, -4,
			-5, -6, -7, -8, -9, -10, -11, -12,
			1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12},
		Default:      0,
		DefaultNoUse: false,
		Description:  "时区偏移量(offset)",
		Advance:      true,
		CheckRegex:   "*",
		Type:         TransformTypeLong,
		ToolTip:      "如果key中带有时区信息,则以该时区作为offset的基础时区,否则以UTC时区为基础时区",
	}
	KeyKeepString = Option{
		KeyName:       "keep",
		Element:       Radio,
		ChooseOnly:    true,
		Default:       false,
		ChooseOptions: []interface{}{false, true},
		DefaultNoUse:  false,
		Description:   "值解析为字符串,不进行转换",
		Advance:       true,
		Type:          TransformTypeBoolean,
	}
	KeyOverride = Option{
		KeyName:       "override",
		Element:       Radio,
		ChooseOnly:    true,
		ChooseOptions: []interface{}{false, true},
		Default:       false,
		DefaultNoUse:  false,
		Description:   "要进行Transform变化的键已存在时,是否覆盖原有的值(override)",
		Type:          TransformTypeBoolean,
		Advance:       true,
	}
	KeyDiscardkey = Option{
		KeyName:       "discard_key",
		Element:       Radio,
		ChooseOnly:    true,
		ChooseOptions: []interface{}{false, true},
		Default:       false,
		DefaultNoUse:  false,
		Description:   "删除原始key指定的字段名和字段值",
		Type:          TransformTypeBoolean,
		Advance:       true,
	}
)
View Source
var Transformers = map[string]Creator{}

Functions

func Add

func Add(name string, creator Creator)

func GetTransformerOptions added in v1.4.3

func GetTransformerOptions() map[string][]Option

func GetTransformerUsages added in v1.4.3

func GetTransformerUsages() KeyValueSlice

func SetError added in v1.5.1

func SetError(errNum int, currentErr error, errType int, key string) (int, error)

func SetStatsInfo added in v1.5.1

func SetStatsInfo(err error, stats StatsInfo, errNum, dataLen int64, transformType string) (StatsInfo, error)

Types

type Creator

type Creator func() Transformer

type Initializer added in v1.5.2

type Initializer interface {
	Init() error
}

transformer 初始化方法接口,err 不为空表示初始化失败

type RawTransformInfo added in v1.5.4

type RawTransformInfo struct {
	CurData string
	Index   int
}

type RawTransformResult added in v1.5.4

type RawTransformResult struct {
	Index   int
	CurData string
	Err     error
	ErrNum  int
}

type RawTransformResultSlice added in v1.5.4

type RawTransformResultSlice []RawTransformResult

func (RawTransformResultSlice) Len added in v1.5.4

func (slice RawTransformResultSlice) Len() int

func (RawTransformResultSlice) Less added in v1.5.4

func (slice RawTransformResultSlice) Less(i, j int) bool

func (RawTransformResultSlice) Swap added in v1.5.4

func (slice RawTransformResultSlice) Swap(i, j int)

type ServerTansformer added in v1.5.3

type ServerTansformer interface {
	ServerConfig() map[string]interface{}
}

type StatsTransformer added in v1.5.1

type StatsTransformer interface {
	SetStats(string) StatsInfo
}

StatsTransformer 代表了一个带有统计功能的转换器

type TransformInfo added in v1.5.4

type TransformInfo struct {
	CurData Data
	Index   int
}

type TransformResult added in v1.5.4

type TransformResult struct {
	Index    int
	CurData  Data
	CurDatas []Data
	Err      error
	ErrNum   int
}

type TransformResultSlice added in v1.5.4

type TransformResultSlice []TransformResult

func (TransformResultSlice) Len added in v1.5.4

func (slice TransformResultSlice) Len() int

func (TransformResultSlice) Less added in v1.5.4

func (slice TransformResultSlice) Less(i, j int) bool

func (TransformResultSlice) Swap added in v1.5.4

func (slice TransformResultSlice) Swap(i, j int)

type Transformer

type Transformer interface {
	Description() string
	SampleConfig() string
	ConfigOptions() []Option
	Type() string
	Transform([]Data) ([]Data, error)
	RawTransform([]string) ([]string, error)
	Stage() string
	Stats() StatsInfo
}

Transformer plugin做数据变换的接口 注意: transform的规则是,出错要把数据原样返回

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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