我们知道,bq mk在BigQuery中使用命令创建数据集时,我们可以使用flag--data_location来指定我们希望该数据集下的表数据位于哪个区域。
我们现在想要设置一个监视器,以便每当有人在我们指定位置之外创建数据集时,我们就可以向数据集所有者发出警报。为此,我们需要一个可以自动扫描所有数据集并获取位置信息的脚本。我们查看了 api 调用和 bq 命令行工具命令,没有关于显示/查询数据集的数据位置的线索。想知道是否有办法实现我们的目标?
要获取当前项目中的所有数据集:
bq ls -d --format=json
Run Code Online (Sandbox Code Playgroud)
如果你跑
bq show --format=json <dataset_name>
Run Code Online (Sandbox Code Playgroud)
你会得到一个包含密钥的 JSON location:
{
"kind":"bigquery#dataset",
"datasetReference":{
"projectId":"<edited>",
"datasetId":"wr_temp"
},
"creationTime":"1479393712602",
"access":[
{
"specialGroup":"projectWriters",
"role":"WRITER"
},
{
"specialGroup":"projectOwners",
"role":"OWNER"
},
{
"role":"OWNER",
"userByEmail":"<edited>"
},
{
"specialGroup":"projectReaders",
"role":"READER"
}
],
"defaultTableExpirationMs":"604800000",
"etag":"<edited>",
"location":"US",
"lastModifiedTime":"1479393712602",
"id":"<edited>",
"selfLink":"https://www.googleapis.com/bigquery/v2/projects/<edited>"
}
Run Code Online (Sandbox Code Playgroud)
另外,关于 API,如果您运行数据集的 GET 调用,您将得到相同的 JSON。https://cloud.google.com/bigquery/docs/reference/rest/v2/datasets/get#try-it
| 归档时间: |
|
| 查看次数: |
4210 次 |
| 最近记录: |