Введение
Многомерная структура данных
В контексте компьютерного программирования куб данных (или datacube) представляет собой многомерный ("n-мерный") массив значений. Как правило, термин "куб данных" применяется в ситуациях, когда эти массивы значительно превышают объем основной памяти компьютера; примерами могут служить многотерабайтные/петабайтные хранилища данных и временные ряды данных изображений. Куб данных используется для представления данных (иногда называемых фактами) по интересующим измерениям. Например, в онлайн-аналитической обработке (OLAP) такими измерениями могут быть дочерние компании, предлагаемые компанией продукты и время; в этом случае фактом будет являться событие продажи, когда конкретный продукт был продан в конкретной дочерней компании в определенное время. В случае временных рядов спутниковых изображений измерениями будут координаты широты и долготы, а также время; фактом (иногда называемым показателем) будет пиксель в заданной точке пространства и времени, зафиксированный спутником (после определенной обработки, не имеющей значения в данном контексте). Несмотря на название "куб" (и приведенные выше примеры для краткости являются трехмерными), куб данных, как правило, представляет собой многомерную концепцию, которая может быть одномерной, двухмерной, трехмерной или иметь более высокую размерность. В любом случае, каждое измерение разделяет данные на группы ячеек, при этом каждая ячейка в кубе представляет собой единственный интересующий показатель. Иногда кубы содержат лишь несколько значений, а остальные ячейки пусты, то есть не определены, в то время как в других случаях большинство или все координаты куба содержат значение ячейки. В первом случае такие данные называются разреженными, а во втором – плотными, хотя четкой границы между ними нет.
История
Многомерные массивы давно известны в языках программирования. Fortran предлагает произвольно индексируемые 1D массивы и массивы массивов, что позволяет создавать массивы более высокой размерности, вплоть до 15 измерений. APL поддерживает n-мерные массивы с богатым набором операций. Общим для всех этих подходов является то, что массивы должны помещаться в оперативную память и доступны только пока работает конкретная программа, поддерживающая их (например, программное обеспечение для обработки изображений). Ряд форматов обмена данными поддерживают хранение и передачу данных, подобных данным в форме куба, часто адаптированных к конкретным областям применения. Примеры включают MDX для статистических (в частности, бизнес-) данных, иерархический формат данных (HDF) для общих научных данных и TIFF для изображений. В 1992 году Питер Бауман представил систему управления большими кубиками данных с высокоуровневой функциональностью для пользователя и эффективной архитектурой программного обеспечения. Операции с кубиками данных включают извлечение подмножеств, обработку, объединение и, в целом, запросы, подобные тем, что используются в языках манипулирования данными, таких как SQL. Спустя несколько лет концепция кубика данных была применена для описания бизнес-данных, изменяющихся во времени, как кубиков данных Джимом Греем и другими, а также Венки Харинараяном, Анандом Раджараманом и Джеффом Уллманом, работы которых входят в число 500 наиболее цитируемых статей в области информатики за 25-летний период. Примерно в то же время в немецком обществе информатики (Gesellschaft für Informatik) была создана рабочая группа по многомерным базам данных ("Arbeitskreis Multi Dimensionale Datenbanken"). Datacube Inc. была компанией, занимающейся обработкой изображений, продававшей аппаратные и программные приложения для рынка ПК в 1996 году, однако не специализировалась на кубиках данных как таковых. Инициатива EarthServer определила требования к сервису геоданных в форме кубов.
Стандартизация
В 2018 году язык баз данных ISO SQL был расширен функциональностью куба данных в стандарте "SQL – Часть 15: Многомерные массивы (SQL/MDA)". Web Coverage Processing Service – это язык аналитики геоданных, разработанный Open Geospatial Consortium в 2008 году. Помимо стандартных операций с кубами данных, этот язык учитывает семантику пространства и времени и поддерживает как регулярные, так и нерегулярные кубы данных на основе концепции данных о покрытиях. MultiDimensional eXpressions является отраслевым стандартом для запросов к бизнес-кубам данных, изначально разработанным компанией Microsoft.
Реализация
Многие высокоуровневые компьютерные языки рассматривают кубы данных и другие большие массивы как единые сущности, отличные от их содержимого. Эти языки, такие как Fortran, APL, IDL, NumPy, PDL и S Lang, позволяют программисту манипулировать целыми видеофрагментами и другими данными массово, используя простые выражения, основанные на линейной алгебре и векторной математике. Некоторые языки (например, PDL) различают список изображений и куб данных, в то время как многие (например, IDL) не делают этого. Array DBMS (системы управления базами данных) предлагают модель данных, которая обобщенно поддерживает определение, управление, извлечение и манипулирование n-мерными кубами данных. Эта категория баз данных была впервые разработана системой rasdaman с 1994 года.
Приложения
Многомерные массивы позволяют эффективно представлять пространственно-временные данные с датчиков, изображения и результаты моделирования, а также статистические данные, где смысл размерностей не обязательно связан с пространством или временем. В общем случае, любую ось можно комбинировать с любой другой, формируя куб данных.
Математика
В математике одномерный массив соответствует вектору, двухмерный массив похож на матрицу; в более общем случае тензор может быть представлен как n-мерный куб данных.
Наука и техника
Для временной последовательности цветных изображений массив обычно четырехмерный, при этом измерениями являются координаты изображения X и Y, время и цветовая плоскость RGB (или другое цветовое пространство). Например, инициатива EarthServer объединяет центры обработки данных с разных континентов, предлагая временные ряды спутниковых изображений 3D x/y/t и данные о погоде 4D x/y/z/t для извлечения и серверной обработки посредством стандартного языка запросов геоданных куба Open Geospatial Consortium WCPS. Куб данных также используется в области изобразительной спектроскопии, поскольку спектрально разрешенное изображение представляется в виде трехмерного объема. Кубы данных наблюдений Земли объединяют спутниковые снимки, такие как Landsat 8 и Sentinel 2, с аналитикой географических информационных систем.
Бизнес-аналитика
В онлайн-аналитической обработке (OLAP) кубы данных — это распространенная структура организации бизнес-данных, удобная для анализа с различных точек зрения с помощью операций, таких как срезы, детализация, поворот и агрегирование.