Как построить временной ряд из BigQuery с точностью до минуты? - PullRequest
0 голосов
/ 03 марта 2019

У меня есть набор данных в BigQuery, и я использую его в качестве источника для создания отчета в Data Studio.

Я могу построить данные в виде временного ряда / комбинированного / линейного графика, используя метку времени какразмерность и другие числовые поля, которые у меня есть в качестве метрик.

Проблема, с которой я столкнулся, заключается в том, что максимум, что я могу получить, это точность до часа, а мне нужна минутная точность.Набор данных в BigQuery имеет точность в миллисекунды, но я, похоже, не могу получить его в Data Studio.

Я прочитал короткие предложения о создании строки с датой и использовании ее в качестве метрики,или извлечение и объединение мелкого поля, но я не могу заставить его работать.

samp

Ответы [ 2 ]

0 голосов
/ 09 марта 2019

В BigQuery, TRUNCATE на MINUTE и GROUP BY это.Затем в Data Studio установите эту метку времени как значение STRING вместо DATE.Создайте линейный график с этой отметкой времени STRING в качестве измерения X и вуаля.

enter image description here enter image description here

Запрос для этого vis:

WITH data AS (
  SELECT bus, ST_GeogPoint(longitude, latitude) point
    , PARSE_TIMESTAMP('%Y%m%d %H%M%S',FORMAT('%i %06d', day, time)) ts
  FROM `fh-bigquery.mta_nyc_si.201410_bustime`
  WHERE day=20141014
  AND bus IN (7043, 7086, 7076, 2421, 7052, 7071)
)

SELECT bus, TIMESTAMP_TRUNC(ts, MINUTE) ts, AVG(distance/time) speed
FROM (
  SELECT bus, ts
    , ST_DISTANCE(point, LAG(point, 3) OVER(PARTITION BY bus ORDER BY ts)) distance
    , TIMESTAMP_DIFF(ts, LAG(ts, 3) OVER(PARTITION BY bus ORDER BY ts), SECOND) time
  FROM data
)
WHERE time IS NOT null 
GROUP BY bus, ts
HAVING speed < 500
0 голосов
/ 07 марта 2019

Вы можете создать представление своей таблицы с помощью этого запроса:

SELECT
  t.*,
  FORMAT_TIMESTAMP("%Y-%m-%d %H:%M", t.timestamp) as date_time
FROM
  `project-id.dataset-id.table-id` AS t

После создания такого представления вы можете добавить это представление в качестве источника данных и использовать поле date_time для своего временного ряда

...