package clickIterSource import ( "context" "fmt" "github.com/ClickHouse/clickhouse-go/v2" "github.com/ClickHouse/clickhouse-go/v2/lib/driver" "github.com/gogf/gf/v2/frame/g" "time" ) var Ch_analysis driver.Conn func init() { var ( ctx = context.Background() err error ) Ch_analysis, err = clickhouse.Open(&clickhouse.Options{ Addr: []string{g.Cfg().MustGet(ctx, "database_ck.address", "").String()}, DialTimeout: 10 * time.Second, MaxIdleConns: g.Cfg().MustGet(ctx, "database_ck.maxIdleConns", 5).Int(), MaxOpenConns: g.Cfg().MustGet(ctx, "database_ck.maxOpenConns", 5).Int(), Auth: clickhouse.Auth{ Database: g.Cfg().MustGet(ctx, "database_ck.dbName", "").String(), Username: g.Cfg().MustGet(ctx, "database_ck.username", "").String(), Password: g.Cfg().MustGet(ctx, "database_ck.password", "").String(), }, Debugf: func(format string, v ...interface{}) { fmt.Printf(format, v) }, }) if err != nil { g.Log().Panicf(ctx, "初始化数据源异常 %v", err) } if err := Ch_analysis.Ping(ctx); err != nil { if exception, ok := err.(*clickhouse.Exception); ok { g.Log().Panicf(ctx, "clickhouse Ping %s", exception.Message) } g.Log().Panicf(ctx, "初始化数据源异常 %v", err) } g.Log().Infof(ctx, "初始化clickhouse数据源成功") }