clickIterSource.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package clickIterSource
  2. import (
  3. "context"
  4. "fmt"
  5. "github.com/ClickHouse/clickhouse-go/v2"
  6. "github.com/ClickHouse/clickhouse-go/v2/lib/driver"
  7. "github.com/gogf/gf/v2/frame/g"
  8. "time"
  9. )
  10. var Ch_analysis driver.Conn
  11. func init() {
  12. var (
  13. ctx = context.Background()
  14. err error
  15. )
  16. Ch_analysis, err = clickhouse.Open(&clickhouse.Options{
  17. Addr: []string{g.Cfg().MustGet(ctx, "database_ck.address", "").String()},
  18. DialTimeout: 10 * time.Second,
  19. MaxIdleConns: g.Cfg().MustGet(ctx, "database_ck.maxIdleConns", 5).Int(),
  20. MaxOpenConns: g.Cfg().MustGet(ctx, "database_ck.maxOpenConns", 5).Int(),
  21. Auth: clickhouse.Auth{
  22. Database: g.Cfg().MustGet(ctx, "database_ck.dbName", "").String(),
  23. Username: g.Cfg().MustGet(ctx, "database_ck.username", "").String(),
  24. Password: g.Cfg().MustGet(ctx, "database_ck.password", "").String(),
  25. },
  26. Debugf: func(format string, v ...interface{}) {
  27. fmt.Printf(format, v)
  28. },
  29. })
  30. if err != nil {
  31. g.Log().Panicf(ctx, "初始化数据源异常 %v", err)
  32. }
  33. if err := Ch_analysis.Ping(ctx); err != nil {
  34. if exception, ok := err.(*clickhouse.Exception); ok {
  35. g.Log().Panicf(ctx, "clickhouse Ping %s", exception.Message)
  36. }
  37. g.Log().Panicf(ctx, "初始化数据源异常 %v", err)
  38. }
  39. g.Log().Infof(ctx, "初始化clickhouse数据源成功")
  40. }