Есть ли шаблон хранения данных, подобный mipmaps в графике?

У нас есть куча данных, которые пользователи могут просматривать в окнах и делать это быстро. Они могут захотеть взглянуть на окно данных, которое представляет собой день, неделю, месяц или произвольные начальные и конечные данные. Сортировка и суммирование всего этого материала в реальном времени оказывается для нас болезненным, поэтому я получил идею сделать что-то похожее на Mipmaps в 3D-рендеринге. В конечном итоге вы сохраняете одни и те же данные, предварительно рассчитанные в разных масштабах, а затем интерполируйте результаты с использованием различных шкал. Поэтому я уже знал бы, какие цифры были в течение года, определенного месяца, данной недели и определенного дня для магазина, и если они попросят определенный диапазон, я использую различные шкалы, чтобы быстро добавить что-то, что дает право но мне не нужно перерабатывать полный набор данных, я просто извлекаю четыре или пять записей и добавляю или вычитаю их.

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

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

3 ответа

ОК, я искал и искал и еще раз поискал. Ссылки Энди Дента заставили меня начать описывать данные как "временные ряды", и это помогло некоторым. Затем я наткнулся на OLAP и понял, что то, что я делаю, изобретает это. Я знал, что это должна быть хорошо известная, тщательно обработанная проблема, и я был прав. OLAP это.

Вы создаете кучу сводных таблиц, которые объединяют данные по определенным размерам (время в этом случае), и вы даже можете получить такие инструменты, как Mondrian, который будет принимать запросы, написанные на другом языке запросов (т.е. не SQL), и набор таблиц фактов плюс агрегаты, и он будет решать, как лучше всего выполнить запрос к этим таблицам.


Мне нравится ваша аналогия с mipmapping, и я думаю, что поле Наблюдения и измерения, особенно режимы выборки, вероятно, там, где вы найдете абстрактный дизайн данных. Это дает вам теорию данных, хотя они думают больше о XML-моделях данных, чем реляционные таблицы.

Раньше я работал с ребятами из CSIRO за этим, и многие думают, что нужно управлять огромными наборами данных для таких вещей, как датчики отбора проб воды. Более подробно на SEEGrid wiki.


В некотором смысле, я думаю, вы ответили на свой собственный вопрос здесь, когда объяснили, как работает Mip Mapping (путем интерполяции/экстраполяции).

На разных уровнях "масштабирования" вы просто выбираете более низкое разрешение или частоту дискретизации данных. Обратное будет применяться на более высоких уровнях "масштабирования" - до такой степени, когда вам нужно будет использовать интерполяцию (например, линейный/полиномиальный/сплайн/и т.д.) Для данных при значениях между вашими точками данных.

licensed under cc by-sa 3.0 with attribution.