Как запросить ga_sessions_ и ga_realtime_sessions_view_ в одном и том же запросе BigQuery? - PullRequest
0 голосов
/ 21 сентября 2018

Мне было поручено собрать несколько визуализаций, которые отслеживают сегодняшнюю производительность в 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
...