
Сложные многомерные данные
Традиционные многомерные модели данных и методы их реализации предполагают, что:
-
все факты напрямую отображаются на значения измерений более низкого уровня, причем ровно на одно значение в каждом измерении;
-
иерархии измерений представляют собой сбалансированные деревья.
Если эти предположения не выполняются, то стандартные модели и системы оказываются неадекватными. Особенно серьезные проблемы вызывают комплексные многомерные данные, поскольку они не являются суммируемыми (summarizable) — агрегированные результаты более высокого уровня нельзя получить из агрегированных результатов более низкого уровня. Запросы по результатам более низкого уровня будут приносить неверные данные, или предварительные вычисления, сохранение и последующее использование их результатов в данном случае невозможны. Вместо этого агрегированные результаты должны вычисляться непосредственно из базовых данных, что значительно увеличивает затраты на вычисления.
Суммирование требует применения распределенных агрегированных функций и значений иерархии измерений [1, 7]. Неформально иерархия измерений является «строгой», если ни одно из значений измерений не имеет более одного прямого родителя, «сюрьективной» (onto), если иерархия сбалансирована, и «покрывающей» (covering), если ни один локальный путь не «перескакивает» через уровень. Интуитивно это значит, что иерархии измерений должны быть сбалансированными деревьями. Как показано на рис. 5, в случае нерегулярных иерархий измерений некоторые значения более низкого уровня при повторном использовании промежуточных результатов запросов будут либо посчитаны дважды, либо ни разу.
Нерегулярные иерархии возникают в разных приложениях, в том числе в иерархии административных структур [8], иерархии медицинских диагнозов [9] и иерархии концепций для Web-порталов, подобных Yahoo. Одно из решений — нормализовать нерегулярные иерархии, процесс, который предусматривает пополнение несюрьективных и непокрывающих иерархий фиктивными значениями измерений, и перестраивает наборы родителей, для того чтобы решить проблемы нестрогих иерархий. Это преобразование может выполняться прозрачным для пользователя образом [10].
За 30 лет с момента своего возникновения технология многомерных баз данных прошла серьезную эволюцию. С недавних пор она стала реализовываться в решениях, предназначенных для массового рынка, а ведущие производители теперь выпускают многомерные ядра вместе со своими реляционными базами данных, причем часто без дополнительной оплаты. Многомерная технология стала значительно более масштабируемой и зрелой.
Это порождает несколько важных тенденций. Данные, которые необходимо анализировать, становятся все более распределенными. К примеру, это часто необходимо для выполнения анализа, при котором используются данные в формате XML, получаемые с определенных Web-сайтов. Растущая распределенность данных, в свою очередь, требует применения методов, которые позволяют легко добавлять новые данные в многомерные базы данных, тем самым, упрощая задачу создания интегрированного хранилища данных. Среди примеров — автоматическая генерация измерений и кубов из новых источников данных и методы простой и динамической очистки данных.
Технология многомерных баз данных также применяется к новым типам данных, которые современные технологии зачастую не в состоянии адекватно анализировать. К примеру, классические методики, такие как предагрегирование не могут гарантировать небольшое время ответа на запросы, если данные постоянно меняются, как это происходит, например, когда информация поступает с датчиков или от движущихся объектов, таких как автомобили, оснащенные средствами глобального позиционирования.
Наконец, технология многомерных баз данных все больше будет применяться там, где результаты анализа напрямую передаются в другие системы, тем самым, исключая участие человека в этом процессе. Этот контекст в совокупности с необходимостью постоянного обновления предъявляет более жесткие требования к производительности, которым не удовлетворяет современная технология.