gpt4 book ai didi

go - 使用 Golang 如何获取包含元数据的数据集表列表

转载 作者:IT王子 更新时间:2023-10-29 02:01:19 25 4
gpt4 key购买 nike

使用 BigQuery Golang SDK,如何获取数据集中的表列表,其中还包含其元数据?

最佳答案

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
}

关于go - 使用 Golang 如何获取包含元数据的数据集表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52897498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com