Мне было поручено собрать несколько визуализаций, которые отслеживают сегодняшнюю производительность в Google Analytics по сравнению с производительностью за предыдущий день, и я использую BigQuery для создания представлений для этой цели.
Проблема, с которой я столкнулся, заключается в том, чтокогда я пытаюсь получить представление из таблицы ga_sessions_
и ga_realtime_sessions_view_
, я получаю следующую ошибку:
Views cannot be queried through prefix. Partial list of the matched views are: big-query-project-34643:162968675.ga_realtime_sessions_view_20180829, big-query-project-34643:162968675.ga_realtime_sessions_view_20180921.
Кто-нибудь знает, как я могу создать представление изпросмотр в реальном времени без этой ошибки при использовании подстановочного знака и суффикса?
Вот мой запрос, если вам интересно:
#standardSQL
WITH
ga_tables AS (
SELECT
CAST(CONCAT(SUBSTR(date,1,4),'-',SUBSTR(date,5,2),'-',SUBSTR(date,7,2)) AS DATE) AS Date,
EXTRACT(HOUR
FROM
TIMESTAMP_SECONDS(visitStartTime)) AS sessionHour,
trafficSource.source AS source,
trafficSource.medium AS medium,
COUNT(DISTINCT fullVisitorId) AS users,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM
`big-query-project-34643.162968675.ga_sessions_*`
WHERE
_TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 365 DAY))
AND FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 0 DAY))
GROUP BY
date,
sessionHour,
source,
medium
UNION ALL
SELECT
CAST(CONCAT(SUBSTR(date,1,4),'-',SUBSTR(date,5,2),'-',SUBSTR(date,7,2)) AS DATE) AS Date,
EXTRACT(HOUR
FROM
TIMESTAMP_SECONDS(visitStartTime)) AS sessionHour,
trafficSource.source AS source,
trafficSource.medium AS medium,
COUNT(DISTINCT fullVisitorId) AS users,
SUM(totals.transactions) AS transactions,
SUM(totals.transactionRevenue)/1000000 AS revenue
FROM
`big-query-project-34643.162968675.ga_realtime_sessions_view_*`
WHERE
_TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
AND FORMAT_DATE('%Y%m%d',DATE_SUB(CURRENT_DATE(), INTERVAL 0 DAY))
GROUP BY
date,
sessionHour,
source,
medium )
SELECT
Date AS Date,
sessionHour,
source,
medium,
users,
transactions,
revenue
FROM
ga_tables
ORDER BY
date DESC