У меня есть набор данных журналов Gmail BigQuery, который управляется Google. Google транслирует журналы электронной почты в таблицу с именем daily_ почти в реальном времени, которая разделена по дням. В журналах есть записи, указывающие, когда определенные сообщения запускают правила маршрутизации почты, и я хочу выбрать их и рассчитать время, необходимое для выполнения правила маршрутизации, с помощью разницы во времени. Мне удалось вычислить разницу во времени с помощью SQL, я сохранил ее как представление и теперь хочу построить график в DataStudio. Однако всякий раз, когда я добавляю временной фильтр с измерением диапазона дат, он выдает следующую ошибку:
Ошибка конфигурации пользователя
Этот источник данных был неправильно настроен.
Запрос вернул ошибку.
Неверная отметка времени: '-' Идентификатор ошибки: 3d446739
Моей первой мыслью было, что, возможно, существуют строки, в которых поле _TABLE_SUFFIX раздела пустое или пустое. Тем не менее, после запуска команды «выбрать отдельное _TABLE_SUFFIX» и просмотра результатов, я больше не уверен, что это так, все они имеют значение даты.
Есть идеи, что может быть причиной этого? Для чего стоит, когда я добавляю представление в качестве источника данных в DataStudio, он правильно выбирает тип данных в качестве даты. Google сохраняет значения в _TABLE_SUFFIX с формальным YYYYMMDD, который именно так и выглядит DataStudio при добавлении источника.
Хуже всего во всем этом является то, что мой коллега использует тот же набор данных в качестве источника (хотя и с другим, но схожим образом настроенным видом), и он отлично работает, а мой - нет. Любая помощь приветствуется.
Это представление SQL, которое я создал и хочу отобразить в Data Studio:
SELECT
_TABLE_SUFFIX as pt,
MIN(DATETIME(timestamp_micros(event_info.timestamp_usec), "America/New_York")) as time_before,
MAX(DATETIME(timestamp_micros(event_info.timestamp_usec), "America/New_York")) as time_after,
DATETIME_DIFF(
MAX(DATETIME(timestamp_micros(event_info.timestamp_usec), "America/New_York")),
MIN(DATETIME(timestamp_micros(event_info.timestamp_usec), "America/New_York")),
SECOND) as timediff,
message_info.num_message_attachments,
message_info.source.address as sender,
dest.address as recipeint,
message_info.rfc2822_message_id,
message_info.subject
FROM
`g-suite-logs.gmail_logs.daily_*` as t1,
UNNEST ( message_info.destination ) as dest,
UNNEST ( message_info.triggered_rule_info ) as rule
WHERE rule.rule_name = "Route to third party MTA" OR rule.rule_name = "Receive back from third party MTA"
GROUP BY
pt,
message_info.rfc2822_message_id,
message_info.source.address,
dest.address,
message_info.subject,
message_info.num_message_attachments
ORDER BY pt,rfc2822_message_id
Я также подозревал, что, возможно, UNNEST вводил некоторые нулевые значения в _TABLE_SUFFIX, но больше не подозревал, что это так.