clickhouse

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Jan 4, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

+marmot:name=ClickHouse +marmot:description=Discovers databases, tables, and views from ClickHouse instances. +marmot:status=experimental +marmot:features=Assets

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ClickHouseColumnFields

type ClickHouseColumnFields struct {
	ColumnName        string `json:"column_name" metadata:"column_name" description:"Column name"`
	DataType          string `json:"data_type" metadata:"data_type" description:"Column data type"`
	IsPrimaryKey      bool   `json:"is_primary_key" metadata:"is_primary_key" description:"Whether column is part of primary key"`
	IsSortingKey      bool   `json:"is_sorting_key" metadata:"is_sorting_key" description:"Whether column is part of sorting key"`
	DefaultKind       string `json:"default_kind" metadata:"default_kind" description:"Default value kind (DEFAULT, MATERIALIZED, ALIAS)"`
	DefaultExpression string `json:"default_expression" metadata:"default_expression" description:"Default value expression"`
	Comment           string `json:"comment" metadata:"comment" description:"Column comment/description"`
}

ClickHouseColumnFields represents ClickHouse column-specific metadata fields. +marmot:metadata

type ClickHouseDatabaseFields

type ClickHouseDatabaseFields struct {
	Database string `json:"database" metadata:"database" description:"Database name"`
	Engine   string `json:"engine" metadata:"engine" description:"Database engine type"`
	Comment  string `json:"comment" metadata:"comment" description:"Database comment/description"`
}

ClickHouseDatabaseFields represents ClickHouse database-specific metadata fields. +marmot:metadata

type ClickHouseTableFields

type ClickHouseTableFields struct {
	Database  string `json:"database" metadata:"database" description:"Parent database name"`
	TableName string `json:"table_name" metadata:"table_name" description:"Table name"`
	Engine    string `json:"engine" metadata:"engine" description:"Table engine (MergeTree, ReplacingMergeTree, etc.)"`
	RowCount  int64  `json:"row_count" metadata:"row_count" description:"Estimated row count"`
	SizeBytes int64  `json:"size_bytes" metadata:"size_bytes" description:"Table size in bytes"`
	Comment   string `json:"comment" metadata:"comment" description:"Table comment/description"`
}

ClickHouseTableFields represents ClickHouse table-specific metadata fields. +marmot:metadata

type Config

type Config struct {
	plugin.BaseConfig `json:",inline"`

	Host     string `json:"host" description:"ClickHouse server hostname or IP address" validate:"required"`
	Port     int    `json:"port" description:"ClickHouse native protocol port" default:"9000" validate:"omitempty,min=1,max=65535"`
	User     string `json:"user" description:"Username for authentication" validate:"required"`
	Password string `json:"password" description:"Password for authentication" sensitive:"true"`
	Database string `json:"database" description:"Default database to connect to" default:"default"`
	Secure   bool   `json:"secure" description:"Use TLS/SSL connection" default:"false"`

	IncludeDatabases    bool           `json:"include_databases" description:"Whether to discover databases" default:"true"`
	IncludeColumns      bool           `json:"include_columns" description:"Whether to include column information in table metadata" default:"true"`
	EnableMetrics       bool           `json:"enable_metrics" description:"Whether to include table metrics (row counts, sizes)" default:"true"`
	DatabaseFilter      *plugin.Filter `json:"database_filter,omitempty" description:"Filter configuration for databases"`
	TableFilter         *plugin.Filter `json:"table_filter,omitempty" description:"Filter configuration for tables"`
	ExcludeSystemTables bool           `json:"exclude_system_tables" description:"Whether to exclude system tables" default:"true"`
}

Config for ClickHouse plugin. +marmot:config

type Source

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

Source represents the ClickHouse plugin.

func (*Source) Discover

func (s *Source) Discover(ctx context.Context, pluginConfig plugin.RawPluginConfig) (*plugin.DiscoveryResult, error)

Discover discovers ClickHouse databases, tables, and views.

func (*Source) Validate

func (s *Source) Validate(rawConfig plugin.RawPluginConfig) (plugin.RawPluginConfig, error)

Validate validates and normalizes the plugin configuration.

Jump to

Keyboard shortcuts

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