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

标签 go google-bigquery

有人试过将查询结果存储到 map 吗? 我希望能够从 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)
}

将行放入 slice 中,因为您可以使用实现 ValueLoader 接口(interface) 的任何东西,或使用 bigquery.Value 的 slice 或映射来存储行

引用:godocs bq

关于go - 读取没有结构的BQ查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54633599/

相关文章:

go - 如何传递 channel 数组

go - 使用 kafka-go 计划在 Kafka 中创建消费者

.net - 使用 .Net 库将 CSV 文件上传到 Google Cloud Storage

google-bigquery - 使用 Python 查询 GCP Stackdriver 日志

javascript - 带有 javascript 的 Google BigQuery - 如何获取查询 exe 时间以及查询处理的数据量(大小)

python - 导入错误 : cannot import name 'opentype' on new installation

go - 为什么在有 Unmarshal 实现时不解码嵌入式结构?

戈朗 : go run is always running old code even after changes

go - Go 中基类型方法指针的选择器

java - 将 STRUCT 数组从 Dataflow 写入大查询