我尝试在Google Colab工作表(使用R运行时)中访问存储在Google BigQuery上的自己的数据表,方法是运行以下代码:
# install.packages("bigrquery")
library("bigrquery")
bq_auth(path = "mykeyfile.json")
projectid = "work-366734"
sql <- "SELECT * FROM `Output.prepared_data`"
运行
tb <- bq_project_query(projectid, sql)
导致以下访问被拒绝错误:
拒绝访问:BigQuery BigQuery:权限被拒绝,而globbing文件模式。[accessDenied]
为了说明,我已经创建了一个服务帐户(在Google Cloud IAM和admin下),为其分配了角色“BigQuery Admin”和“BigQuery Data Owner”,并提取了上面提到的json Key文件“mykeyfile.json”。(建议here)
此外,我将服务帐户的角色添加到数据集(BigQuery - Sharing -AddPrincipal),但仍然显示相同的错误。
当然,我已经重置/删除并重新初始化了运行时。
我是否错过了在其他地方提供额外权限?谢谢你,谢谢
我不确定这是否有意义,但我只是为了以防万一而添加它:我还尝试了身份验证过程,
bq_auth(use_oob = TRUE, cache = FALSE)
这将打开一个额外的窗口,我必须允许访问(使用我的Google帐户,也是数据所有者)并输入授权代码。虽然这些步骤有效,但 bq_project_query(projectid,sql) 仍然给出相同的Access Denied错误。
尝试使用python和以下命令授权访问Google BigQuery,工作完美(使用相同的帐户/凭据)。
from google.colab import auth
auth.authenticate_user()
project_id = "work-366734"
client = bigquery.Client(project=project_id)
df = client.query( '''
SELECT
*
FROM
`work-366734.Output.prepared_data`
''' ).to_dataframe()
2条答案
按热度按时间wko9yo5t1#
我建议尝试在没有服务帐户的情况下运行此操作,而是通过笔记本授权流程。
首先,在您的notebook中,您需要安装bigrquery(看起来您已经安装了)。
之后,您可以运行以下代码作为示例查询:
这将提示您选择是否存储您设置的凭据,然后将提供一个URL供您使用凭据登录(在tidyverse.org),然后将生成的代码粘贴到笔记本中。
一旦完成,您可以查询到您的心脏的内容!
来源:https://cloud.google.com/vertex-ai/docs/workbench/user-managed/use-r-bigquery
4xrmg8kj2#
我也有同样的问题。对我来说,一旦我在凭据之前运行库(tidyverse),它就工作了,在我看来,凭据是通过那个包工作的。