本文主要是介绍【Go】go连接clickhouse使用TCP协议,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
离开你是傻是对是错
是看破是软弱
这结果是爱是恨或者是什么
如果是种解脱
怎么会还有眷恋在我心窝
那么爱你为什么
🎵 黄品源/莫文蔚《那么爱你为什么》
package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2"
)func main() {// 配置连接参数conn, err := clickhouse.Open(&clickhouse.Options{Addr: []string{"127.0.0.1:9000"}, // ClickHouse的TCP地址Auth: clickhouse.Auth{Database: "default", // 数据库名Username: "default", // 用户名Password: "", // 密码},DialTimeout: 5 * time.Second,Compression: &clickhouse.Compression{Method: clickhouse.CompressionLZ4,},})if err != nil {log.Fatalf("连接 ClickHouse 失败: %v", err)}// 确保连接成功if err := conn.Ping(context.Background()); err != nil {log.Fatalf("无法连接到 ClickHouse: %v", err)}fmt.Println("成功连接到 ClickHouse!")// 执行查询:获取 id 和 title 字段rows, err := conn.Query(context.Background(), "SELECT id, title FROM my_table")if err != nil {log.Fatalf("查询执行失败: %v", err)}defer rows.Close()// 迭代查询结果for rows.Next() {var id uint64var title string// 扫描每一行的结果if err := rows.Scan(&id, &title); err != nil {log.Fatalf("读取结果失败: %v", err)}fmt.Printf("id: %d, title: %s\n", id, title)}// 检查是否有迭代中的错误if err := rows.Err(); err != nil {log.Fatalf("查询中发生错误: %v", err)}
}
这篇关于【Go】go连接clickhouse使用TCP协议的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!