登录
首页 >  Golang >  Go问答

读取不带结构的BigQuery查询结果

来源:stackoverflow

时间:2024-03-01 21:54:24 458浏览 收藏

从现在开始,努力学习吧!本文《读取不带结构的BigQuery查询结果》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

问题内容

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


解决方案


for {
     var values []bigquery.Value
     err := it.Next(&values)
     if err == iterator.Done {
        break
     }
     if err != nil {
    // TODO: Handle error.
}
fmt.Println(values)
}

将行放入切片中,因为您可以使用实现 valueloader 接口 的任何内容或使用 bigquery.value 的切片或映射来存储行

参考:godocs bq

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《读取不带结构的BigQuery查询结果》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>