golang不知道大家是否熟悉?今天我将给大家介绍《GORM:将数组列批量插入 ClickHouse》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家
golang不知道大家是否熟悉?今天我将给大家介绍《GORM:将数组列批量插入 ClickHouse》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!
我想将数据批量插入到我们的 clickhouse 数据库中。使用Gorm
,我可以轻松使用
type audit struct{
field1 string `JSON:"field1"`,
field2 string `json:"field2"`,
}
chdb.table(tablename).createinbatches(audits, 5)
但是,如果audit
包含如下数组字段,则其他字段的数据仍然会保存在数据库中。只有带有数组的字段(如下field1
)不会被保存。
type audit struct{
field1 []string `json:"field1"`,
field2 string `json:"field2"`,
}
chdb.table(tablename).createinbatches(audits, 5)
错误:[错误]不支持的数据类型:&[]
只有当我准备一份声明并保存数据时,它才有效。但是,在这种情况下,它不再是批量插入
sqlDB, err := db.DB()
tx, err := sqlDB.Begin()
stmt, err := tx.PrepareContext(ctx, `insert into audit_table (field1, field2) values (?, ?)`)
_, err = stmt.ExecContext(ctx, clickhouse.Array(audit.field1), audit.field2)
err = tx.Commit()
有人可以帮我解决这个问题吗?如何将数组数据批量插入 clickhouse 列?
您可能需要 clickhouse.array
类型来插入 clickhouse.array
列
type audit struct{
field1 clickhouse.array `json:"field1"`,
field2 string `json:"field2"`,
}
audits := audit{
field1: clickhouse.array([]string{"one", "three"}),
field2: "two"
}
chdb.table(tablename).createinbatches(audits, 5)
这对我不起作用,我需要使用正确的字段标签更新我的结构,如下所示
type user struct {
timestamp time.time `gorm:"precision:6"`
name string `gorm:"type:lowcardinality(string)"`
age int8
defaultvalue string `gorm:"default:hello world"`
elapsed time.duration
nullableint *int8 `gorm:"type:nullable(int8)"`
array []string `gorm:"type:array(string)"`
}
并且可以像这样轻松地进行批量插入
// Batch Insert
user1 := User{Timestamp: time.Now(), Age: 12, Name: "Bruce Lee", Arraa: []string{"hello", "ne"}}
user2 := User{Timestamp: time.Now(), Age: 13, Name: "Feynman", Arraa: []string{"no", "me"}}
user3 := User{Timestamp: time.Now(), Age: 14, Name: "Angeliz"}
var users = []User{user1, user2, user3}
db.Create(&users)
以上就是《Gorm:将数组列批量插入 ClickHouse》的详细内容,更多关于的资料请关注编程网公众号!
--结束END--
本文标题: Gorm:将数组列批量插入 ClickHouse
本文链接: https://lsjlt.com/news/595729.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-04-05
2024-04-05
2024-04-05
2024-04-04
2024-04-05
2024-04-05
2024-04-05
2024-04-05
2024-04-04
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0