以编程方式列出已授予访问权限的Bigquery数据集,而不事先知道项目ID

时间:2015-08-11 13:08:06

标签: java google-bigquery google-cloud-platform

是否有办法(使用BigQuery API)以编程方式列出已授予帐户访问权限的所有数据集知道项目名称(s )提前包含这些数据集?我觉得API可能不会公开这些信息。

我希望获得类似于BigQuery Web控制台左侧显示的数据集列表。

我指的是数据集,其中可以访问包含它们的项目,并且只被授予对特定数据集的访问权限。否则,我们可以简单地使用API​​列出项目,然后查询每个项目的数据集列表。

据推测,这必须排除公共数据集(数量太多),并且仅包括我的帐户被明确授予访问权限的那些数据集。

3 个答案:

答案 0 :(得分:0)

Google拥有大多数工具的API资源管理器。每当你有这样的问题时,我建议你查找一下资源管理器,因为它可以为你提供什么是强制性的,你能做什么和不能做什么。

如果您查找API资源管理器here(来自"数据集 - >列表"在官方文档中),您会看到只有一个必填字段:projectID。所以你的问题的答案是否定的,你需要项目的名称

答案 1 :(得分:0)

使用BQ command line tool

bq ls --format=prettyjson

这将返回格式为:

的JSON
[
    {
        "datasetId": "wr_1"
    },
    {
        "datasetId": "wr_2"
    },
    {
        "datasetId": "wr_3"
    },
    {
        "datasetId": "wr_4"
    }
]

您也可以通过API执行此操作,但您需要进行多次调用

答案 2 :(得分:0)

目前没有办法在BigQuery API中执行此操作。如您所说,您可以获取您所属的项目列表,然后列出这些项目中的数据集,但无法获得已共享的所有数据集的完整列表和你在一起。

我们希望将来能够提供更好的搜索和发现功能,但不幸的是,它现在无法实现。