有人尝试过将查询结果存储到地图吗? 我希望能够从BQ表中读取数据,而无需定义与BQ表架构匹配的结构。
我尝试遵循https://kylewbanks.com/blog/query-result-to-map-in-golang,但是我想使用RowIterator代替此链接中的方法。
这是我苦苦挣扎的代码:
//Removed error handling for brewity
ctx := context.Background()
client, _ := bigquery.NewClient(ctx, ProjectID)
query := fmt.Sprintf("SELECT * FROM `%s.%s.%s` LIMIT 5;", ProjectID, DatasetId, ResourceName)
queryResult := client.Query(query)
it, _ := queryResult.Read(ctx)
for {
row := make(map[string]bigquery.Value)
err := it.Next(&row)
if err == iterator.Done {
break
}
if err != nil {
fmt.Printf("Error happened")
}}
我不确定之后如何进行,理想情况下,我希望将数据转换为JSON格式。
答案 0 :(得分:1)
git fetch origin tag 2.3.18
将行放入切片中,因为您可以使用实现for {
var values []bigquery.Value
err := it.Next(&values)
if err == iterator.Done {
break
}
if err != nil {
// TODO: Handle error.
}
fmt.Println(values)
}
的任何东西或ValueLoader interface
的切片或映射来存储行
ref:godocs bq