Google bigquery 查询详细信息时添加标题信息
我有这样的数据。这是Teradata日志示例,其中CPU和IO是在QueryID级别捕获的。我已经解析了QueryID对应的querytext,以进一步识别其中引用的数据库和表。虽然我已经解析了查询并将其分解为详细信息,但我无法在详细级别划分捕获的CPU和IO。它们是该查询的标题级属性 我现在在Datastudio上显示数据。当我在仪表板上选择DatabaseReferred或TableReferred字段以获取该查询中引用的表的不同计数时,CPU和IO会在内部取消对数据的测试时被复制,当我对其进行求和时,它会崩溃 您能给我一个主意吗?如何在计算每个查询中引用的不同数据库和表的同时,只对CPU求和一次 输入数据如下Google bigquery 查询详细信息时添加标题信息,google-bigquery,Google Bigquery,我有这样的数据。这是Teradata日志示例,其中CPU和IO是在QueryID级别捕获的。我已经解析了QueryID对应的querytext,以进一步识别其中引用的数据库和表。虽然我已经解析了查询并将其分解为详细信息,但我无法在详细级别划分捕获的CPU和IO。它们是该查询的标题级属性 我现在在Datastudio上显示数据。当我在仪表板上选择DatabaseReferred或TableReferred字段以获取该查询中引用的表的不同计数时,CPU和IO会在内部取消对数据的测试时被复制,当我对其
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,它帮助了我。谢谢,我将提出一个新问题