连接
func NewCkConn(ckInfo config.CkConfig) (*dbr.Connection, error) {
conn, err := dbr.Open("clickhouse", "http://"+ckInfo.Username+":"+ckInfo.Password+"@"+ckInfo.Host+":"+ckInfo.Port+"/"+ckInfo.Database, nil)
if err != nil {
return nil, err
}
return conn, nil
}查询
rows.next是从内存中一条一条的取出
rows.Scan是进行赋值
记住next与scan组合进行赋值的func (m *Metric) TotalAmount(sql string) (TotalAmount, error) {
rows, err := ck.Query(sql)
if err != nil {
return TotalAmount{}, err
}
var res TotalAmount
for rows.Next() {
err = rows.Scan(&res.CpuUseds, &res.CpuTotals, &res.MemUseds, &res.MemTotals)
if err != nil {
return TotalAmount{}, err
}
}
return res, nil
}版权声明:本文为fujian9544原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。