【问题标题】:Get shared dataset with Api使用 Api 获取共享数据集
【发布时间】:2019-06-16 08:23:15
【问题描述】:

我正在尝试使用 API 获取在 Google BigQuery 中与我共享的所有共享数据集的列表

我尝试使用bigquery.projects.list,但 API 只为我带来了我唯一的项目。 如何获取人们通过 API 与我共享的所有数据集?

【问题讨论】:

  • 你不能得到这个
  • 为什么不呢? google bigQuery 是如何做到的?
  • 我认为,我不知道谷歌实际上“正在这样做”的任何公开可用的功能/UI。你能指点我你认为他们在哪里吗?
  • 如果我与其他用户共享数据集,我可以在左侧项目区域中看到数据集...所以我想知道他们用于该功能的女巫 Api?
  • 对不起,我不确定我明白了!您看到您与其他用户共享的数据集了吗?你当然看到了!你能指出我在哪里看到其他人与你共享的数据集吗?

标签: google-bigquery bigdata


【解决方案1】:

要在 UI 中查看与您共享的所有数据集,您必须将其项目添加到 UI。

例如,在经典 BigQuery 用户界面 (bigquery.cloud.google.com) 中,您可以点击项目旁边的向下箭头,然后点击“切换到项目”和“显示项目...”。

同样,在新的 BigQuery 用户界面 (console.cloud.google.com/bigquery) 中,您必须点击“添加数据”,然后点击“固定项目”。

默认情况下,您不会在 UI 中获得与您共享的数据集列表,您也无法通过单个 REST 请求获得此列表。如datasets.list method 中所述,需要指定要从中列出数据集的项目 ID。

您可能想知道是否可以使用projects.list method,然后为您到达那里的每个项目运行 REST 命令,但这仅适用于在项目级别而非数据集授予角色的项目数据集级别。


因此,获取与您共享的所有数据集列表的唯一方法是事先了解与您共享数据集的所有项目,然后为每个项目运行列表操作。

【讨论】:

  • 所以,简而言之 - 你不能这样做 - 对吧? this 我的意思是 OP 到底问了什么 :o)
  • 只有事先知道哪些项目授予他访问其数据集的权限,他才能做到这一点。否则,答案是否定的,来自 API 的所有列表操作都设计为在每个项目的基础上工作,并且在数据集级别而不是在项目级别授予对数据集的访问权限的能力使得无法以编程方式获取此列表。
  • 我不想做任何假设。 OP 询问如何通过 API 获取此列表,此要求的用例足够广泛,可以用于自动化流程,而不仅仅是因为人们忽略了授予对其数据集访问权限的项目。我只是发布可能的场景供他/她或其他任何人参考。
  • 阅读 OP 帖子中的第一句和第三句!这里没有假设! 100% 清楚!我不反对你的回答——我只是想明确一点,无论用户到底问什么——现在都是不可能的。其余的只是针对特定情况的解决方法-同时-您的答案对于这些情况是正确的,但对于确切的问题并不正确!
  • 答案是一样的:“获取与您共享的所有数据集列表的唯一方法是事先了解与您共享数据集的所有项目,然后为每个项目运行列表操作其中之一”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-06
  • 2020-10-14
  • 2011-08-07
  • 2018-04-09
  • 1970-01-01
  • 1970-01-01
  • 2021-05-05
相关资源
最近更新 更多