查询返回错误。无效的时间戳:“-”

时间:2019-06-13 13:33:27

标签: google-bigquery google-data-studio

我有一个由Google管理的Gmail日志的BigQuery数据集。 Google将电子邮件日志流式传输到一个名为daily_的表,该表几乎是实时的,并按天划分。日志中记录着指示某些邮件何时触发邮件路由规则的记录,我想选择这些记录并计算执行带有时间差的路由规则所需的时间。我使用SQL成功计算了时差,将其保存为视图,现在想在DataStudio中对其进行图形处理。但是,每当我添加带有日期范围维度的时间过滤器时,都会出现以下错误:

  

用户配置错误

     

此数据源配置不正确。

     

查询返回错误。

     

无效的时间戳:“-”错误ID:3d446739

我首先想到的是,也许在某些行中,分区_TABLE_SUFFIX字段为空白或为空。但是,在运行“选择不同的_TABLE_SUFFIX”并查看结果后,我不再相信这种情况,它们都具有日期值。

任何想法可能是什么原因造成的?值得一提的是,当我将视图作为数据源添加到DataStudio时,它会正确选择数据类型作为日期。 Google使用正式的YYYYMMDD将值存储到_TABLE_SUFFIX中,这正是DataStudio在添加源时看到的值。

最糟糕的是,我的一位同事正在使用相同的数据集作为源(尽管具有不同但配置相似的视图),而他的工作却很好,而我的却没有。任何帮助表示赞赏。

这是我创建并想要在Data Studio中绘制图形的SQL视图:

SELECT
  _TABLE_SUFFIX as pt,
  MIN(DATETIME(timestamp_micros(event_info.timestamp_usec), "America/New_York")) as time_before,
  MAX(DATETIME(timestamp_micros(event_info.timestamp_usec), "America/New_York")) as time_after,
  DATETIME_DIFF(
    MAX(DATETIME(timestamp_micros(event_info.timestamp_usec), "America/New_York")),
    MIN(DATETIME(timestamp_micros(event_info.timestamp_usec), "America/New_York")),
    SECOND) as timediff,
  message_info.num_message_attachments,
  message_info.source.address as sender,
  dest.address as recipeint,
  message_info.rfc2822_message_id,
  message_info.subject
FROM
  `g-suite-logs.gmail_logs.daily_*` as t1,
  UNNEST ( message_info.destination ) as dest,
  UNNEST ( message_info.triggered_rule_info ) as rule
WHERE rule.rule_name = "Route to third party MTA" OR rule.rule_name = "Receive back from third party MTA"
GROUP BY
  pt,
  message_info.rfc2822_message_id,
  message_info.source.address,
  dest.address,
  message_info.subject,
  message_info.num_message_attachments
ORDER BY pt,rfc2822_message_id

我还怀疑UNNEST可能正在向_TABLE_SUFFIX引入一些空值,但不再怀疑是这种情况。

0 个答案:

没有答案