【问题标题】:Day-over-day GA BigQuery Data每日 GA BigQuery 数据
【发布时间】:2018-11-08 01:33:36
【问题描述】:

我正在处理一些查询,以使用 BigQuery 中的 Google Analytics(分析)数据来衡量日常表现。我的项目目前使用从 GA 流入的数据进行设置。问题是昨天的表 ga.us.ga_sessions_20181105 直到凌晨的某个时间才创建。

前一天的实时视图 ga.us.ga_realtime_sessions_view_20181105 在昨天的表创建之前仍然存在。

有没有办法同时查询昨天的表和昨天的实时视图,如果昨天的表还没有写入,则处理未找到表的错误?

类似这样的:

SELECT
  date,
  SUM(totals.visits) AS visits
FROM
    -- If this table doesn't exist yet
    TABLE_DATE_RANGE([ga:us.ga_sessions_],
    DATE_ADD(DATE_ADD(CURRENT_TIMESTAMP(), -6, 'HOUR'), -1, 'DAY'),
    DATE_ADD(DATE_ADD(CURRENT_TIMESTAMP(), -6, 'HOUR'), -1, 'DAY')),
    -- Query this view instead
    TABLE_DATE_RANGE([ga:us.ga_realtime_sessions_view_],
    DATE_ADD(DATE_ADD(CURRENT_TIMESTAMP(), -6, 'HOUR'), -1, 'DAY'),
    DATE_ADD(DATE_ADD(CURRENT_TIMESTAMP(), -6, 'HOUR'), -1, 'DAY'))
WHERE
  TIME(DATE_ADD(SEC_TO_TIMESTAMP(visitStartTime), -6, 'HOUR')) <= TIME(DATE_ADD(CURRENT_TIMESTAMP(), -6, 'HOUR'))
GROUP BY
  date;

解决方案: 感谢@Bobbylank,我只是在同一个查询中选择了两个表:

SELECT
  date,
  SUM(totals.visits) AS visits
FROM
  TABLE_DATE_RANGE([ga:us.ga_sessions_],
    DATE_ADD(DATE_ADD(CURRENT_TIMESTAMP(), -6, 'HOUR'), -1, 'DAY'),
    DATE_ADD(DATE_ADD(CURRENT_TIMESTAMP(), -6, 'HOUR'), -1, 'DAY')),
  TABLE_DATE_RANGE([ga:us.ga_realtime_sessions_view_],
    DATE_ADD(DATE_ADD(CURRENT_TIMESTAMP(), -6, 'HOUR'), -1, 'DAY'),
    DATE_ADD(DATE_ADD(CURRENT_TIMESTAMP(), -6, 'HOUR'), -1, 'DAY'))
WHERE
  TIME(DATE_ADD(SEC_TO_TIMESTAMP(visitStartTime), -6, 'HOUR')) <= TIME(DATE_ADD(CURRENT_TIMESTAMP(), -6, 'HOUR'))
GROUP BY
  date;

【问题讨论】:

    标签: google-analytics google-bigquery


    【解决方案1】:

    我似乎记得遇到过这个问题,并通过选择前 2 天和前一天的 ga_sessions 以及前一天和当天的实时表来解决它。

    这样可以确保查询不会出错,因为每天至少应该有一个可用的表。

    然后我从结果表中选择了前一天的行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-24
      • 2019-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多