我想直接将任何类型的JSON插入BigQuery,但是还没有找到任何好的方法?所有方法都假定我具有插入的定义良好的结构。似乎可以使用旧的不推荐使用的api,但不能使用新的“ cloud.google.com/go/bigquery”包。
我希望/ api / table_name / insert能够获取任何类型的json并将其插入BigQuery,因为客户端和服务器都知道端点应该转发它的模式。
谢谢
答案 0 :(得分:2)
似乎已将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)