BigQuery возвращает данные по x строкам - PullRequest
0 голосов
/ 25 февраля 2019

Для недавнего проекта я хочу нарисовать график движения датчиков.Это довольно просто, мои данные - это временная метка и значение в мм.

Теперь это значение может немного колебаться, поэтому я уже получил помощь, получив скользящую медиану этих значений, поэтому график сглаживаетсяout.

Теперь, если я хочу нарисовать год движения, он состоит из 100.000 точек данных.Это слишком много для браузера, чтобы загрузить или отрисовать, и это превышает разрешение.На экране людей я должен быть в состоянии нарисовать 250 точек, НО дать характеристики графика.

Теперь есть несколько вариантов: во-первых, я предполагаю, что медиана всегда является начальной точкой.

  • для каждых х строк, возвращаемое среднее

Имеет смысл.Но как я могу позволить BigQuery возвращать, скажем, одно целое и среднее значение для каждого блока из 100 строк?

Но если в этих 100 строках у нас будет очевидный скачок, он будет выровнен и, следовательно, не виден (интересный момент данных)

Итак, может быть, я хочу увидеть максимальное или минимальное значение этих 100 строк и вернуть его, чтобы клиент мог нарисовать пик на этом блоке данных.

Я программист, а не статистик, но, возможно, такие вопросы не редкость:)

1 Ответ

0 голосов
/ 25 февраля 2019

Группируйте данные по часам (или ежедневно, если слишком много точек), график 3 строки:

  • AVG
  • MAX
  • MIN

Например:

enter image description here

#standardSQL
SELECT SensorName, TIMESTAMP_TRUNC(Timestamp, hour) hour
  , COUNT(*) c, AVG(Data) avg, MAX(Data) max, MIN(Data) min
FROM `data-sensing-lab.io_sensor_data.moscone_io13`
WHERE SensorName='XBee_40670F5F/light'
GROUP BY 1,2
ORDER BY 2

Это легко при визуализации одного датчика за раз - но вы ищете диаграмму, котораяможет показывать одно и то же для X-датчиков одновременно?

Если вы добавите VARIANCE для поиска времен с большим количеством изменений:

enter image description here

Вы можете заметить, что вполне нормально находить пятна высокой дисперсии - особенно каждое утро в этом случае.Так что вам не нужно заботиться о высокой дисперсии, а сравнивайте ее с обычной линией тренда.И это было бы началом интересного нового вопроса.

...