Files
zcli-playground/clickhouse/main.go
T
2026-02-08 10:25:39 +01:00

70 lines
1.6 KiB
Go

package main
import (
"context"
"database/sql"
"fmt"
"net"
"time"
"github.com/ClickHouse/clickhouse-go/v2"
_ "github.com/go-sql-driver/mysql"
)
func main() {
var dialCount int
conn, err := clickhouse.Open(&clickhouse.Options{
Addr: []string{"node-stable-1.db.cluster.zerops:9000"},
Auth: clickhouse.Auth{
Database: "cluster",
Username: "zerops",
Password: "uvKq9EnwUnXqKQEYcVTYzhoQ",
},
DialContext: func(ctx context.Context, addr string) (net.Conn, error) {
dialCount++
var d net.Dialer
return d.DialContext(ctx, "tcp", addr)
},
Debug: true,
Debugf: func(format string, v ...any) {
fmt.Printf(format+"\n", v...)
},
Settings: clickhouse.Settings{
"max_execution_time": 60,
},
Compression: &clickhouse.Compression{
Method: clickhouse.CompressionLZ4,
},
DialTimeout: time.Second * 30,
MaxOpenConns: 5,
MaxIdleConns: 5,
ConnMaxLifetime: time.Duration(10) * time.Minute,
ConnOpenStrategy: clickhouse.ConnOpenInOrder,
BlockBufferSize: 10,
MaxCompressionBuffer: 10240,
ClientInfo: clickhouse.ClientInfo{ // optional, please see Client info section in the README.md
Products: []struct {
Name string
Version string
}{
{Name: "my-app", Version: "0.1"},
},
},
})
if err != nil {
panic(err)
}
err = conn.Ping(context.Background())
if err != nil {
panic(err)
}
conn2, err := sql.Open("mysql", "zerops:uvKq9EnwUnXqKQEYcVTYzhoQ@tcp(node-stable-1.db.cluster.zerops:9004)/")
if err != nil {
panic(err)
}
err = conn2.Ping()
if err != nil {
panic(err)
}
}