Нам нужно показать отчет в нашем веб-приложении согласно зарегистрированному идентификатору организации ...
Любое направление или пример действительно помогут.
Ниже упрощенный пример для BigQuery Standard SQL
Предположим, у вас есть таблица отчетов, как показано ниже - поле метрик имитирует ваши фактические поля отчета, а org_id должен определить, для какого пользователя включить эту строку вreport
`project.dataset.table` AS (
SELECT 1 metrics, 1 org_id UNION ALL
SELECT 2, 2 UNION ALL
SELECT 3, 3
)
Имея выше, вы хотите иметь возможность выполнять запрос ниже, но возвращать только строки, назначенные зарегистрированному пользователю (с определенным идентификатором org_id)
SELECT metrics
FROM `project.dataset.table`
Для этого вам нужноиметь мета-таблицу, в которой будет размещено отображение между org_id и соответствующей учетной записью пользователя, используемой в GCP как
`project.dataset.users` AS (
SELECT 1 org_id, 'user1@gmail.com' user UNION ALL
SELECT 2, 'user2@gmail.com' UNION ALL
SELECT 3, 'user3@gmail.com'
)
Итак, теперь вы можете запустить запрос ниже вместо оригинального
#standardSQL
SELECT t.* EXCEPT(org_id)
FROM `project.dataset.table` t
JOIN `project.dataset.users` USING(org_id)
WHERE LOWER(user) = LOWER(SESSION_USER())
Как вы можетеожидайте, что результат этого запроса будет зависеть от того, какой пользователь запускает его
Например, для user2@gmail.com - вывод будет
Row metrics
1 2
while, для user4@gmail.com -вывод
Row metrics
Query returned zero records.
Для простоты я опускаю template_id - но вы можете легко добавить его в изображение