读取没有结构的BQ查询结果

时间:2019-02-11 15:14:12

标签: go google-bigquery

有人尝试过将查询结果存储到地图吗? 我希望能够从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格式。

1 个答案:

答案 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