Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to authenticate with service account and bigrquery package?

I have been able to authenticate using the json file associated with a service account using googleAuth and bigQueryR.

# Load Packages
global.packages <- c("bigQueryR", "googleAuthR")

### Apply require on the list of packages; load them quietly
lapply(global.packages, require, character.only = TRUE, quietly = TRUE)

Sys.setenv("GCS_AUTH_FILE" = "json_file_location")

#Authenticate Google BQ
googleAuthR::gar_attach_auto_auth("https://www.googleapis.com/auth/bigquery",
                                  environment_var = "GCS_AUTH_FILE")

This works and I am able to start using functions from bigQueryR.

Now assume I am limited to the bigrquery package, how can I authenticate using a service account with this package?

I have looked at the documentation here to no avail: https://cran.r-project.org/web/packages/bigrquery/bigrquery.pdf

The resources I have come across on the internet propose using the bigQueryR package in place of bigrquery.

For instance this related stackoverflow question: Use bigrquery auth in shiny application.

But I need functions only available in bigrquery.

like image 884
ZeroStack Avatar asked Feb 23 '17 08:02

ZeroStack


2 Answers

set_service_token() is now deprecated.

Use bq_auth() instead:

bq_auth(path = "location_of_service_token.json")

Source: https://rdrr.io/cran/bigrquery/man/bigrquery-deprecated.html

like image 98
jkras Avatar answered Sep 29 '22 09:09

jkras


You can use the function set_service_token()in bigrquery to authenticate with the same service JSON you use in bigQueryR

library(bigrquery)

set_service_token("location-of-service.json")

Source: https://github.com/rstats-db/bigrquery/issues/22

like image 45
MarkeD Avatar answered Sep 29 '22 09:09

MarkeD