# #google-bigquery #google-data-studio
Вопрос:
Таким образом, в консоли BigQuery вы можете видеть запросы, выполненные вашими пользователями. Студия данных предоставляет вызываемый параметр @DS_USER_EMAIL
, содержащий адрес электронной почты пользователя, отправившего запрос.
Нам нужно это электронное письмо для выставления счетов: нам нужно выставлять счета/уведомлять людей в зависимости от их использования.
Пример этого запроса, зарегистрированный в BQ:
select @DS_USER_EMAIL as user_email from test_table;
Поэтому я могу видеть только переменную, а не разрешенное значение. Надеялся, что зарегистрированный запрос будет фактическим запросом, выполняемым так:
select 'test@test.com' as user_email from test_table;
Есть какой-нибудь способ обойти это? Если нет, то каковы наши варианты получения электронного письма?
Комментарии:
1. Я не в состоянии понять этот вариант использования. Как вы передаете этот параметр из DS в BQ? Каким должен быть результат представленных заявлений?
2. Вы создаете соединитель DS для BQ. В этом соединителе вы можете использовать @DS_USER_EMAIL в качестве переменной, которая берется у пользователя, использующего DS. Делает ли это все более ясным? Если нет, дайте мне знать, и я постараюсь объяснить это лучше выше.
Ответ №1:
Насколько я понимаю, @DS_USER_EMAIL
может использоваться для создания динамических отчетов, поэтому определенные пользователи получают доступ к определенным данным (Ссылка)
Если вы ищете способ проверить общее количество обработанных байтов на основе электронной почты пользователя, вы можете попробовать использовать INFORMATION_SCHEMA
таблицы и JOBS_BY_ORGANIZATION
(Ссылка на документацию)
Пример:
SELECT
job_id,
creation_time,
user_email,
total_bytes_billed
FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
WHERE state == "DONE"
Комментарии:
1. Спасибо за ваш ответ. Однако я продолжаю получать сообщение об ошибке, что таблица не найдена при выполнении выбора:
SELECT * FROM region-eu.INFORMATION_SCHEMA. JOBS_BY_ORGANIZATION;
если я изменю регионregion-us
, ошибка исчезнет, но все наши данные находятся в ЕС.2.
JOBS_BY_ORGANIZATION
в коде, которым вы поделились, есть пробел, может быть, это? если нет, не могли бы вы поделиться полным сообщением об ошибке?3. Это странно. Запуск оператора
SELECT creation_time, user_email, job_id, query FROM
region-us.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION order by creation_time desc limit 5;
приводит кNot found: Table tillty-pos:region-us.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
тому , что при запуске вашего оператора:Access Denied: Table tillty-pos:region-us.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION: User does not have permission to query table tillty-pos:region-us.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION.
. Мои роли: роли/биллинг.Менеджер проектов, роли/хранилище данных.владелец, роли/владелец4. Я сообщил об этой проблеме на их трекере проблем. К сожалению, я не могу проверить, работает ли ваш ответ.
5. Это странно. Я читал больше об этой проблеме и хотел бы предложить вам попробовать использовать классификатор конкретного региона вашего проекта вместо нескольких местоположений ЕС/США. cloud.google.com/bigquery/docs/. … И никаких проблем, если вы поймете, что происходит, я хотел бы знать 🙂