Documentation ¶
Index ¶
- type Clickhouse
- type ClickhouseCfg
- type ClickhouseImpl
- type ClickhouseOpt
- type Client
- type Closable
- type Countable
- type Logger
- type Option
- type Options
- func (o *Options) BatchSize() uint
- func (o *Options) FlushInterval() uint
- func (o *Options) SetBatchSize(batchSize uint) *Options
- func (o *Options) SetDebugMode(isDebug bool) *Options
- func (o *Options) SetFlushInterval(flushIntervalMs uint) *Options
- func (o *Options) SetLogger(logger Logger) *Options
- func (o *Options) SetQueueEngine(queue Queueable) *Options
- func (o *Options) SetRetryIsEnabled(enabled bool) *Options
- type Queueable
- type Retryable
- type View
- type Writeable
- type Writer
- type WriterBlocking
- type WriterBlockingImpl
- type WriterImpl
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Clickhouse ¶ added in v0.0.2
type Clickhouse interface { Insert(context.Context, View, []buffer.RowSlice) (uint64, error) GetConnection() *sqlx.DB Close() error }
func NewClickhouseWithOptions ¶ added in v0.0.2
func NewClickhouseWithOptions(ctx context.Context, cfg *ClickhouseCfg, options ...Option) (Clickhouse, error)
func NewClickhouseWithSqlx ¶ added in v0.0.2
func NewClickhouseWithSqlx(conn *sqlx.DB) (Clickhouse, error)
type ClickhouseCfg ¶ added in v0.0.2
type ClickhouseImpl ¶ added in v0.0.2
type ClickhouseImpl struct {
// contains filtered or unexported fields
}
func (*ClickhouseImpl) Close ¶ added in v0.0.2
func (ci *ClickhouseImpl) Close() error
func (*ClickhouseImpl) GetConnection ¶ added in v0.0.4
func (ci *ClickhouseImpl) GetConnection() *sqlx.DB
func (*ClickhouseImpl) Insert ¶ added in v0.0.2
func (ci *ClickhouseImpl) Insert(ctx context.Context, view View, rows []buffer.RowSlice) (uint64, error)
Insert Currently, the client library does not support the JSONEachRow format, only native byte blocks There is no support for user interfaces as well as simple execution of an already prepared request The entire batch bid is implemented through so-called "transactions", although Clickhouse does not support them - it is only a client solution for preparing requests
func (*ClickhouseImpl) SetInsertTimeout ¶ added in v0.0.2
func (ci *ClickhouseImpl) SetInsertTimeout(timeout uint)
type ClickhouseOpt ¶ added in v0.0.4
type ClickhouseOpt struct {
// contains filtered or unexported fields
}
type Client ¶ added in v0.0.2
type Client interface { // Options returns the options associated with client Options() *Options // HandleStream method for processing data x and sending it to Clickhouse HandleStream(View, *buffer.Batch) error // WriteBatch method of sending data to Clickhouse is used implicitly in a non - blocking record, // and explicitly in a blocking record WriteBatch(context.Context, View, *buffer.Batch) error // Writer returns the asynchronous, non-blocking, Writer client. // Ensures using a single Writer instance for each table pair. Writer(View, buffer.Buffer) Writer // WriterBlocking returns the synchronous, blocking, WriterBlocking client. // Ensures using a single WriterBlocking instance for each table pair. WriterBlocking(View) WriterBlocking // RetryClient Get retry client RetryClient() Retryable // Close ensures all ongoing asynchronous write clients finish. Close() }
func NewClientWithOptions ¶
func NewClientWithOptions(ctx context.Context, clickhouse Clickhouse, options *Options) Client
type Logger ¶ added in v0.0.5
type Logger interface { Log(message interface{}) Logf(format string, v ...interface{}) }
type Option ¶ added in v0.0.4
type Option func(e *ClickhouseOpt)
func WithConnMaxLifetime ¶ added in v0.0.4
WithConnMaxLifetime set `maxIdleConns` to ClickhouseOpt
func WithMaxIdleConns ¶ added in v0.0.4
WithMaxIdleConns set `maxIdleConns` to ClickhouseOpt
func WithMaxOpenConns ¶ added in v0.0.4
WithMaxOpenConns set `maxOpenConns` to ClickhouseOpt
type Options ¶ added in v0.0.2
type Options struct {
// contains filtered or unexported fields
}
Options holds write configuration properties
func DefaultOptions ¶ added in v0.0.2
func DefaultOptions() *Options
DefaultOptions returns Options object with default values
func (*Options) FlushInterval ¶ added in v0.0.2
FlushInterval returns flush interval in ms
func (*Options) SetBatchSize ¶ added in v0.0.2
SetBatchSize sets number of rows sent in single request
func (*Options) SetDebugMode ¶ added in v0.0.5
func (*Options) SetFlushInterval ¶ added in v0.0.2
SetFlushInterval sets flush interval in ms in which is buffer flushed if it has not been already written
func (*Options) SetQueueEngine ¶ added in v0.0.5
func (*Options) SetRetryIsEnabled ¶ added in v0.0.5
type Queueable ¶ added in v0.0.5
type Queueable interface { Queue(packet *retryPacket) Retries() <-chan *retryPacket }
type Writeable ¶ added in v0.0.5
type Writeable interface {
Write(ctx context.Context, view View, batch *buffer.Batch) (uint64, error)
}
func NewDefaultWriter ¶ added in v0.0.5
func NewDefaultWriter(conn Clickhouse) Writeable
type Writer ¶ added in v0.0.2
type Writer interface { // WriteRow writes asynchronously line protocol record into bucket. WriteRow(vector buffer.Inline) // Flush forces all pending writes from the buffer to be sent Flush() // Errors returns a channel for reading errors which occurs during async writes. Errors() <-chan error // Close writer Close() }
Writer is client interface with non-blocking methods for writing rows asynchronously in batches into an Clickhouse server. Writer can be used concurrently. When using multiple goroutines for writing, use a single WriteAPI instance in all goroutines.
type WriterBlocking ¶ added in v0.0.2
type WriterBlocking interface { // WriteRow writes row(s) into bucket. // WriteRow writes without implicit batching. Batch is created from given number of records // Non-blocking alternative is available in the Writer interface WriteRow(ctx context.Context, row ...buffer.Inline) error }
func NewWriterBlocking ¶ added in v0.0.2
func NewWriterBlocking(streamer Client, view View) WriterBlocking
type WriterBlockingImpl ¶ added in v0.0.2
type WriterBlockingImpl struct {
// contains filtered or unexported fields
}
type WriterImpl ¶ added in v0.0.2
type WriterImpl struct {
// contains filtered or unexported fields
}
func (*WriterImpl) Close ¶ added in v0.0.2
func (w *WriterImpl) Close()
Close finishes outstanding write operations, stop background routines and closes all channels
func (*WriterImpl) Errors ¶ added in v0.0.2
func (w *WriterImpl) Errors() <-chan error
Errors returns a channel for reading errors which occurs during async writes. Must be called before performing any writes for errors to be collected. The chan is unbuffered and must be drained or the writer will block.
func (*WriterImpl) Flush ¶ added in v0.0.2
func (w *WriterImpl) Flush()
Flush forces all pending writes from the buffer to be sent
func (*WriterImpl) WriteRow ¶ added in v0.0.2
func (w *WriterImpl) WriteRow(rower buffer.Inline)
WriteRow writes asynchronously line protocol record into bucket. WriteRow adds record into the buffer which is sent on the background when it reaches the batch size.