您好,欢迎来到锐游网。
搜索
您的当前位置:首页golang连接clickhouse

golang连接clickhouse

来源:锐游网

go get github.com/ClickHouse/clickhouse-go

package model

import (
	"database/sql"
	"fmt"
	"log"

	_ "github.com/ClickHouse/clickhouse-go"
)

var CkDB *sql.DB

func SetupClickhouse(c Config) {
	// tcp://localhost:9000?username=default&password=&database=default
	dsn := fmt.Sprintf("tcp://%s:%s?username=%s&password=%s&database=%s",
		c.Host,
		c.Port,
		c.Username,
		c.Password,
		c.Database)

	var err error
	CkDB, err = sql.Open("clickhouse", dsn)
	if err != nil {
		log.Fatalf("gormDB.Setup err: %v", err)
	}
}
func test_clickhouse() {
	util.ConnectClickhouse()
	defer model.CkDB.Close()

	sql := "SELECT id,isbn13 FROM bigdata.dw_dim_metadata_book_cip_all WHERE isbn13 <> '' and summary = '' and id > ? order by id asc limit ?"

	rows, err := model.CkDB.Query(sql, 0, 10)
	if err!= nil {
		log.Fatal(err)
	}
	defer rows.Close()

	for rows.Next() {
		var id string
		var isbn13 string
		rows.Scan(&id, &isbn13)

		fmt.Println(id, isbn13)
	}
}

由于 clickhouse 是 OLAP 数据库,所以在更新和删除数据的时候会比较麻烦,并不是传统的SQL方式,需要查看官方文档来实现。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- ryyc.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务