我正在尝试使用BigQuery API删除数据集。
我使用 BigQuery UI 手动删除有问题的数据集没有问题,但是当我使用 API 时,我看到以下错误:
googleapi: Error 400: Dataset myProject:myDataset is still in use, resourceInUse
我已经检查了没有使用数据集的打开连接。
以下是用于删除数据集的代码:
package main
import (
"log"
"context"
"golang.org/x/oauth2"
"golang.org/x/oauth2/jwt"
"google.golang.org/api/bigquery/v2"
)
func main() {
var authConfig *jwt.Config
var projectID = "myProject"
var datasetID = "myDataset"
ctx := context.Background()
oauthClient := oauth2.NewClient(ctx, authConfig.TokenSource(ctx))
service, err := bigquery.New(oauthClient)
if err != nil {
log.Fatal(err)
}
err = service.Datasets.Delete(projectID , datasetID).Context(ctx).Do()
if err != nil {
log.Fatal(err)
}
}
对于包含表和/或视图的数据集,您有两个选项:
删除- 每个表和视图,然后删除数据集。
- 直接删除数据集,传递
true
deleteContents
选项。这将删除数据集中的所有表和视图。