Куб даних

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Куб даних у комп'ютерному програмуванні — багатовимірний масив. Як правило, поняття «куб даних» використовується, у тих випадках, коли пам'ять, необхідна для збереження масиву даних, значно перевищує основну хостингову пам'ять комп'ютера; наприклад сховища даних із кількома терабайтами / петабайтами та часові ряди зображень.

Куб даних використовується для того, щоб представити дані (такі як якась подія, міра, факт) у розрізі певних вимірів або набору характеристик. Наприклад, у випадку OLAP, куб можна сформувати як події продажу певного товару у певній дочірній компанії в певний час. У часових рядах супутникових знімків характеристиками, що розглядаються, будуть широта, довгота, час; фактом буде піксель для даної координати простору / часу, який приймає супутник. Незважаючи на те, що таке представлення даних називається кубом (а приклади вище, для стислості, є тривимірними), куб даних, як правило, є багатовимірним поняттям, яке може бути одновимірним, двовимірним, тривимірним і так далі. У будь-якому випадку, кожен вимір являє собою окрему характеристику, тоді як клітинки в кубі є подіями, фактами або мірою деякої величини. Заповнення куба може бути різною. Іноді куби містять лише кілька заповнених клітин, а решта є порожньою чи невизначеною, іноді комірки заповнені майже повністю чи повністю. У першому випадку такі дані називаються розрідженими, у другому випадку вони називаються щільними, хоча між ними немає жорсткого розмежування.

Історія

[ред. | ред. код]

Багатовимірні масиви давно відомі в мовах програмування. Fortran пропонує одновимірні масиви та масиви із масивів, що дозволяє будувати масиви більшого розміру. APL підтримує масиви розмірності n та великий набір операцій над ними. Спільним у масивах усіх мов, є те що вони повинні поміщатися в основну пам'ять і бути доступними лише під час виконання певної програми, що їх використовує (наприклад, програмного забезпечення для обробки зображень).

Серія форматів обміну даними підтримує зберігання та передачу кубоподібних даних, часто з урахуванням конкретних доменів. Прикладами є MDX для статистичних (зокрема, бізнес) даних, ієрархічний формат даних для загальнонаукових даних та TIFF для зображень.

У 1992 році Пітер Бауманн представив роботу по адмініструванню масивними кубами даних, що мала ефективну архітектуру програмного забезпечення та високий рівень функціональності для користувачів. Над кубами даних можна було проводити такі операції, як вилучення підмножини, обробку, злиття та загальні запити як у мовах маніпулювання даними, таких як SQL.

Через кілька років концепція кубів даних була застосована для опису бізнес даних, що змінюються в розрізі часу Джимом Греєм та ін.,[1] та Венкі Харинараяна, Ананда Раджарамана та Джеффа Уллмана[2] які входять до списку 500 найбільш цитованих статті з інформатики за 25-річний період.[3]

Приблизно в той час при німецькій Gesellschaft für Informatik була створена робоча група по роботі над багатовимірними базами даних («Arbeitskreis Multi-Dimensionale Datenbanken»).[4][5]

Datacube Inc. була компанією з обробки зображень, яка продавала апаратні та програмні додатки для ринку ПК у 1996 році, однак, не звертаючись до таких понять як куби даних.

Ініціатива EarthServer встановила вимоги до обслуговування куба геоданих.[6]

Стандартизація

[ред. | ред. код]

У 2018 році мова бази даних ISO SQL була розширена з функцією куб даних як «SQL — Частина 15: Багатовимірні масиви (SQL / MDA)».[7]

Служба обробки вебпокриттів — мова для аналізу багатовимірних геоданих, створена Open Geospatial Consortium в 2008 році. Окрім загальних операцій з кубами даних, мова знає про семантику простору та часу і підтримує як регулярні, так і нерегулярні сітки кубів даних, засновані на концепції покриття .

Багатовимірні вирази, розроблені та започатковані корпорацією Майкрософт, є стандартом в запитах до кубів даних в бізнес індустрії.

Впровадження

[ред. | ред. код]

Багато високо рівневих мов програмування трактують куби даних та інші великі масиви як окремі сутності, що є всупереч їх змісту. До таких мов належать APL, IDL, NumPy, PDL, і S-Lang, дозволяють програмісту маніпулювати повним кіно кліпом та іншими даним переважно простими виразами, отриманими з лінійної алгебри та векторної математики. Деякі мови (наприклад, PDL) розрізняють список зображень та куб даних, тоді як багато (наприклад, IDL) такої функції не має.

СКБД масивів (Системи керування базами даних) пропонують модель даних, яка загалом підтримує визначення, управління, пошук і маніпулювання n-вимірними кубами даних. Такий вид баз даних був запроваджений системою rasdaman[en] з 1994 року.[8]

Програми

[ред. | ред. код]

Багатовимірні масиви можуть не лише змістовно представляти просторово-часові дані датчика, зображення та модельовані дані, але й статистичні дані, де семантика вимірів не обов'язково має просторовий або часовий характер. Як правило, у кубі даних можна поєднати будь-яку вісь з будь-якою іншою.

Математика

[ред. | ред. код]

У математиці одновимірний масив відповідає вектору, двовимірний масив нагадує матрицю; більш загально, тензор може бути представлений у вигляді n-вимірного куба даних.

Наука та техніка

[ред. | ред. код]

Для часової послідовності кольорових зображень масив, як правило, чотиривимірний, з вимірами, котрі відображають X та Y координати зображення, час та площину кольорів RGB (або іншого колірного простору). Наприклад, ініціатива EarthServer[9] об'єднує центри обробки даних з різних континентів, пропонуючи 3-D x/y/t часові ряди супутникових зображень та 4-D x/y/z/t дані про погоду для пошуку та обробки на сервері за допомогою Open Geospatial Consortium WCPS стандартів запитів геокубів даних.

Куб даних також використовується в області спектроскопії зображень, оскільки спектрально розрізнене зображення представляється у вигляді тривимірного об'єму.

Бізнес-аналітика

[ред. | ред. код]

Під час аналітичної обробки даних у реальному часі (OLAP) куби даних є спільною домовленістю у роботі з бізнес даним, для аналізу у різних площинах за допомогою таких операцій, як нарізка (фільтрація за одним полем/характеристикою), нарізання кубів (фільтрація за кількома полями/характеристиками), обертання (групування даних) та агрегування.

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. Gray, Jim; Chaudhuri, Surajit; Bosworth, Adam; Layman, Andrew; Reichart, Don; Venkatrao, Murali; Pellow, Frank; Pirahesh, Hamid (January 1997). Data Cube: A Relational Aggregation Operator Generalizing Group-By, Cross-Tab, and Sub-Totals. Data Mining and Knowledge Discovery. 1 (1): 29—53. doi:10.1023/A:1009726021843.
  2. Harinarayan, Venky; Rajaraman, Anand; Ullman, Jeffrey D. (1996). Implementing data cubes efficiently. Implementing Data Cubes Efficiently. с. 205—216. doi:10.1145/233269.233333. ISBN 978-0897917940.
  3. 500 Most Cited Computer Science Articles [Архівовано 31 жовтня 2020 у Wayback Machine.] (501—600), CiteSeer. 12 June 2009. Retrieved 21 March 2017.
  4. Der GI-Arbeitskreis Multidimensionale Datenbanken stellt sich vor, Peter Baumann, Wolfgang Lehner, 1997, Datenbank Rundbrief Volume 19, 1997, http://dblp.uni-trier.de/db/journals/gidr/gidr19.html#BaumannL97 [Архівовано 1 листопада 2020 у Wayback Machine.]
  5. Rückblick auf den GI-Arbeitskreis Multidimensionale Datenbanken, Peter Baumann, 1999, Datenbank Rundbrief Volume 23:, 1999, http://dblp.uni-trier.de/db/journals/gidr/gidr23.html#Baumann99 [Архівовано 1 листопада 2020 у Wayback Machine.]
  6. The Database Manifesto. www.earthserver.eu. Архів оригіналу за 25 січня 2021. Процитовано 21 вересня 2017.
  7. ISO/IEC DIS 9075-15 Information technology -- Database languages -- SQL -- Part 15: Multi-dimensional arrays (SQL/MDA). Архів оригіналу за 29 жовтня 2020. Процитовано 27 травня 2018.
  8. Management of Multidimensional Discrete Data (PDF). www.vldb.org. Архів оригіналу (PDF) за 29 жовтня 2020. Процитовано 21 вересня 2017.
  9. EarthServer - Big Datacube Analytics at Your Fingertips. www.earthserver.eu. Архів оригіналу за 28 жовтня 2020. Процитовано 31 березня 2017.