Go使用go-clickhouse库

连接

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版权协议,转载请附上原文出处链接和本声明。