arunandgangadhar_olaas_v4

6
OLaaS: OLAP as a Service Arun D. Patil and N. D. Gangadhar Computer Science and Engineering, Faculty of Engineering and Technology M. S. Ramaiah University of Applied Sciences, Bengaluru Email: [email protected], [email protected] Abstract—Online Analytics Processing (OLAP) is utilised to develop multidimensional operations enabling queries and visu- alisation for Business Intelligence (BI). Most of the OLAP systems come with a tightly integrated user interface for querying and visualisation of data without the core OLAP operations exposed as an API. Advanced BI applications can be developed and composed to create complex workflows if the OLAP operations are available as an API. In addition, a Web Service based API would enable applications to use Service Oriented Architecture for Big Data Analytics and also easily be deployed on a Cloud. This paper documents the design and prototyping of an OLAP based Platform as a Service, termed OLAP as a Service (OLaaS). OLaaS exposes the core OLAP operations of OLAP Cube design, Slicing, Dicing, Rollup and Drilldown and data retrieval as RESTful Web Services for application programming and composition. Syntax and parsing logic for the Web Service call parameters is developed and an engine for Multidimensional Query (MDX) construction for the OLAP operations is developed. The Web Services are designed to use an existing OLAP engine for running the generated MDX queries. For flexibility and processing huge data sizes, data movement is allowed to be programmed using source and destination database sources set as parameters to the developed OLAP operation services. The designed OLaaS services are implemented in Java and integrated with the open-source Mondrian OLAP engine Olap4j. Standard OLAP Cube data is used to test and validate the OLaaS and its OLAP services. The prototyped OLaaS services have successfully passed the testing and validation. The performance of the services is evaluated on the test data and is found that the overhead of the REST request parsing and MDX query generation is comparable with the standalone MDX query processing time. Index Terms—OLAP, Web Service, REST, MDX, Cloud, Work Flow, Big Data, BI I. I NTRODUCTION I N order to keep the business competitive in the fast changing environment, organizations must react to new changes and opportunities quickly. Based on the right in- formation, decision makers should be quick in making the right decision. Such decision-making is usually known by computer based Decision support system (DSS), which is also known as Business Intelligence (BI) applications. BI aims to transform a company’s raw data into meaningful information to achieve the decision making quickly. Different information systems are used to collect the large amount of historical and multidimensional data from the operations of the enterprise. The collected data is used to form the Data Warehouse of the enterprise and will be analyzed by the BI applications. The analysis from the BI applications is used to understand business behavior and make strategic decisions. The key component of BI systems for analyzing the Data Warehouse data is On Line Analytical Processing (OLAP). It enables the analysis of multi-dimensional business data providing insights supporting business decision-making. Data configured for OLAP usually use a multi-dimensional data model. Data attributes such as product sales region, and time are treated as separate dimensions allowing users to perform complex analysis reports. In contrast to the tradi- tional databases which are used to store and analyze business transactions, Data Warehouses are historical and summary information which are analyzed using online transaction Pro- cessing (OLTP). OLAP provides the ability to model business problems enabling organizations gain better insight into the data. A. Motivation Two major shifts in the Enterprise Computing is the shifting of the computation to the Cloud and use of Web Services to develop Service Oriented Architectures (SOA) based en- terprise applications. Cloud Software as a Service (SaaS) computational model allows users to access software to be hired from the Cloud based service provider over the Internet. This allows for on demand scalability of the software usage. In addition, the capital and maintenance burden is shifted away from the user. Thus, with the use of SaaS, there would not be any extra hardware cost, no cost for initial setup and pay for what is used. On the other hand with Platform as a Service (PaaS) Cloud Computational Model, applications can be pro- grammed using the API exposed as a set of Web Services. Web Services allow a uniform API for application/service interaction. In addition, services can be composed to develop complex workflows. There are several standalone BI engines such as MS SQL, Pentaho BI and Oracle DB. All these have OLAP built-in and are tightly integrated into a Data Warehouse back end. However, this tight coupling does not provide for independent evolution of BI and the Data Warehouse components. An independent middle tire between BI and Data Warehouse allows for the BI and data warehouse to evolve independently. If this middle tier is developed using Web Services, it enables building complex workflows and compositions needed for BI to be developed easily. With this motivation, in this paper a framework is pro- posed and prototyped to expose OLAP operations as Web Services enabling complex BI applications to be developed on the computational Cloud. Such an API would provide a

Upload: arun-patil

Post on 27-Jan-2017

24 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: ArunAndGangadhar_OLaaS_v4

OLaaS: OLAP as a ServiceArun D. Patil and N. D. Gangadhar

Computer Science and Engineering, Faculty of Engineering and TechnologyM. S. Ramaiah University of Applied Sciences, Bengaluru

Email: [email protected], [email protected]

Abstract—Online Analytics Processing (OLAP) is utilised todevelop multidimensional operations enabling queries and visu-alisation for Business Intelligence (BI). Most of the OLAP systemscome with a tightly integrated user interface for querying andvisualisation of data without the core OLAP operations exposedas an API. Advanced BI applications can be developed andcomposed to create complex workflows if the OLAP operationsare available as an API. In addition, a Web Service based APIwould enable applications to use Service Oriented Architecturefor Big Data Analytics and also easily be deployed on a Cloud.This paper documents the design and prototyping of an OLAPbased Platform as a Service, termed OLAP as a Service (OLaaS).OLaaS exposes the core OLAP operations of OLAP Cubedesign, Slicing, Dicing, Rollup and Drilldown and data retrievalas RESTful Web Services for application programming andcomposition. Syntax and parsing logic for the Web Service callparameters is developed and an engine for MultidimensionalQuery (MDX) construction for the OLAP operations is developed.The Web Services are designed to use an existing OLAP enginefor running the generated MDX queries. For flexibility andprocessing huge data sizes, data movement is allowed to beprogrammed using source and destination database sources setas parameters to the developed OLAP operation services. Thedesigned OLaaS services are implemented in Java and integratedwith the open-source Mondrian OLAP engine Olap4j. StandardOLAP Cube data is used to test and validate the OLaaS and itsOLAP services. The prototyped OLaaS services have successfullypassed the testing and validation. The performance of the servicesis evaluated on the test data and is found that the overhead of theREST request parsing and MDX query generation is comparablewith the standalone MDX query processing time.

Index Terms—OLAP, Web Service, REST, MDX, Cloud, WorkFlow, Big Data, BI

I. INTRODUCTION

IN order to keep the business competitive in the fastchanging environment, organizations must react to new

changes and opportunities quickly. Based on the right in-formation, decision makers should be quick in making theright decision. Such decision-making is usually known bycomputer based Decision support system (DSS), which is alsoknown as Business Intelligence (BI) applications. BI aims totransform a company’s raw data into meaningful informationto achieve the decision making quickly. Different informationsystems are used to collect the large amount of historical andmultidimensional data from the operations of the enterprise.The collected data is used to form the Data Warehouse ofthe enterprise and will be analyzed by the BI applications.The analysis from the BI applications is used to understandbusiness behavior and make strategic decisions.

The key component of BI systems for analyzing the DataWarehouse data is On Line Analytical Processing (OLAP).It enables the analysis of multi-dimensional business dataproviding insights supporting business decision-making. Dataconfigured for OLAP usually use a multi-dimensional datamodel. Data attributes such as product sales region, andtime are treated as separate dimensions allowing users toperform complex analysis reports. In contrast to the tradi-tional databases which are used to store and analyze businesstransactions, Data Warehouses are historical and summaryinformation which are analyzed using online transaction Pro-cessing (OLTP). OLAP provides the ability to model businessproblems enabling organizations gain better insight into thedata.

A. Motivation

Two major shifts in the Enterprise Computing is the shiftingof the computation to the Cloud and use of Web Servicesto develop Service Oriented Architectures (SOA) based en-terprise applications. Cloud Software as a Service (SaaS)computational model allows users to access software to behired from the Cloud based service provider over the Internet.This allows for on demand scalability of the software usage. Inaddition, the capital and maintenance burden is shifted awayfrom the user. Thus, with the use of SaaS, there would not beany extra hardware cost, no cost for initial setup and pay forwhat is used. On the other hand with Platform as a Service(PaaS) Cloud Computational Model, applications can be pro-grammed using the API exposed as a set of Web Services.Web Services allow a uniform API for application/serviceinteraction. In addition, services can be composed to developcomplex workflows.

There are several standalone BI engines such as MS SQL,Pentaho BI and Oracle DB. All these have OLAP built-inand are tightly integrated into a Data Warehouse back end.However, this tight coupling does not provide for independentevolution of BI and the Data Warehouse components. Anindependent middle tire between BI and Data Warehouseallows for the BI and data warehouse to evolve independently.If this middle tier is developed using Web Services, it enablesbuilding complex workflows and compositions needed for BIto be developed easily.

With this motivation, in this paper a framework is pro-posed and prototyped to expose OLAP operations as WebServices enabling complex BI applications to be developedon the computational Cloud. Such an API would provide a

Page 2: ArunAndGangadhar_OLaaS_v4

replacement of the OLAP services being offered as Software asa Service (SaaS) Cloud Computational Model with a Platformas a Service (PaaS) model.

B. Related Work

With the raise of the Cloud as dominant model for compu-tation, many applications, including BI applications are beingmigrated to Cloud infrastructures. With the advantages ofscalability and no maintenance costs on hardware infrastruc-ture, Cloud is an alternative platform for BI systems [1], [2].Developing strategies and methods of moving and hosting BIapplications to Cloud architectures has been the focus of re-search [1]–[3]. Strimbei [4] discusses the development of andweb based OLAP application on the Cloud without an API forBI application developer to use. Similarly, [1], while bringingout the advantages of moving BI to Cloud platforms, doesnot concentrate on an API for BI application development.Cao et al. [2] is concerned with the data storage system forsupporting both OLAP and OLTP but do not consider exposingthe OLAP operations as an API. A significant amount ofresearch and development effort is currently spent, especiallyby the industry teams, on creating BI applications using newermodels of data storage, processing and retrieval such as Map-Reduce; e.g., [5]. Apache Kylin Project [6] is an effort inthe direction of creating a Web Services based API for OLAP.However, the system is still under active development and noneof the core OLAP Cube operations are available yet.

As discussed above, while most of the OLAP systems havebeen available on the Cloud under SaaS for end-user use, tothe best of our knowledge no significant effort has been putcreate services for core OLAP operations under PaaS model.

C. Organisation of the Paper

The remaining part of this paper is organized as follows.Section 2 discusses the background. Section 3 presents thedesign of OLAP as a Service (OlaaS) and its prototyping.Section 4 presents results and their discussion. Section 5provides a conclusion to the paper.

II. BACKGROUND

One of the powerful technologies to analyze multidimen-sional data is OLAP. With advances in technology and algo-rithms, it has become easier to manage, maintain and store datafor use in BI applications. For decision-making, BI convertsraw data into meaningful data.

A. Data Warehouse

Data warehouse is defined as ”a subject oriented, inte-grated, time variant, non-volatile collection of data in supportof decision-making process” [7]. A Data Warehouse (DW)should help in managing the data effectively and will deliverinformation to the decision makers effectively and efficiently.It is created by integrating varied information sources in theorganisation.

B. BI and Data Warehouse

BI covers performance management, reporting, planning,querying, online analytical processing, predictive analysis andrelated areas. BI applications help to maintain, manage, storeand clarify data from Data Warehouses allowing organizationscan make use of this data to make business decisions. Thecomponents of BI includes ETL engine, Data Warehouse,OLAP and reporting.

C. OLAP

OLAP is one of the key components of a Business In-telligence system. For individuals of business side, the keyelement is ”Multidimensional”. It provides access to informa-tion to non- IT experts, so they can create intelligent querieswithout the mediation of IT experts. OLAP complements On-Line Transactional Processing (OLTP), which uses operationaldatabases of transactions. OLTP relies largely on RelationalDatabase Management Systems (RDBMS) where as OLAPoperates on mutidimensional OLAP Cubes.

Multidimensionality is the main characteristics of OLAP.The essentially two-dimensional limitation of RelationalDatabase can be overcome by OLAP cube data structure. Thestructure of the data cube is closer to decision makers way ofthinking and make user interaction easier. The main aspectsof OLAP cubes are modelling of the data, cube formation anddimension based analysis and visualisation.

D. OLAP Operations

Below are some of the well-known OLAP operations.1) Slicing: In a given cube, slice performs a selection of

one dimension, which results in a sub cube. Slice is the processof picking a rectangular subset of a cube by picking a solitaryquality for one of its dimension, making another cube withone less dimension.

2) Dicing: Dice provides a new sub-cube by selecting twoor more dimensions by a given cube. The dice operationdelivers a sub-cube by permitting the user to pick particularestimations of numerous dimensions.

3) Roll up: Aggregations on the cube are performed usingROLLUP by moving up a hierarchy in a dimension or byreducing a dimension. When Rollup is done, one or moredimensions form the cube is deleted.

4) Drill down: The reverse of roll up is the roll downoperation and it is also called drill down. It traverses fromlow level data to high level data. Drill down permits the clientto explore among levels of information going from the mostcondensed (up) to the most definite (down).

5) OLAP Schema Definition: Schema definition syntax isas follows.

<Schema><cube_name><table_name=" "/><dimension_name=" "><hierarchy has_all=" " all_member_name=" "

primary_key=""><table_name=" "/><level_name=" " column=" " unique_members=" "/>

Page 3: ArunAndGangadhar_OLaaS_v4

Fig. 1. Block Diagram of OLaaS System

</hierarchy></dimension_name></cube></schema>

Database schema can be constructed using tools such asSchema Workbench tool.

III. OLAAS SYSTEM DESIGN AND PROTOTYPING

REST Web Services are designed to upload cube and per-form Slice, Dice and Drill down operations on the OLAP cube.The API is designed to take the required information from theapplication, construct an MDX query and pass the same to anMDX engine. For prototyping we have used Olap4j/Mondrian.Based on the result, an SQL for data movement operationis constructed and executed. The result will be stored in thespecified location requested by the application. The applicationthen can call another REST API to retrieve this computeddata for further processing. For prototyping we have chosenMySQL for storage of both the Data Warehouse using ROLAPand result database.

Web Services for the following operations have been iden-tified for development:

1) To Upload Cube/Schema file2) To Slice the data3) To Dice the data4) To Drill Down the data, and5) To Retrieve the data

A. System Design

The flow of the query processing is as follows: RESTcall parsing, MDX Query construction, Execution & ResultParsing, SQL Query Construction and Data Movement. Fig-ure 1 shows the basic block diagram of the OLaaS. Figure 2shows Business Process Modelling Notation (BPMN) diagramdepicting the system design in more depth.

1) Request Processing: The request type is identified fromthe received REST call and procesed accordingly. The requestprocessing is depicted in Figure 3. The application calls theREST API. The system will validate the parameters passedwith the API and throws exception if any. Once the parameters

Fig. 2. BPMN Diagram of the OLaaS System

Fig. 3. Request Processing

are validated to true, the system then checks for the requesttype (Request type: Upload, Slice, Dice, Drill, retrieve data).Based on the request type, the specific method will be calledinternally and perform the operation. Once the operation iscomplete, the application developer can see the response withthe details of where the computed date is stored. The developeralso has provision to view the logs to check for any issues orerrors.

Based on the request type, the MDX query is constructed.The constructed query is executed using an MDX engine.The multidimensional format result of the MDX query isparsed. Based on this, an SQL insert and create queries willbe constructed to load the data into another table based onapplication request. The target database name to store the dataand retrieve later can be programmed via a parameter to theREST call.

2) MDX Query Construction and Execution: The queryparameters from the REST URL are parsed and the Measures,Cube name, Dimension, source and target database. namesare identified. Based on these details an MDX query isconstructed. Then the system connects to the source database,executes the MDX and gets the result. The implementation ofthe logic is explained in the Implementation section.

3) MDX Result Parsing and Data Loading: From the resultof the MDX query, the Axis details are identified. Based on theAxis details, the rows and columns information is identified.

Page 4: ArunAndGangadhar_OLaaS_v4

Fig. 4. MDX Query Processing

Finally, based on this information, an SQL query is constructedand executed on the target database. This flow is illustrated inFigure 4.

4) REST API: The parameters of the REST API calls aredefined as the following:

M=<measures>D=<dimensions>C=<cube name>T=<destination table>Dd=<destination database>Sd=<source database>H=<hostname>U=<user name>P=<password>

IV. SYSTEM IMPLEMENTATION

The designed OLaaS is prototyped by developing theREST API in Java. The API is connected to open–sourceOlap4j/Mondrian engine for MDX query execution. MySQLis used to both store and process the OLAP Cube data and theresults of the request.

The following subsections detail the prototype implementa-tion.

A. Upload Cube

The Web Service for Schema File upload is created andREST API is exposed under the URL http://host:3000/api/upload cube.

B. MDX Query Construction

Once the Cube is schema is designed and populated, anMDX query on this schema can be implemented using SQL.Olap4j is configured and the MDX query is executed. TheMDX query needs to be generated dynamically based on theuser request, based on what the user wants, on which part ofthe data the computation is to be carried out.

The first step is to create an object that represents Cube indatabase. Using Olap4j a connection object which is similar toJDBC connection is obtained which cannot represent OLAPdatabases. To get full functionality access of OLAP, thisconnection needs to be unwrapped:

Connection rConn =

(OlapWrapper)DriverManager.getConnection("jdbc:xmla:" + "Server= server_name ",......)

OlapConn oConn = rConn.unwrap(OlapConn.class);

In the above snippet the connection is casted as OlapWrap-per. This allows access to the OLAP features from the oConnobject. The next statement creates the actual query:

Query myQuery = new Query(<QueryName>,<CubeName>);

The next step is to build an MDX query. For that, thedimensions need to be put on their respective axis; as in thefollowing.

QueryDimension <DimensionID1> =myQuery.getDimension(<DimensionName1>);

QueryDimension <DimensionID2> =myQuery.getDimension(<DimensionName2>);

QueryDimension <DimensionID3> =myQuery.getDimension(<DimensionName3>);

myQuery.getAxis(Axis.COLUMNS).addDimension(DimensionID1);

myQuery.getAxis(Axis.ROWS).addDimension(DimensionID2);

myQuery.getAxis(Axis.FILTER).addDimension(DimensionID3);

In the above 3 dimensions of the cube are placed on the 3different Axis. More than one dimension can be placed on asingle axis. Later the Query Model will automatically createa cross join between dimensions.

Before obtaining the created MDX query it needs to bevalidated:

myQuery.validate();

Finally, the actual MDX query string is obtained as an SQLstatement, ready for execution:

myQuery.getSelect().toString()

C. MDX Result Parsing and SQL ConstructionThe next step is to upload the sliced/diced/drilled data into

another table as requested by the user application. The resultdata of the MDX query cannot be dumped into another table,as any insert/create SQL queries cannot really be constructeddirectly with this data. So the next step is to parse this dataand construct respective insert and create SQL queries. Oncethe MDX query is executed we should identify the rowsand columns in the MDX result. This is achieved using thefunction AXIS in MDX language. MDX query can return datain more than two dimensions. To get the Column axis Axis(0)is used, and to return Rows axis Axis(1), and so on for higherdimensions.

Result result = connection.execute(query);// query is the MDX query

slicers = result.getSlicerAxis().getPositions();

List<Position> columns =result.getAxes()[0].getPositions();

List<Position> rows = null;if (result.getAxes().length == 2) {

rows = result.getAxes()[1].

Page 5: ArunAndGangadhar_OLaaS_v4

Fig. 5. REST API Call

getPositions();}

From the rows and columns information, SQL queriesare constructed to create table and insert data based on thedestination database information in the REST call.

D. REST API Implementation

Each of the OLAP operations identified as exposed as RESTAPI with the following base URLs:

Upload Cube: http://host:3000/api/upload cubeSlice: http://host:3000/api/sliceDice: http://host:3000/api/diceRollup: http://host:3000/api/rollupRollup: http://host:3000/api/drilldown

For protyping the REST API, NodeJS is used. For instance,Slice operation API is implemented as follows:

...router.get("/slice", function(req, res) {var child = exec(’java -jar olap_slice.jar ’+ ’"’ + req.query.m + ’"’ + ’ ’+ ’"’ + req.query.d + ’"’ + ’ ’+ req.query.t + ’ ’ + req.query.c,{maxBuffer: 1024 * 500},function (error, stdout, stderr){

console.log(’Output -> ’ + stdout);if (req.query.log == 1) {...} else {res.json({result:

"Cube is stored in DATABASE=req.query.d,TABLE=" + req.query.t});

}if(error !== null){res.json({oops_error: error});console.log("Error -> "+error);

}});app.exports = child;

});

V. RESULTS AND DISCUSSION

In this section, the results and performance analysis ofthe designed and prototyped OLaaS is documented and adiscussion on the same is presented.

A. Results

Figure 5 illustrates the API call with the example of aSlice REST API call. Figure 6 illustrates an example of theMDX constructed based on the API call parameters and theCube structure. The output of the MDX query will be inmultidimensional form. Figure 7 illustrates a snippet of theMDX query result, which is captured from the backend logs.

Fig. 6. MDX Query Construction Result

Fig. 7. MDX Query Result

The MDX result is used by the OLaaS to construct and executean SQL query based on the REST API call type and itsparamenters. The result of execution of the generated SQLquery is verified from the examination of the target databaseas in illustrated in Figure 8. The response form the API callwith logging enabled is shown in Figure 9.

B. Performance Analysis

To obtain an estimate of the performance of the prototypedOLaaS API, the API is executed repeatedly and the responsetime measured. Since the OLaaS API includes several otheroperations in addition to the MDX query execution on theOLAP Cube, a measure of these “overhead” is estimated indi-

Page 6: ArunAndGangadhar_OLaaS_v4

Fig. 8. SQL Query Verification

Fig. 9. API Response with Logging Enabled

rectly as follows. The generated MDX query is run using SaikuAnalytics engine on the same Cube data and the MDX queryexecution time measured. Table I tabulates the performnacemeasurement results for the core OLAP operations along withthe Saiku Analytics measurement results.

From Table I, it can be seen that the responce times withrepeated calls to OLAP operations are decreasing indicatingthat the caching subsystems of the underlying platforms (MDXand database engines) is optimised to use the cached results.In addition, with all the operations needed in addition toexecution of an MDX query, by its nature of design andoperation, the prototyped OLaaS REST API has given goodperformance.

VI. CONCLUSION

This paper presents the design and prototyping of a frame-work for exposing OLAP operations as a set of RESTfulWeb Services. Web Services were developed for Upload Cube,Slice, Dice, Drilldown and Retrieve Data OLAP operations.The designed Web Services are implemented using MondrianOLAP4j. The developed REST API extends the OLAP ser-vices being offered as SaaS on the Cloud to a Platform asa Service (PaaS) model, termed OLAP as a Service (OLaaS)

Call No Slice Dice DrillDown1 500 (300) 410 (275) 400 (320)2 500 (280) 410 (275) 440 (320)3 492 (105) 110 (100) 110 (111)4 178 (105) 110 (100) 110 (111)5 178 (105) 110 (100) 110 (111)

TABLE IAPI RESPONCE TIME PERFORMANCE (MS). VALUES IN THE BRACKETS

INDICATE THE MDX QUERY PROCESSING TIMES USING SAIKUANALYTICS ENGINE

here. More importantly, it enables the BI application developerto easily incorporate OLAP operations to develop complexapplications. The developed Web Services were tested, vali-dated and analyzed for their performance. The performanceof the developed Web Services along with the included queryconstruction was found to be comparable to performancemeasured using native Mondrian OLAP operations, whichdoes not include query construction. OLAP Web Servicesdeveloped proved openness, adaptability, interoperability andmodularization on Cloud computing platforms.

Based on the work we can conclude that, the fundamen-tal OLAP operations, namely Cube Design, Upload Cube,Slice, Dice, Drilldown operations can be exposed as RESTfulWeb Services and integrated as OLAP as a Service (OLaaS)platform. Complex BI applications can now be implementedtaking advantage of REST API, using the developed OLaaS.

The work carried out can be a base for research anddevelopment in several directions. A few recommendationsfor future work are as follows: The developed API needs tobe tested on Data Warehouse for real-life sizes (terabytes andpetabytes) and complex real-life BI operations. The developedAPI can be optimized further for better response times. TheREST API developed is meant for users to develop theirown workflow using the developed services and Web Servicecomposition. It would be very useful to integrate a WebService Composition based workflow creation facility withthe developed API. Currently this is being worked upon.The API can also be integrated with Map-Reduce frameworkfor creating and executing new calculations. The developedAPI can be extended to support other Cube models than theROLAP considered here.

REFERENCES

[1] H. Al-Aqrabi, L. Liu, R. Hill, and N. Antonopoulos, “Taking the BusinessIntelligence to the Clouds,” in High Performance Computing and Com-munication & 2012 IEEE 9th International Conference on EmbeddedSoftware and Systems (HPCC-ICESS), 2012 IEEE 14th InternationalConference on. IEEE, 2012, pp. 953–958.

[2] Y. Cao, C. Chen, F. Guo, D. Jiang, Y. Lin, B. C. Ooi, H. T. Vo, S. Wu,and Q. Xu, “Es2: A Cloud Data Storage System for Supporting bothOLTP and OLAP,” in 2011 IEEE 27th International Conference on DataEngineering. IEEE, 2011, pp. 291–302.

[3] X. Zhou, “Parallel Real-Time OLAP on Cloud Platforms,” Ph.D. disser-tation, Carleton University, Ottawa, 2013.

[4] C. Strı̂mbei, “OLAP Services on Cloud Architecture,” Journal of Softwareand Systems Development, vol. 2012, p. 1, 2012.

[5] A. Thusoo, J. S. Sarma, N. Jain, Z. Shao, P. Chakka, N. Zhang, S. Antony,H. Liu, and R. Murthy, “Hive-A Petabyte Scale Data Warehouse usingHadoop,” in 2010 IEEE 26th International Conference on Data Engi-neering (ICDE 2010). IEEE, 2010, pp. 996–1005.

[6] “Apache Kylin Project,” http://kylin.apache.org/, Accessed: 2016-08-08.[7] W. H. Inmon, Building the Data Warehouse. John Wiley & Sons, 2005.