dow98764 2018-10-19 17:42
浏览 514

使用Golang如何获取带有元数据的数据集表的列表

using the BigQuery Golang sdk, how does one get a list of tables in a dataset that also contains their metadata?

  • 写回答

1条回答 默认 最新

  • doucao8982 2018-10-19 17:44
    关注
    package main
    
    import (
            "context"
            "cloud.google.com/go/bigquery"
            "google.golang.org/api/iterator"
            "fmt"
            "encoding/json"
    )
    
    func main() {
            tables, metas, err := tableMetadatas(context.Background(), "my-project", "my-dataset")
            if err != nil {
                    fmt.Println("Error: %v", err)
            } else {
                    fmt.Println("Tables:")
                    bt, _ := json.MarshalIndent(tables, "", "  ")
                    fmt.Println(string(bt))
    
                    fmt.Println("Table Metadatas:")
                    bm, _ := json.MarshalIndent(metas, "", "  ")
                    fmt.Println(string(bm))
            }
    }
    
    // Gets a list of Tables & Their respective Metadata in a Dataset
    func tableMetadatas(ctx context.Context, project string, dataset string) ([]*bigquery.Table, []*bigquery.TableMetadata, error) {
            c, err := bigquery.NewClient(ctx, project)
            if err != nil {
                    return nil, nil, err
            }
    
            metas := make([]*bigquery.TableMetadata, 0)
            tables := make([]*bigquery.Table, 0)
            d := c.Dataset(dataset)
            it := d.Tables(ctx)
            for {
                    t, err := it.Next()
                    if err == iterator.Done {
                            break;
                    }
    
                    if err != nil {
                            return nil, nil, err
                    }
    
                    m, err := t.Metadata(ctx)
                    if err != nil {
                            return nil, nil, err
                    }
    
                    tables = append(tables, t)
                    metas = append(metas, m)
            }
            return tables, metas, nil
    }    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。