【问题标题】:Does BigQuery include intraday tables when I query over all dates up to current date?当我查询截至当前日期的所有日期时,BigQuery 是否包括日内表?
【发布时间】:2018-10-04 03:27:18
【问题描述】:

BigQuery 中的 Google Analytics 360 数据有两个过去两天的日内表,以及之前日期的永久分区表。当我对过去 30 天的 ga_sessions_ 表运行查询时,这是否会自动将这两天的数据包含在 ga_sessions_intraday_ 表中,还是我必须专门包含它们?

编辑;这是一个说明这一点的查询:

SELECT date, visitId, totals.transactions FROMdataset.ga_sessions_2018* WHERE _TABLE_SUFFIX BETWEEN "0401" AND CAST(CURRENT_DATE() as STRING) ORDER BY date DESC

结果是最近的日期是两天前(即不包括盘中表。)我猜这就是我的问题,谢谢。

【问题讨论】:

  • 您正在运行的查询是什么?没有足够的信息可以说明。
  • 我现在已经包含了一个示例查询,对不起。在这种情况下,由于 BQ 找不到 ga_sessions_20180424 表(因为它仍在盘中),它会忽略查询的那部分吗?我只是在寻找一种方法来查询所有 ga_sessions 表以及 ga_sessions_intraday 表。

标签: google-analytics google-bigquery


【解决方案1】:

您可以查询任何您想要的表;只需编写一个匹配正确后缀的过滤器。例如,

SELECT date, visitId, totals.transactions, _TABLE_SUFFIX AS suffix
FROM `dataset.ga_sessions_*` WHERE REGEXP_EXTRACT(_TABLE_SUFFIX, r'[0-9]+')
  BETWEEN "20180401" AND FORMAT_DATE('%Y%m%d', CURRENT_DATE())
ORDER BY date DESC

我把后缀放在选择列表中,这样你就可以知道哪个表匹配了。

【讨论】:

  • 感谢 Elliott,这正是我想要的。干杯,
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-25
  • 1970-01-01
  • 1970-01-01
  • 2015-01-04
  • 1970-01-01
  • 2012-03-05
  • 1970-01-01
相关资源
最近更新 更多