forked fromdanielkurniadi/clickhouse
Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork75
GORM clickhouse driver
License
MIT, MIT licenses found
Licenses found
MIT
LICENCEMIT
LicenseNotificationsYou must be signed in to change notification settings
go-gorm/clickhouse
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Clickhouse support for GORM
You can simply test your connection to your database with the following:
package mainimport ("gorm.io/driver/clickhouse""gorm.io/gorm")typeUserstruct {NamestringAgeint}funcmain() {dsn:="clickhouse://gorm:gorm@localhost:9942/gorm?dial_timeout=10s&read_timeout=20s"db,err:=gorm.Open(clickhouse.Open(dsn),&gorm.Config{})iferr!=nil {panic("failed to connect database")}// Auto Migratedb.AutoMigrate(&User{})// Set table optionsdb.Set("gorm:table_options","ENGINE=Distributed(cluster, default, hits)").AutoMigrate(&User{})// Set table cluster optionsdb.Set("gorm:table_cluster_options","on cluster default").AutoMigrate(&User{})// Insertdb.Create(&User{Name:"Angeliz",Age:18})// Selectdb.Find(&User{},"name = ?","Angeliz")// Batch Insertuser1:=User{Age:12,Name:"Bruce Lee"}user2:=User{Age:13,Name:"Feynman"}user3:=User{Age:14,Name:"Angeliz"}varusers= []User{user1,user2,user3}db.Create(&users)// ...}
package mainimport ( std_ck"github.com/ClickHouse/clickhouse-go/v2""gorm.io/driver/clickhouse""gorm.io/gorm")sqlDB,err:=std_ck.OpenDB(&std_ck.Options{Addr: []string{"127.0.0.1:9999"},Auth: std_ck.Auth{Database:"default",Username:"default",Password:"",},TLS:&tls.Config{InsecureSkipVerify:true,},Settings: std_ck.Settings{"max_execution_time":60,},DialTimeout:5*time.Second,Compression:&std_ck.Compression{std_ck.CompressionLZ4,},Debug:true,})funcmain() {db,err:= gorm.Open(clickhouse.New(click.Config{Conn:sqlDB,// initialize with existing database conn })}
package mainimport ("gorm.io/driver/clickhouse""gorm.io/gorm")// refer to https://github.com/ClickHouse/clickhouse-govardsn="clickhouse://username:password@host1:9000,host2:9000/database?dial_timeout=200ms&max_execution_time=60"funcmain() {db,err:=gorm.Open(clickhouse.New(click.Config{DSN:dsn,Conn:conn,// initialize with existing database connDisableDatetimePrecision:true,// disable datetime64 precision, not supported before clickhouse 20.4DontSupportRenameColumn:true,// rename column not supported before clickhouse 20.4DontSupportEmptyDefaultValue:false,// do not consider empty strings as valid default valuesSkipInitializeWithVersion:false,// smart configure based on used versionDefaultGranularity:3,// 1 granule = 8192 rowsDefaultCompression:"LZ4",// default compression algorithm. LZ4 is losslessDefaultIndexType:"minmax",// index stores extremes of the expressionDefaultTableEngineOpts:"ENGINE=MergeTree() ORDER BY tuple()", }),&gorm.Config{})}
Checkouthttps://gorm.io for details.
About
GORM clickhouse driver
Resources
License
MIT, MIT licenses found
Licenses found
MIT
LICENCEMIT
LicenseUh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.
Languages
- Go100.0%