从Cloud Storage获取BiqQuery加载JSON文件表的代码;自动检测模式

时间:2017-06-22 00:08:42

标签: json go google-bigquery

我想从json格式的Google云存储文件中加载BigQuery中的表格,并拥有自动检测架构'启用BigQuery控制台UI时可用的选项。

我想在Go中使用BigQuery包cloud.google.com/go/bigquery执行此操作,但无法从文档中找到它。有人可以提供代码示例吗?我不想使用Python。

1 个答案:

答案 0 :(得分:0)

感谢您的参考。必须将FileConfig结构设置为GCSReference的属性:

// Load JSON formatted files from
// Google Cloud Storage to BigQuery
// Auto-detect schema
func LoadTblJson(ctx context.Context, client *bigquery.Client,
	pth string, datasetName string, tableName string) {


	dataset := client.Dataset(datasetName)
	gcsRef := bigquery.NewGCSReference(pth)

	// set FileConfig attribute of GCSReference struct
	var dataFormat bigquery.DataFormat
	dataFormat = "NEWLINE_DELIMITED_JSON"
	flConfig := bigquery.FileConfig{SourceFormat: dataFormat,
		AutoDetect: true, Schema: nil}
	gcsRef.FileConfig = flConfig


	loader := dataset.Table(tableName).LoaderFrom(gcsRef)
	loader.CreateDisposition = bigquery.CreateIfNeeded
	loader.WriteDisposition = bigquery.WriteEmpty

	job, err := loader.Run(ctx)
	if err != nil {
		//Handle
	}
	status, err := job.Wait(ctx)
	if err != nil {
		// Handle
	}
	if status.Err() != nil {
		//Handle
	}



}