Google аутентификация для доступа к Bigquery из R - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь использовать пакет bigrquery для запуска запроса в Google's Bigquery с кодом ниже -

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

Теперь, когда я нажал выше строки кода, R пытается открыть браузер для аутентифицироваться для службы Google.

Однако я выполняю приведенный выше код в экземпляре GCP (с Ubuntu) без GUI, и у него нет активного доступа к Inte rnet по соображениям безопасности.

Так что мне интересно узнать, есть ли способ аутентифицировать его в автономном режиме и получить доступ к Bigquery.

Любая помощь будет высоко оценена.

Ответы [ 2 ]

0 голосов
/ 05 февраля 2020

EDITED :

Я создал экземпляр виртуальной машины GCP с учетной записью службы по умолчанию .

После этого Я использовал следующий код для выполнения запроса.

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) , чтобы использовать учетную запись по умолчанию из экземпляра виртуальной машины.

После выполнения кода с помощью:

Rscript mycode.R 

Код был выполнен без запроса аутентификации в браузере.

Это руководство для использования R с Bigquery в Блокнотах; однако реализация должна быть похожа на использование ее на экземпляре виртуальной машины GCP.

0 голосов
/ 04 февраля 2020

Это сработало для меня.

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