chembed

package
v0.24.5 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2025 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

Package embedch implements embedded clickhouse.

Parts of https://github.com/ClickHouse/ch-go/tree/main/cht were used.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

func New(ctx context.Context, lg *zap.Logger) error

New starts a new embedded ClickHouse server.

Types

type Cluster

type Cluster struct {
	Secret string  `xml:"secret,omitempty"`
	Shards []Shard `xml:"shard"`
}

type Clusters

type Clusters map[string]Cluster

func (Clusters) MarshalXML

func (c Clusters) MarshalXML(e *xml.Encoder, start xml.StartElement) error

type Config

type Config struct {
	XMLName xml.Name `xml:"clickhouse"`
	Logger  Logger   `xml:"logger"`
	HTTP    int      `xml:"http_port"`
	TCP     int      `xml:"tcp_port"`
	Host    string   `xml:"listen_host"`

	InterServerHTTP     *int    `xml:"interserver_http_port,omitempty"`
	InterServerHTTPHost *string `xml:"interserver_http_host,omitempty"`

	MaxServerMemoryUsage int `xml:"max_server_memory_usage,omitempty"`

	Path            string  `xml:"path"`
	TempPath        string  `xml:"tmp_path"`
	UserFilesPath   string  `xml:"user_files_path"`
	UserDirectories UserDir `xml:"user_directories"`

	MarkCacheSize int64 `xml:"mark_cache_size"`
	MMAPCacheSize int64 `xml:"mmap_cache_size"`

	OpenTelemetrySpanLog *OpenTelemetry `xml:"opentelemetry_span_log,omitempty"`
	// Sets the probability that the ClickHouse can start a trace for executed queries (if no parent trace context is supplied).
	OpenTelemetryStartTraceProbability *float64 `xml:"opentelemetry_start_trace_probability"`

	// ZooKeeper configures ZooKeeper nodes.
	ZooKeeper      []ZooKeeperNode `xml:"zookeeper>node,omitempty"`
	Macros         Map             `xml:"macros,omitempty"`
	DistributedDDL *DistributedDDL `xml:"distributed_ddl,omitempty"`

	// Keeper is config for clickhouse-keeper server.
	Keeper *KeeperConfig `xml:"keeper_server,omitempty"`

	RemoteServers Clusters `xml:"remote_servers,omitempty"`
}

Config for ClickHouse.

type CoordinationConfig

type CoordinationConfig struct {
	OperationTimeoutMs          int    `xml:"operation_timeout_ms,omitempty"`
	SessionTimeoutMs            int    `xml:"session_timeout_ms,omitempty"`
	RaftLogsLevel               string `xml:"raft_logs_level,omitempty"`
	HeartBeatIntervalMs         int    `xml:"heart_beat_interval_ms,omitempty"`
	DeadSessionCheckPeriodMs    int    `xml:"dead_session_check_period_ms,omitempty"`
	ElectionTimeoutLowerBoundMs int    `xml:"election_timeout_lower_bound_ms,omitempty"`
	ElectionTimeoutUpperBoundMs int    `xml:"election_timeout_upper_bound_ms,omitempty"`
}

type DistributedDDL

type DistributedDDL struct {
	Path               string `xml:"path,omitempty"`
	Profile            string `xml:"profile,omitempty"`
	PoolSize           int    `xml:"pool_size"`
	TaskMaxLifetime    int    `xml:"task_max_lifetime,omitempty"`
	CleanupDelayPeriod int    `xml:"cleanup_delay_period,omitempty"`
	MaxTasksInQueue    int    `xml:"max_tasks_in_queue,omitempty"`
}

type KeeperConfig

type KeeperConfig struct {
	XMLName             xml.Name           `xml:"keeper_server"`
	TCPPort             int                `xml:"tcp_port,omitempty"`
	ServerID            int                `xml:"server_id,omitempty"`
	LogStoragePath      string             `xml:"log_storage_path,omitempty"`
	SnapshotStoragePath string             `xml:"snapshot_storage_path,omitempty"`
	Coordination        CoordinationConfig `xml:"coordination_settings"`
	Raft                RaftConfig         `xml:"raft_configuration"`
}

KeeperConfig is config for clickhouse-keeper.

https://clickhouse.com/docs/en/operations/clickhouse-keeper/

type LogEntry

type LogEntry struct {
	QueryID  string // f9464441-7023-4df5-89e5-8d16ea6aa2dd
	Severity string // "Debug", "Information", "Trace"
	Name     string // "MemoryTracker", "executeQuery"
	Message  string // "Peak memory usage (for query): 0.00 B."
	ThreadID uint64 // 591781
}

func (LogEntry) Level

func (e LogEntry) Level() zapcore.Level

type Logger

type Logger struct {
	Level   string `xml:"level"`
	Console int    `xml:"console,omitempty"`
}

Logger settings.

type Map

type Map map[string]string

func (Map) MarshalXML

func (m Map) MarshalXML(e *xml.Encoder, start xml.StartElement) error

type OpenTelemetry

type OpenTelemetry struct {
	Engine          string `xml:"engine,omitempty"`
	Database        string `xml:"database,omitempty"`
	Table           string `xml:"table,omitempty"`
	FlushIntervalMs int    `xml:"flush_interval_milliseconds,omitempty"`
}

type RaftConfig

type RaftConfig struct {
	Servers []RaftServer `xml:"servers"`
}

type RaftServer

type RaftServer struct {
	ID       int    `xml:"id"`
	Hostname string `xml:"hostname"`
	Port     int    `xml:"port"`
}

type Replica

type Replica struct {
	Priority int    `xml:"priority,omitempty"`
	Host     string `xml:"host"`
	Port     int    `xml:"port"`
}

type Shard

type Shard struct {
	XMLName             xml.Name  `xml:"shard"`
	Weight              int       `xml:"weight,omitempty"`
	InternalReplication bool      `xml:"internal_replication,omitempty"`
	Replicas            []Replica `xml:"replica,omitempty"`
}

type UserDir

type UserDir struct {
	UsersXML UsersXML `xml:"users_xml"`
}

UserDir for ClickHouse.

type UsersXML

type UsersXML struct {
	Path string `xml:"path"`
}

UsersXML config for ClickHouse.

type ZooKeeperNode

type ZooKeeperNode struct {
	Index int    `xml:"index,omitempty,attr"`
	Host  string `xml:"host,omitempty"`
	Port  int    `xml:"port,omitempty"`
}

Jump to

Keyboard shortcuts

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