Я хочу иметь возможность динамически запрашивать эти данные, используя веб-страницу с пользовательскими входами и элементами управления.
Требуемая функциональность может быть построена на веб-сервере, который обращается к BQ с использованием учетной записи службы GCP. , Учетная запись может быть создана с помощью пользовательского интерфейса или с помощью команды:
gcloud iam service-accounts create <sa-name> --display-name "<sa-name>" --description "Service account for BQ read-only access"
Затем предоставьте учетной записи службы разрешение на запуск заданий:
gcloud projects add-iam-policy-binding <project-name> --member=serviceAccount:<sa-name>@<project-name>.iam.gserviceaccount.com --role roles/bigquery.jobUser
Замените заполнители: <sa-name>
- заменить на имя учетной записи службы, <project-name>
- заменить на имя проекта.
Обратите внимание, что учетной записи службы потребуется дополнительное разрешение для чтения набора данных.
Это решение позволяет встроить параметризованный запрос. в веб-сервер. Конечные пользователи используют браузер для необязательной установки параметров запроса, запуска запроса и получения результатов. Я - автор.
Я не хочу, чтобы пользователь должен был входить в систему, используя свою учетную запись Google
Пользователям не нужно иметь учетные записи GCP. Веб-сервер использует учетную запись службы.
Например, пользователь может выбрать из выпадающего списка некоторые параметры, которые затем go включат для создания SQL запроса
Это то, что делает решение. Однако из соображений стоимости и безопасности конечным пользователям разрешается только создавать предложение WHERE
запроса. Вы можете изменить код так, чтобы он содержал несколько запросов SQL, и тогда раскрывающийся список позволит выбрать, какой запрос использовать, другой раскрывающийся список может установить некоторые параметры запроса и т. Д. c.