gpt4 book ai didi

go - 如何在 BigQuery 中创建包含非必填字段的表?

转载 作者:行者123 更新时间:2023-12-02 19:53:06 25 4
gpt4 key购买 nike

我正在 Go 中创建一个 RESTful API,用于在 BigQuery 中写入行。我正在使用Google BigQuery package for Go

为了创建 BigQuery 方案,我从结构中推断架构,如 example 中所述。 .

问题是,生成的架构将所有非重复字段都设置为“必填”,因此,当我想上传具有空值的结构时,空值将作为空字段上传...

这是我的结构的示例:

type Stats struct {
Name string `bigquery:"name"`
LastName int `bigquery:"last_name"`
PhoneNumber string `bigquery:"phone_number"`
}

这是如何创建架构的示例:

testSchema, err := bigquery.InferSchema(Stats{})
if err != nil {
// TODO: Handle error.
}

而且,如果我上传一个仅包含一个字段集的结构:

rows := []*Stats{
{Name: "testA"},
}

u := table.Uploader()
err2 := u.Put(ctx, rows)

结果是,在 BigQuery 中,字段“last_name”和“phone_number”是空字符串“”而不是 NULL

最佳答案

为此,显然您必须使用特定的 BigQuery 可空类型(NullInt64、NullFloat64、NullString、NullBool、NullTimestamp、NullDate、NullTime 和 NullDateTime)。

使用bigquery.NullBool的示例:https://godoc.org/cloud.google.com/go/bigquery#ex-InferSchema--Tags

关于go - 如何在 BigQuery 中创建包含非必填字段的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41875878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com