Google bigquery 查询详细信息时添加标题信息

Google bigquery 查询详细信息时添加标题信息,google-bigquery,Google Bigquery,我有这样的数据。这是Teradata日志示例,其中CPU和IO是在QueryID级别捕获的。我已经解析了QueryID对应的querytext,以进一步识别其中引用的数据库和表。虽然我已经解析了查询并将其分解为详细信息,但我无法在详细级别划分捕获的CPU和IO。它们是该查询的标题级属性 我现在在Datastudio上显示数据。当我在仪表板上选择DatabaseReferred或TableReferred字段以获取该查询中引用的表的不同计数时,CPU和IO会在内部取消对数据的测试时被复制,当我对其

我有这样的数据。这是Teradata日志示例,其中CPU和IO是在QueryID级别捕获的。我已经解析了QueryID对应的querytext,以进一步识别其中引用的数据库和表。虽然我已经解析了查询并将其分解为详细信息,但我无法在详细级别划分捕获的CPU和IO。它们是该查询的标题级属性

我现在在Datastudio上显示数据。当我在仪表板上选择DatabaseReferred或TableReferred字段以获取该查询中引用的表的不同计数时,CPU和IO会在内部取消对数据的测试时被复制,当我对其进行求和时,它会崩溃

您能给我一个主意吗?如何在计算每个查询中引用的不同数据库和表的同时,只对CPU求和一次

输入数据如下

Row    Username   QueryId    CPU    IO    DatabaseReferred TablesReferred 
1)     ABC        1234       100    123   DB1              TB1
                                          DB2              TB2
                                          DB1              TB3
2)     ABC        8454       589    565   DB1              TB3
                                          DB2              TB6
3)     ABC        3564       145    243   DB3              TB4
                                          DB5              TB3
4)     PQR        6352       737    562   DB2              TB6
                                          DB1              TB7
                                          DB1              TB2
5)     PQR        2345       200    126   DB2              TB5
                                          DB1              TB1


我看到的输出如下所示

Username  Count(DistinctQueryID)  Sum(CPU)  SUM(IO)  DistinctDatabaseReferred DistinctTablesReferred 
ABC          3                     834       931           4                         5
PQR          2                     937       688           2                         5
为了便于快速参考,我正在准备WITH子句,以便在解决方案中使用输入数据

SELECT 'ABC' username, cast('1234' as int64) QueryID, cast('100' as int64) CPU, cast('123' as int64) IO, ['DB1','DB2','DB1'] DatabaseReferred, ['TB1','TB2','TB3'] TablesReferred 
  UNION ALL
  SELECT 'ABC' username, cast('8454' as int64) QueryID, cast('589' as int64) CPU, cast('565' as int64) IO, ['DB1','DB2'] DatabaseReferred, ['TB3','TB6'] TablesReferred 
  UNION ALL
  SELECT 'ABC' username, cast('3564' as int64) QueryID, cast('145' as int64) CPU, cast('243' as int64) IO, ['DB3','DB5'] DatabaseReferred, ['TB4','TB3'] TablesReferred 
  UNION ALL
  SELECT 'PQR' username, cast('6352' as int64) QueryID, cast('737' as int64) CPU, cast('562' as int64) IO, ['DB2','DB1','DB1'] DatabaseReferred, ['TB6','TB7','TB2'] TablesReferred 
  UNION ALL
  SELECT 'PQR' username, cast('2345' as int64) QueryID, cast('200' as int64) CPU, cast('126' as int64) IO, ['DB2','DB1'] DatabaseReferred, ['TB5','TB1'] TablesReferred 

下面是BigQuery标准SQL

#standardSQL
SELECT 
  Username, 
  Count_of_Distinct_QueryId, 
  Sum_CPU, 
  Sum_IO,
  (SELECT COUNT(DISTINCT db) FROM t.dbs AS db) AS DistinctDatabaseReferred,
  (SELECT COUNT(DISTINCT tbl) FROM t.tbls AS tbl) AS DistinctTablesReferred
FROM (
  SELECT Username,
    COUNT(DISTINCT QueryId) AS Count_of_Distinct_QueryId,
    SUM(CPU) AS Sum_CPU,
    SUM(IO) AS Sum_IO,
    ARRAY_CONCAT_AGG(DatabaseReferred) dbs,
    ARRAY_CONCAT_AGG(TablesReferred) tbls
  FROM `project.dataset.table`
  GROUP BY Username
) t   
如果要应用于问题中的样本数据,则输出为

Row Username    Count_of_Distinct_QueryId   Sum_CPU Sum_IO  DistinctDatabaseReferred    DistinctTablesReferred   
1   ABC         3                           834     931     4                           5    
2   PQR         2                           937     688     2                           5   

我正在准备WITH子句中的数据集,以便一次快速引用一个问题。如果我的回答有助于你的初步问题-请考虑投票并接受它。对于新问题/后续问题-请发布新问题,我/我们将乐于进一步帮助。是的,Mikhail,它帮助了我。谢谢,我将提出一个新问题