BigQuery-在云端运行时从Go服务器获取表数据

BigQuery-在云端运行时从Go服务器获取表数据,go,google-cloud-platform,google-bigquery,google-cloud-run,Go,Google Cloud Platform,Google Bigquery,Google Cloud Run,我能够通过Golang服务器获取作为json的大查询表输出。但是有没有办法直接获取模式而不是将其定义为ColStatsRow?还有,任何让这更好的方法 type ColStatsRow struct { COLUMN_NAME string `bigquery:"column_name"` COLUMN_VALUE string `bigquery:"column_value"` FRE

我能够通过Golang服务器获取作为json的大查询表输出。但是有没有办法直接获取模式而不是将其定义为
ColStatsRow
?还有,任何让这更好的方法

type 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)
        }
}

谢谢。

如果您要查找结果的模式,可以在上找到


如果您的意思是希望在没有特定结构的情况下更动态地处理行,通常可以通过检查架构和/或利用类型开关的组合来实现这一点。

根据文档,您可以指定如下类型:

[
 {
   "description": "[DESCRIPTION]",
   "name": "[NAME]",
   "type": "[TYPE]",
   "mode": "[MODE]"
 },
 {
   "description": "[DESCRIPTION]",
   "name": "[NAME]",
   "type": "[TYPE]",
   "mode": "[MODE]"
 }
]
然后可以使用以下命令编写此架构:

bq show--schema--format=prettyjson项目\u id:dataset.table>path\u to\u文件