代码之家  ›  专栏  ›  技术社区  ›  Bogaso

从R访问Bigquery的Google身份验证

  •  0
  • Bogaso  · 技术社区  · 5 年前

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

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

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

    然而,我在一个没有GUI的GCP实例(使用Ubuntu)中运行上述代码,由于安全原因,它没有任何活动的互联网访问。

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

    任何帮助都将不胜感激。

    1 回复  |  直到 5 年前
        1
  •  0
  •   ebeltran    5 年前

    编辑 :

    我创造了一个 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_ob=真) 使用VM实例中的默认帐户。

    执行以下代码后:

    Rscript mycode.R 
    

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

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

        2
  •  -1
  •   ASH    5 年前

    这对我奏效了。

    # 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)