google-bigquery - BigQuery 加入需要大量时间
问题描述
我正在尝试在 2 个 BigQuery 表上执行简单的 INNER JOIN,并将其用于在另一个表中插入记录
查询如下:
INSERT INTO Table3 (EventDate, Opens_Count, Sends_Count, JobID)
SELECT
o.EventDate,
COUNT(o.JobID) AS Opens_Count,
COUNT(s.JobID) AS Sends_Count,
s.JobID
FROM Table1 o
INNER JOIN Table2 s
ON o.JobID = s.JobID
GROUP BY EventDate, JobID
此查询自过去 1.5 小时以来一直在运行,我不确定还需要多长时间。
表 1 有大约 150 万条记录,表 2 有大约 360 万条记录。
有没有办法让这个运行更快?
编辑 1
这是我可以看到的一些日志数据
解决方案
尝试更换
COUNT(o.JobID) AS Opens_Count,
COUNT(s.JobID) AS Sends_Count,
经过
COUNT(*) AS Sends_Count
您的请求INNER JOIN
只会计算两个表的交集。我会做一个RIGHT JOIN
来衡量消息的打开率
FROM Table1 o
RIGHT JOIN Table2 s
ON o.JobID = s.JobID
然后计算非空行o.EventDate
与总行数。
推荐阅读
- c# - 影响 Azure 应用服务 (ASP.NET WebApi) 中的并发性的限制因素是什么?
- c++ - 重载的小于运算符返回相反的布尔值
- python-3.x - 如何计算熊猫列中非空元素的数量?
- c++ - 在 C/C++ 中打开位于“/sys/”下的文件时出错
- spring-boot - SpringBootApplication 与 Spring Starter Web 错误
- node.js - 无法在 mongoDb 集合中保存数据:“ReferenceError:模型未定义”
- image - python图像显示
- swiftui - 在 SwiftUI 中返回泛型 View 类型的方法
- elasticsearch - ElasticSearch 查询字符串在嵌套对象中按范围搜索日期
- reactjs - 如何声明 SVG 组件的 props 类型?[React、TypeScript 和 Webpack]