Руководящая база данных 'события' веб-сайта

Вы пытались использовать updateChildValues ​​ вместо setValue?

Использование setValue перезаписывает данные в указанном месте, включая любые дочерние узлы. updateChildValues, с другой стороны, позволяет обновлять дочерние значения нижнего уровня, указывая путь для ключа.

https://firebase.google.com/docs/database/ios/read-and-write

6
задан Simon 23 October 2008 в 07:09
поделиться

5 ответов

Вы сказали две вещи, которые находятся в конфликте друг с другом.

  1. Я хочу смочь сделать все виды datamining и корреляции между различными операциями пользователей и что они сделали.
  2. Я хочу удостовериться, что мой файл дб не продолжает расти.

Я - также большой поклонник анализа данных, но Вам нужны данные к моему. В моем уме создайте масштабируемое проектирование баз данных и план относительно него для роста ЧРЕЗВЫЧАЙНО. Затем пойдите, захватывают все данные, Вы можете. Затем наконец, Вы сможете сделать весь прохладный анализ данных, который Вы видите во сне.

2
ответ дан 17 December 2019 в 18:21
поделиться

Лично я сохранил бы, абсолютно сохраняют записи журнала вне основной базы данных. Производительность Вашего приложения получила бы огромный удар при необходимости постоянно сделать записи.

Я думаю, что способ пойти состоит в том, чтобы создать вторичную базу данных по другой машине, опубликовать API SOAP, который не важен базовой Схеме DB, и имейте отчет приложения этому. Я также предположил бы, что семантика возможно-записи (не ожидают ответа подтверждения) могла сделать для Вас, если можно рискнуть освобождать часть этой информации.

На вторичном DB Вы можете иметь свой триггер вызовов API своего рода сокращение базы данных или отсоединять/копировать/воссоздавать процедуру технического обслуживания. При необходимости в журнале затем, Вы не должны разочаровываться в возможности его являющийся полезным в будущем.

При необходимости в своего рода аналитическом сервисе на это лучшим способом пойти является SQL Server. MySQL Otherwise или PostGREs сделают намного более дешевое задание.

1
ответ дан 17 December 2019 в 18:21
поделиться

Пересмотр прежнего мнения проблемы мог бы быть то, что доктор прописал. Могут записи 100k в день действительно быть настолько полезными? Походит на информационную передозировку мне. Возможно, запустите путем сокращения гранулярности отслеживания посещений?

0
ответ дан 17 December 2019 в 18:21
поделиться

С точки зрения пересмотра прежнего мнения проблемы Вы могли бы исследовать один из многих веб-пакетов статистики там. Существует только несколько полей в Вашей демонстрационной таблице, которые не являются частью out-of-the-box реализации WebTrends или Google Analytics или многих других. Другие объекты в Вашей таблице могут быть настроены также, но взять немного более мысль и некоторое исследование, в которое пакет удовлетворит все Ваши потребности. Большая часть от материала полки может иметь дело с отслеживанием кампании и т.д. в эти дни.

Еще одна опция состояла бы в том, чтобы разгрузить общий материал к стандартному пакету веб-статистики и затем проанализировать этот назад в SQL Server с Вашими пользовательскими внеполосными данными.

Я не знаю, сколько других данных Вы имеете, но если 107K + записывает день, представляет объем его, Вы могли бы закончить тем, что провели свое время, имея дело с хранением Вашей веб-работы статистики, а не Ваших приложений фактическая функциональность.

0
ответ дан 17 December 2019 в 18:21
поделиться

Я сохранил бы их в той же базе данных, если Вы не можете безопасно произвести чистку / хранят старые записи для запросов OLAP и затем сохраняют основную базу данных в целях OLTP.

Удостоверьтесь, что Вы устанавливаете большой начальный размер для базы данных и устанавливаете большое, автовыращивают значение и гарантируют, чтобы у Вас не заканчивалось дисковое пространство. Записи 107k день собирается занять место, неважно, как Вы храните его.

Что касается резервных копий, это абсолютно зависит от Ваших требований. Еженедельная полная, ежедневная разность и разность одного/два часов должны хорошо работать, пока подсистема IO может справиться с нею.

Дополнительные индексы займут место, но снова, оно зависит, на которых столбцах Вы добавляете. Если Вы имеете 10^6 строки, и Вы добавляете некластеризованный индекс, который это поднимет 10^6 * 4 * 2. Это 10^6 для фактического индексированного столбца, и дополнительные 4 байта для первичного ключа также, для каждого элемента индекса. Таким образом для каждого 1 миллион записей, некластеризованный индекс на международном столбце поднимет примерно 8 МБ.

Когда таблица растет, можно добавить серверы и сделать горизонтальное разделение на таблице, таким образом, Вы распространяете данные по нескольким серверам.

Что касается IO, который, вероятно, будет самым большим препятствием, удостоверьтесь, что у Вас есть достаточно шпинделей для обработки загрузки, предпочтительно с индексами, находящимися на их собственном наборе дисков/LUN и фактические данные по их собственному набору дисков/LUN.

0
ответ дан 17 December 2019 в 18:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: