BigDataCube: Distributed Multidimensional Data Cube Over Apache Spark : An OLAP framework that brings Multidimensional Data Analysis to modern Distributed Storage Systems

Multidimensional Data Analysis is an important subdivision of Data Analytic paradigm. Data Cube provides the base abstraction for Multidimensional Data Analysis and helps in discovering useful insights of a dataset. On-Line Analytical Processing (OLAP) enhanced it to the next level supporting online...

Full description

Bibliographic Details
Main Author: Weherage, Pradeep Peiris
Format: Others
Language:English
Published: KTH, Skolan för informations- och kommunikationsteknik (ICT) 2017
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-215696
Description
Summary:Multidimensional Data Analysis is an important subdivision of Data Analytic paradigm. Data Cube provides the base abstraction for Multidimensional Data Analysis and helps in discovering useful insights of a dataset. On-Line Analytical Processing (OLAP) enhanced it to the next level supporting online responses to analytical queries with the underlying technique that precomputes (materializes) the data cubes. Data Cube Materialization is significant for OLAP, but it is an expensive task in term of data processing and storage. Most of the early decision support system benefits the value of multidimensional data analysis with a standard data architecture that extract, transform and load data from multiple data sources into a centralized database called Data Warehouse, on which OLAP engines provides the data cube abstraction. But this architecture and traditional OLAP engines do not hold with modern intensive datasets. Today, we have distributed data storage systems that keep data on a cluster of computer nodes, in which distributed data processing engines like MapReduce, Spark, Storm, etc. provide more ad-hoc style data analytical capabilities. Yet, there is no proper distributed system approach available for multidimensional data analysis, nor any distributed OLAP engine is available that follows distributed data cube materialization. It is essential to have a proper Distributed Data Cube Materialization mechanism to support multidimensional data analysis over the present distributed storage systems. Various research work available today which considered MapReduce for data cube materialization. Also, Apache Spark recently enabled CUBE operator as part of their DataFrame API. The thesis raises the problem statement, the best-distributed system approach for Data Cube Materialization, MapReduce or Spark? and contributes with experiments that compare the two distributed systems in materializing data cubes over the number of records, dimensions and cluster size. The results confirm Spark is more scalable and efficient in data cube materialization than MapReduce. The thesis further contributed with a novel framework, BigDataCube, which uses Spark DataFrames underneath for materializing data cubes and fulfills the need of multidimensional data analysis for modern distributed storage systems. === Multidimensional Data Analysis är en viktig del av Data Analytic paradigm. Data Cube tillhandahåller den grundläggade abstraktionen för Multidimensional Data Analysis och hjälper till att hitta användningsbara observationer av ett dataset. OnLine Analytical Processing (OLAP) lyfter det till nästa nivå och stödjer resultat från analytiska frågor i realtid med en underliggande teknik som materliserar Data Cubes. Data Cube Materialization är signifikant för OLAP, men är en kostsam uppgift vad gäller processa och lagra datat.De flesta av tidiga beslutssystem uppfyller Multidimensional Data Analysis med en standarddataarkitektur som extraherar, transformerar och läser data från flera datakällor in I en central databas, s.k. Data Warehouse, som exekveras av OLAP och tillhandahåller en Data Cube-abstraktion. Men denna arkitektur och tradionella OLAP-motorer klarar inte att hantera moderna högbelastade datasets. Idag har vi system med distribuerad datalagring, som har data på ett kluster av datornoder, med distribuerade dataprocesser, så som MapReduce, Spark, Storm etc. Dessa tillåter en mer ad-hoc dataanalysfunktionalitet. Än så länge så finns det ingen korrekt angreppsätt tillgänlig för Multidimensional Data Analysis eller någon distribuerad OLAP-motor som följer Distributed Data Cube Materialization.Det är viktigt att ha en korrekt Distributed Data Cube Materializationmekanism för att stödja Multidimensional Data Analysis för dagens distribuerade lagringssystem. Det finns många forskningarar idag som tittar på MapReduce för Data Cube Materialization. Nyligen har även Apache Spark tillgänglitgjort CUBE-operationer som en del av deras DataFrame API. Detta examensarbete tar upp frågeställningen, vilket som är det bästa angrepssättet för distribuerade system för Data Cube Materialization, MapReduce eller Spark. Arbetet bidrar dessutom med experiment som jämför de två distribuerade systemen i materialiserande datakubar över antalet poster, dimensioner och klusterstorlek. Examensarbetet bidrar även med ett mindre ramverk BigDataCube, som använder Spark DataFramesi bakgrunden för Data Cube Materialization och uppfyller behovet av Multidimensional Data Analysis av distribuerade lagringssystem.