Documentation ¶
Index ¶
- Constants
- type ClickHouseDB
- func (clickhouse ClickHouseDB) CreateStoredSchemasTable(ctx context.Context) error
- func (clickhouse ClickHouseDB) CreateTable(ctx context.Context, schema db.TableSchema) error
- func (clickhouse ClickHouseDB) DeleteTableSchema(ctx context.Context, table string) error
- func (clickhouse ClickHouseDB) DropTable(ctx context.Context, table string) (alreadyDropped bool, err error)
- func (clickhouse ClickHouseDB) GetTableSchema(ctx context.Context, table string) (db.TableSchema, error)
- func (clickhouse ClickHouseDB) IngestData(ctx context.Context, data db.DataSource, schema db.TableSchema) error
- func (clickhouse ClickHouseDB) RunAnalysisQuery(ctx context.Context, analysis db.AnalysisQuery, table string) (db.AnalysisResult, error)
- func (clickhouse ClickHouseDB) StoreTableSchema(ctx context.Context, schema db.TableSchema) error
- type QueryBuilder
- func (query *QueryBuilder) AddFloatParameter(f float64)
- func (query *QueryBuilder) AddIdentifier(identifier string)
- func (query *QueryBuilder) AddIntParameter(i int)
- func (query *QueryBuilder) AddParameter(value string, parameterType string)
- func (query *QueryBuilder) AddStringParameter(s string)
- func (query *QueryBuilder) WithParameters(ctx context.Context) context.Context
- func (query *QueryBuilder) WriteAggregation(aggregation db.Aggregation) error
- func (query *QueryBuilder) WriteQuotedIdentifier(identifier string) error
- func (query *QueryBuilder) WriteSortOrder(sortOrder db.SortOrder) (ok bool)
- func (query *QueryBuilder) WriteSplit(split db.Split) error
Constants ¶
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) 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 ¶
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