Создать панель управления в базе данных Firebase для различных показателей - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть events в таблице базы данных Firebase, где каждое событие имеет определенные поля.Одним из полей является event_type.Чего я хочу добиться, так это уметь визуализировать в графической форме, сколько событий каждого типа происходит ежедневно?

Как мне сделать что-то подобное в базе данных Firebase?

Q1.Возможно ли сделать это напрямую в firebase?

Q2.Нужно ли перемещать данные в другой источник данных (например, большой запрос) и настраивать панель мониторинга там?

1 Ответ

0 голосов
/ 25 сентября 2018

Определенно возможно создать панель мониторинга с агрегированными данными непосредственно в базе данных Firebase Realtime.Но вам придется использовать другой подход, чем, например, с BigQuery.

В реляционных базах данных вы создадите панель мониторинга, выполнив запросы агрегации.Например, чтобы показать, сколько событий каждого типа, вы запустите что-то вроде SELECT type, COUNT(*) FROM events GROUP BY type.

База данных реального времени Firebase (и большинство баз данных NoSQL) не имеет такой операции GROUP BY, а неCOUNT() метод.Таким образом, это означает, что вам придется загрузить все данные в вашу панель мониторинга и сгруппировать / подсчитать их там, что довольно дорого.Поэтому в базах данных NoSQL вы обычно сохраняете счетчик прогонов для каждого типа в базе данных и обновляете его при каждой операции записи.Хотя это накладывает накладные расходы на каждую операцию записи, сама панель мониторинга внезапно становится очень простой, когда вы делаете это.Пример простого счетчика см. В репозитории function-samples .

. Этот подход работает, только если вы заранее знаете, какие счетчики (и другие агрегаты) вы хотите отобразить на панели инструментов.,Если это не так, многие разработчики используют ночные резервные копии из базы данных реального времени для загрузки данных в другую систему, которая больше подходит для поисковых запросов, таких как BigQuery.

Любой подход может работать нормально.Правильный подход зависит от вашего конкретного варианта использования (например, знаете ли вы точные данные, которые вы хотите получить на панели инструментов, или вы все еще это выясняете?) И что вам наиболее удобно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...