在由连接复制的Data Studio条目上表示 [英] Represent on data studio entries duplicated by joins

查看:11
本文介绍了在由连接复制的Data Studio条目上表示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在从事一个项目,该项目构建ETL流程和仪表板以控制一些KPI指标。我在BigQuery中创建了一个表,每个月在其中保存一些通过聚合从其他表中提取的数据计算得出的键值。我正在测量员工发送的电子邮件,因此为了计算那些关键值之一,我需要从两个不同的表读取并执行左联接,以匹配聚合中现有的每个公司工作区(左表)中有多少员工(右联接)。

这是我的表格的简化:

发送的电子邮件,按区域分组

|  Area Id  |  Service  |  Bad employees  | ...
|     1     |   Gmail   |      3416       | ...
|     2     |   Gmail   |     10782       | ...
|     2     |   Groups  |      9267       | ...

员工总数,按地区分组

|  Area Id  |  Total employees  | ...
|     1     |       34124       | ...
|     2     |       82561       | ...
|     3     |       49472       | ...
问题出现在这里:如您所见,第一个表(已发送的电子邮件)有一个没有出现在第二个表中的字段;我说的是Service。因此,当我连接两个表时,我将获得Total employees字段的重复值:

连接表

|  Area Id  |  Service  |  Bad employees  |  Total employees  |
|     1     |   Gmail   |      3416       |       34124       |
|     2     |   Gmail   |     10782       |       82561       |
|     2     |   Groups  |      9267       |       82561       |

这个最后的表将用于在Data Studio中创建报告。我希望将Service字段保留在最终的表中,因为我想让用户选择按它进行筛选。我无法编辑Employees表架构并将Service字段添加到其条目中,因为该信息与Email表是唯一的,它表示发送电子邮件的服务,与Employees表无关。

我正在努力为此问题找到有效的数据建模选项;如果使用此解决方案,并且我想在Data Studio上表示,比方说Total number of employees per selected areas,我将为那些包含多个服务的区域获得错误的值:

  • 员工总数1:34.124
  • 员工总数2:82.561+82.561=165.122
  • 员工总数:34.124+165.122=199.246
  • 期望值:34.124+82.561=116.685

这将影响使用员工总数值的任何指标。

如何才能保留联接表的Service字段,同时仍在Data Studio上表示Total employees的正确值?

推荐答案

我使用嵌套和重复的字段解决了这个问题。我以为data Studio不能按重复字段中的值进行筛选,但我已经检查了它是否可行,以便完全符合我的用例。

连接表架构:

[
  {
    "mode": "REQUIRED",
    "name": "id",
    "type": "INTEGER"
  },
  { 
    "mode": "REPEATED",
    "name": "service",
    "type": "RECORD",
    "fields": [
      {
        "mode": "NULLABLE",
        "name": "name",
        "type": "STRING"
      },
      {
        "mode": "NULLABLE",
        "name": "bad_employees",
        "type": "INTEGER",
      }
    ]
  },
  {
    "mode": "NULLABLE",
    "name": "total_employees",
    "type": "INTEGER",
    "description": "Sum of the emails sent during off hours for all the sources"
  },
]

连接表表示法:

|    id     |  service.name  |  service.bad_employees  |  total_employees  |
|     1     |     Gmail      |          3416           |       34124       |
|     2     |     Gmail      |         10782           |       82561       |
|           |     Groups     |          9267           |                   |

这样,我可以通过执行SUM(service.bad_employees)获得BAD_Employees的正确总和,并通过SUM(total_employees)获得TOTAL_Employees的正确值。

另外,如果我只想按某个服务进行筛选,我可以在service.name字段上添加一个控件,它将正确筛选。

这篇关于在由连接复制的Data Studio条目上表示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆