我创建了一个简单的 Shiny 应用程序,它连接到我的数据库并在给定 SQL 查询的情况下生成一个表:
ui <- fluidPage(
textAreaInput("query", "SQL query"),
actionButton("submit", "Submit query"),
dataTableOutput("queryResults")
)
server <- function(input, output, session) {
json="path/to/servicetoken.json"
bigrquery::bq_auth(path = json)
con <- DBI::dbConnect(
bigrquery::bigquery(),
project = "projectid",
dataset="dataset",
billing="projectid"
)
query <- eventReactive(input$submit, input$query)
output$queryResults <- renderDataTable({
query <- query()
DBI::dbGetQuery(con, query)
})
}
shinyApp(ui, server, ...)
这对我很有用。发送到 BigQuery 的每个查询都会向我收费。但是,我最理想的做法是向提出查询的人收费。通过我的 Shiny 应用程序向另一个运行查询的 Google 用户收费的最佳方式是什么?