【发布时间】: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