分析BigQuery中的Gmail日志

时间:2019-01-15 16:26:39

标签: email logging google-bigquery gmail

我正在尝试确定从我的G Suite帐户发送的邮件总数。我正在将日志流式传输到BigQuery。

消息可能会多次出现在日志中,所以我可以计算出不同的消息头。

SELECT 
count (DISTINCT message_info.rfc2822_message_id) as MessageIDCount
FROM `my data set`

这将计算入站和出站的总数,因此如果我只想出站,则可以添加WHEN message_info.message_set.type = 8。

但是gmail https://support.google.com/a/answer/2956491#sendinglimitsforrelay的发送限制

发送限制不仅是发送的邮件总数,还取决于收件人的数量。

我有兴趣运行一个查询,该查询将提供发送的邮件总数,如果我向2个人发送一封电子邮件,它将被视为2,如果我发送至10个人将被视为10,等等。

本质上,我想确定在给定的一天内达到发送限制的距离。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

以下是用于BigQuery标准SQL

#standardSQL
SELECT 
  DATE(TIMESTAMP_MICROS(event_info.timestamp_usec)) day,
  COUNT(address) AS total_recipients  
FROM `project.dataset.gmail_log`, 
UNNEST(message_info.destination) AS destination
WHERE EXISTS (SELECT 1 FROM UNNEST(message_info.message_set) WHERE type = 8)
GROUP BY day  

它将以以下格式返回每日的收件人总数

Row day         total_recipients     
1   2019-01-10  100  
2   2019-01-11  100  
3   2019-01-12  100  
4   2019-01-13  100  
5   2019-01-14  100