【问题标题】:Google authentication to access Bigquery from R谷歌身份验证从 R 访问 Bigquery
【发布时间】:2020-02-04 20:26:18
【问题描述】:

我正在尝试使用bigrquery 包在Google's Bigquery 中使用以下代码运行查询-

library(bigrquery)
bg_auth("My_Email", "My_Token")

现在,一旦我点击上面的代码行,R 就会尝试打开浏览器来验证 Google 服务。

但是,我在没有 GUI 的 GCP 实例(使用 Ubuntu)中运行上述代码,并且由于安全原因,它没有任何活动的 Internet 访问。

所以我很想知道是否有任何方法可以离线验证并访问Bigquery

我们将不胜感激。

【问题讨论】:

    标签: r authentication google-cloud-platform google-bigquery


    【解决方案1】:

    已编辑

    我使用默认服务帐号创建了一个GCP VM 实例

    在此之后,我使用以下代码执行查询。

    library(bigrquery)
    bq_auth(use_oob = TRUE)
    projectid = "my-project-id"
    # Set your query
    sql <- "SELECT * FROM `bigquery-public-data.usa_names.usa_1910_current` LIMIT 10"
    
    # Run the query and store the data in a dataframe
    df <- query_exec(sql, projectid, use_legacy_sql = FALSE)
    
    # Print the query result
    df
    

    由于我没有使用其他服务帐户,我使用方法 bq_auth(use_oob = TRUE) 来使用 VM 实例中的默认帐户。

    执行代码后:

    Rscript mycode.R 
    

    代码在没有在浏览器中请求身份验证的情况下执行。

    这是一个guide,用于在笔记本中使用 R 和 Bigquery;但是,实现应该类似于在 GCP VM 实例上使用它。

    【讨论】:

    • 不幸的是,当您第一次使用它时,这仍然需要基于浏览器的身份验证
    • 可能在第一次使用浏览器进行身份验证时,信息可能会在系统的某个地方兑现。你知道它保存的位置吗?如果我们知道这一点,那么我们可以在可以访问互联网的计算机中兑现信息,然后将该信息移动到禁止活动互联网的 GCP?
    • @Bogaso 我无法复制你的场景,关于你的问题,这似乎不是解决问题的正确方法,我编辑了我的帖子,这可以帮助你澄清我是如何无需通过浏览器进行身份验证即可执行我的代码。
    【解决方案2】:

    这对我有用。

    # https://github.com/r-dbi/bigrquery
    library(bigrquery)
    
    # replace this with your project ID 
    billing <- "your_ID" 
    
    sql <- "SELECT * FROM `your_table`"
    tb <- bq_project_query(billing, sql)
    
    #> Auto-refreshing stale OAuth token.
    df <- bq_table_download(tb, max_results = 10)
    
    df1 <- data.frame(df)
    

    【讨论】:

    • 好吧,当我点击 bq_project_query() 并通过它进行身份验证时,它仍然会尝试打开浏览器。您之前可能已经进行了身份验证。
    • 我最后一次使用该代码是在大约 1 年前。当时对我来说效果很好。也许现在情况略有不同。我不再使用 GCP;现在使用 Azure。此行应该对您有所帮助:billing
    猜你喜欢
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    • 2020-08-15
    • 2018-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多