我们需要根据登录用户的组织 ID 在我们的 Web 应用程序上显示报告...
任何方向或例子都会有帮助。
下面是 BigQuery 标准 SQL 的简化示例
假设您有如下报告表 - 指标字段模仿您的实际报告字段,而 org_id 用于识别要将此行包含到报告中的用户
`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
同时,对于 user4@gmail.com - 输出是
Row metrics
Query returned zero records.
为简单起见,我省略了 template_id - 但您可以轻松地将其添加到图片中