【发布时间】:2021-03-04 02:41:50
【问题描述】:
当我将数据从 Cloud Storage 加载到 Bigquery 时,click_url 字段在创建时变成了 Record 类型,即使它是一个字符串(可能是因为 noindex 不确定)。当我尝试使用 Inserter 将数据插入 BigQuery 时。我收到此错误消息:
无法将 std::string 转换为记录字段:可选 .Msg_0_CLOUD_QUERY_TABLE.Msg_1_CLOUD_QUERY_TABLE_click_url click_url = 1
bigquery 中的表:
架构:
代码如下:
type Product struct {
Name string `datastore:"name" bigquery:"name"`
ClickUrl string `datastore:"click_url,noindex" bigquery:"click_url"`
DateAdded time.Time `datastore:"date_added" bigquery:"date_added"`
}
func insertRows(data interface{}) error {
projectID := "my-project-id"
datasetID := "mydataset"
tableID := "mytable"
ctx := context.Background()
client, err := bigquery.NewClient(ctx, projectID)
if err != nil {
return fmt.Errorf("bigquery.NewClient: %v", err)
}
defer client.Close()
inserter := client.Dataset(datasetID).Table(tableID).Inserter()
if err := inserter.Put(ctx, data); err != nil {
return err
}
return nil
}
func main() {
product := Product{"product_name", "click_url", "date_added_value"} // Example data from datastore
if err := insertRows(product); err != nil {
fmt.Println(err)
}
}
我应该在实体标签"bigquery:click_url" 上添加什么来完成这项工作?
【问题讨论】:
标签: go google-bigquery