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.