为了账号安全,请及时绑定邮箱和手机立即绑定

BigQuery - 从 Cloud Run 中的 Go Server 获取表数据

BigQuery - 从 Cloud Run 中的 Go Server 获取表数据

Go
烙印99 2022-08-24 15:39:09
我能够通过Golang服务器获取大查询表输出为json。但是有没有办法直接获取架构,而不是将其定义为?此外,任何方法都可以使它变得更好。ColStatsRowtype ColStatsRow struct {        COLUMN_NAME       string `bigquery:"column_name"`        COLUMN_VALUE      string `bigquery:"column_value"`        FREQUENCY int64  `bigquery:"frequency"`}// getOutput prints results from a query func getOutput(w http.ResponseWriter, iter *bigquery.RowIterator) error {        var rows []ColStatsRow        for {                var row ColStatsRow                err := iter.Next(&row)                if err == iterator.Done {                        out, err := json.Marshal(rows)                        if err != nil {                            return fmt.Errorf("error marshalling results: %v", err)                        }                        w.Write([]byte(out))                        return nil                }                if err != nil {                        return fmt.Errorf("error iterating through results: %v", err)                }                rows = append(rows, row)        }}
查看完整描述

2 回答

?
慕仙森

TA贡献1827条经验 获得超8个赞

根据文档,您可以指定一个 JSON 架构文件,如下所示:


[

 {

   "description": "[DESCRIPTION]",

   "name": "[NAME]",

   "type": "[TYPE]",

   "mode": "[MODE]"

 },

 {

   "description": "[DESCRIPTION]",

   "name": "[NAME]",

   "type": "[TYPE]",

   "mode": "[MODE]"

 }

]

然后,您可以使用以下命令编写此架构:


bq show --schema --format=prettyjson project_id:dataset.table > path_to_file


查看完整回答
反对 回复 2022-08-24
?
开满天机

TA贡献1786条经验 获得超13个赞

如果位于结果的架构之后,则它在 RowIterator 上可用。

如果你的意思是你想在没有特定结构的情况下更动态地处理行,通常检查架构和/或利用类型开关的某种组合是实现这一目标的方法。


查看完整回答
反对 回复 2022-08-24
  • 2 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号