clickhouse

package
v0.0.0-...-7129fda Latest Latest
Warning

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

Go to latest
Published: Feb 5, 2024 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const BatchInsertSize = 10000

ClickHouse recommends keeping batch inserts between 10,000 and 100,000 rows: https://clickhouse.com/docs/en/cloud/bestpractices/bulk-inserts

Variables

This section is empty.

Functions

This section is empty.

Types

type ClickHouseDB

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

Implements db.AnalysisDB for ClickHouse.

func NewClickHouseDB

func NewClickHouseDB(config config.Config) (ClickHouseDB, error)

func (ClickHouseDB) CreateStoredSchemasTable

func (clickhouse ClickHouseDB) CreateStoredSchemasTable(ctx context.Context) error

func (ClickHouseDB) CreateTable

func (clickhouse ClickHouseDB) CreateTable(ctx context.Context, schema db.TableSchema) error

func (ClickHouseDB) DeleteTableSchema

func (clickhouse ClickHouseDB) DeleteTableSchema(
	ctx context.Context,
	table string,
) error

func (ClickHouseDB) DropTable

func (clickhouse ClickHouseDB) DropTable(
	ctx context.Context,
	table string,
) (alreadyDropped bool, err error)

func (ClickHouseDB) GetTableSchema

func (clickhouse ClickHouseDB) GetTableSchema(
	ctx context.Context,
	table string,
) (db.TableSchema, error)

func (ClickHouseDB) IngestData

func (clickhouse ClickHouseDB) IngestData(
	ctx context.Context,
	data db.DataSource,
	schema db.TableSchema,
) error

func (ClickHouseDB) RunAnalysisQuery

func (clickhouse ClickHouseDB) RunAnalysisQuery(
	ctx context.Context,
	analysis db.AnalysisQuery,
	table string,
) (db.AnalysisResult, error)

func (ClickHouseDB) StoreTableSchema

func (clickhouse ClickHouseDB) StoreTableSchema(
	ctx context.Context,
	schema db.TableSchema,
) error

type QueryBuilder

type QueryBuilder struct {
	strings.Builder
	// contains filtered or unexported fields
}

func (*QueryBuilder) AddFloatParameter

func (query *QueryBuilder) AddFloatParameter(f float64)

func (*QueryBuilder) AddIdentifier

func (query *QueryBuilder) AddIdentifier(identifier string)

func (*QueryBuilder) AddIntParameter

func (query *QueryBuilder) AddIntParameter(i int)

func (*QueryBuilder) AddParameter

func (query *QueryBuilder) AddParameter(value string, parameterType string)

func (*QueryBuilder) AddStringParameter

func (query *QueryBuilder) AddStringParameter(s string)

func (*QueryBuilder) WithParameters

func (query *QueryBuilder) WithParameters(ctx context.Context) context.Context

Returns a child context with the query builder's parameters added. See clickhouse-go example: https://github.com/ClickHouse/clickhouse-go/blob/ead3da532083960a02af9df734eeefb06af5d43b/examples/clickhouse_api/query_parameters.go#L37

func (*QueryBuilder) WriteAggregation

func (query *QueryBuilder) WriteAggregation(aggregation db.Aggregation) error

func (*QueryBuilder) WriteQuotedIdentifier

func (query *QueryBuilder) WriteQuotedIdentifier(identifier string) error

The query parameter syntax used by AddIdentifier is not available for all queries, such as for column names in CREATE TABLE statements. In those cases, we need to quote the provided identifier in either ` ` or " " (see https://clickhouse.com/docs/en/sql-reference/syntax#identifiers). But to prevent SQL injections, we then first need to ensure that the provided identifier does not contain the quote character - if the identifier contains both ` and ", an error is returned.

func (*QueryBuilder) WriteSortOrder

func (query *QueryBuilder) WriteSortOrder(sortOrder db.SortOrder) (ok bool)

func (*QueryBuilder) WriteSplit

func (query *QueryBuilder) WriteSplit(split db.Split) error

Jump to

Keyboard shortcuts

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