在没有明确定义的结构的情况下插入 BigQuery

Nix*_*arn 1 go google-bigquery

我想将任何类型的 JSON 直接插入 BigQuery,但还没有找到任何好的方法?所有方法都假设我有一个定义明确的结构来插入。似乎可以使用旧的已弃用 api,但不能使用新的“cloud.google.com/go/bigquery”包。

我希望 /api/table_name/insert 能够采用任何类型的 json 并将其插入 BigQuery,因为客户端和服务器都知道端点应该转发它的架构。

谢谢

Ita*_*der 5

似乎这被替换为 ValueSaver ,您可以实现如下:

type genericRecord map[string]bigquery.Value

func (rec genericRecord) Save() (map[string]bigquery.Value, string, error) {
    insertID := uuid.New().String()
    return rec, insertID, nil
}

var data []*genericRecord
json.Unmarshal(<YOUR JSON BYTE>, &data)

ctx := context.Background()
client, err := bigquery.NewClient(ctx, <YOUR PROJECT ID>)
ins := client.Dataset(<DATASET>).Table(<TABLE>).Inserter()
ins.Put(ctx, data)
Run Code Online (Sandbox Code Playgroud)