【问题标题】:BigQuery and Data Studio - Extracting the value of @DS_USER_EMAIL in a queryBigQuery 和 Data Studio - 在查询中提取 @DS_USER_EMAIL 的值
【发布时间】:2021-11-28 08:59:18
【问题描述】:

因此,您可以在 BigQuery 控制台中查看您的用户已运行的查询。 Data Studio 提供了一个名为 @DS_USER_EMAIL 的参数,其中包含进行查询的用户的电子邮件。

出于计费原因,我们需要该电子邮件:我们需要根据人们的使用情况对其进行计费/通知。

在 BQ 中登录的示例查询:

select @DS_USER_EMAIL as user_email from test_table;

所以我只能看到变量,而不是解析的值。希望记录的查询将是像这样运行的实际查询:

select 'test@test.com' as user_email from test_table;

有什么办法吗?如果没有,我们有哪些方法可以接收电子邮件?

【问题讨论】:

  • 我无法理解这个用例。你如何将这个参数从 DS 传递给 BQ?陈述的结果应该是什么?
  • 您创建了一个到 BQ 的 DS 连接器。在该连接器中,您可以使用@DS_USER_EMAIL 作为变量,该变量是从使用 DS 的用户那里获取的。这是否使它更清楚?如果没有,请告诉我,我会在上面尝试更好地解释。

标签: google-bigquery google-data-studio


【解决方案1】:

据我了解,@DS_USER_EMAIL 可用于创建动态报告,因此某些用户可以访问特定数据 (Ref)

如果您正在寻找一种方法来检查基于用户电子邮件处理的总字节数,您可以尝试使用INFORMATION_SCHEMA 表和JOBS_BY_ORGANIZATION (Documentation Link)

一个例子:

SELECT
 job_id,
 creation_time,
 user_email, 
 total_bytes_billed
FROM `region-us`.INFORMATION_SCHEMA.JOBS_BY_ORGANIZATION
WHERE state == "DONE"

【讨论】:

  • 感谢您的回答。但是,我在执行选择时不断收到一个错误,即找不到表:SELECT * FROM region-eu.INFORMATION_SCHEMA. JOBS_BY_ORGANIZATION; 如果我将区域更改为region-us,错误就会消失,但我们所有的数据都在欧盟。
  • 在您共享的代码中,JOBS_BY_ORGANIZATION 之前有一个空格,可能是这样吗?如果没有,你能分享完整的错误信息吗?
  • 这很奇怪。运行语句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.。我的角色:角色/billing.projectManager、角色/datastore.owner、角色/所有者
  • 我已经在他们的问题跟踪器上报告了这个问题。很遗憾,我无法验证您的答案是否有效。
  • 这很奇怪。我一直在阅读有关此问题的更多信息,并建议您尝试使用项目的特定区域限定符,而不是 eu/us 多位置。 cloud.google.com/bigquery/docs/…。没问题,如果你弄清楚发生了什么,我想知道:)
猜你喜欢
  • 1970-01-01
  • 2022-12-23
  • 1970-01-01
  • 2021-02-21
  • 1970-01-01
  • 1970-01-01
  • 2020-12-17
  • 2012-04-29
  • 1970-01-01
相关资源
最近更新 更多