Sign In to Follow Application
View All Documents & Correspondence

A Method And A System For Generating A Report With User Added Measures From A Data Store

Abstract: Embodiments of the present disclosure provide a method and a system for generating a report with user-added measures from a data store. In an embodiment, the method of the present disclosure receiving an existing report model and one or more user-added measures along with associated data from a computing device, wherein the data associated to the one or more user-added measure is stored dynamically in a temporary storage. The method comprises creating a query based on the existing report model and then updating the query by including the one or more user-added measures to the query. Finally, the method generates a report in response to the updated query by retrieving result data from the data store and the temporary storage.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
24 June 2014
Publication Number
06/2016
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
Parent Application

Applicants

HUAWEI TECHNOLOGIES INDIA PVT. LTD.
No.23, Level 3 & 4, Leela Galleria, Airport Road, Bangalore-560017, Karnataka, India

Inventors

1. GUIN, Subhadeep
No.23, Level 3 & 4, Leela Galleria, Airport Road, Bangalore-560017, Karnataka, India
2. K, Abdun Nabi S
No.23, Level 3 & 4, Leela Galleria, Airport Road, Bangalore-560017, Karnataka, India
3. ZHOU, Guangcheng
No.23, Level 3 & 4, Leela Galleria, Airport Road, Bangalore-560017, India

Specification

CLIAMS:1. A method of generating a report with user-added measures from a data store, comprising:
receiving, by a query executing server, an existing report model and one or more user-added measures along with associated data from a computing device, wherein the data associated to the one or more user-added measure is stored in a temporary storage of the query executing server;
creating, by the query executing server, a query based on the existing report model, wherein the query comprises existing dimensions and measures;
updating the query, by the query executing server, by including the one or more user-added measures to the query; and
generating, by the query executing server, a report in response to the updated query by retrieving result data from the data store and the temporary storage, wherein data associated with the existing dimensions and measures are stored in the data store.

2. The method as claimed in claim 1, wherein the query is a Multidimensional Expressions (MDX) query.

3. The method as claimed in claim 1 or 2, wherein the data store and the temporary storage are selected from at least one of Relational Online Analytical Processing (ROLAP) database or Multidimensional Online Analytical Processing (MOLAP) database and Hybrid Online Analytical Processing (HOLAP) database.

4. The method as claimed in claim 1 or 2, wherein the one or more user-added measures and the associated data are provided by the user through a user interface of a computing device.

5. The method as claimed in claim 1, wherein the one or more user-added measures and the associated data are provided in a format selected from at least one of Extended Markup Language (XML), Document Type Definitions (DTD), Hyper Text Markup Language (HTML), Extensible Hyper Text Markup Language (XHTML), JavaScript Object Notation (JSON) and Regular Language for XML Next Generation (RELAX NG).

6. The method as claimed in claim 1, wherein the generating of a report further comprises merging the result data from the data store and the temporary storage into a single report.

7. The method as claimed in claim 1, wherein the generated report is provided to the user in a form selected from at least one of text format, tabular format and visual format.

8. A query executing server for generating a report with user-added measures from a data store, comprising:
a processor; and
a memory communicatively coupled to the processor, wherein the memory stores processor-executable instructions, which, on execution, causes the processor to:
receiving an existing report model and one or more user-added measures along with associated data from a computing device, wherein the data associated to the one or more user-added measure is dynamically stored in a temporary storage of the query executing server;
creating a query based on the existing report model, wherein the query comprises existing dimensions and measures;
updating the query by including the one or more user-added measures to the query; and
generating a report in response to the updated query by retrieving result data from the data store and the temporary storage, wherein data associated with the existing dimensions and measures are stored in the data store.

9. The query executing server as claimed in claim 8, wherein the query is a Multidimensional Expressions (MDX) query.

10. The query executing server as claimed in claim 8 or 9, wherein the data store and the temporary storage are selected from at least one of Relational Online Analytical Processing (ROLAP) database or Multidimensional Online Analytical Processing (MOLAP) database and Hybrid Online Analytical Processing (HOLAP) database.

11. The query executing server as claimed in claim 8 or 9, wherein the one or more user-added measures and the associated data are provided by the user through a user interface of a computing device.

12. The query executing server as claimed in claim 8, wherein the one or more user-added measures and the associated data are provided is provided in a format selected from at least one of Extended Markup Language (XML), Document Type Definitions (DTD), JavaScript Object Notation (JSON) and Regular Language for XML Next Generation) (RELAX NG).

13. The query executing server as claimed in claim 8, wherein the generated report is provided to the user in a form selected from at least one of text format, tabular format and visual format.

14. The query executing server as claimed in claim 8 is communicatively connected to the data store through a network.

15. A non-transitory computer readable medium including operations stored thereon that when processed by at least one processor unit cause a query executing server to perform the acts of:
receiving an existing report model and one or more user-added measures along with associated data from a computing device, wherein the data associated to the one or more user-added measure is stored dynamically in a temporary storage;
creating a query based on the existing report model, wherein the query comprises existing dimensions and measures;
updating the query by including the one or more user-added measures to the query; and
generating a report in response to the updated query by retrieving result data from the data store and the temporary storage, wherein data associated with the existing dimensions and measures are stored in the data store.

16. A computer program for generating a report with user-added measures from a data store, said computer program comprising:
code segment for receiving an existing report model and one or more user-added measures along with associated data from a computing device, wherein the data associated to the one or more user-added measure is stored dynamically in a temporary storage, code segment for creating a query based on the existing report model, wherein the query comprises existing dimensions and measures, code segment for updating the query by including the one or more user-added measures to the query and code segment for generating a report in response to the updated query by retrieving result data from the data store and the temporary storage, wherein data associated with the existing dimensions and measures are stored in the data store.
,TagSPECI:TECHNICAL FIELD

The present invention relates to the field of database and in particular, to a method and system for generating report with user added measures from data stores.

BACKGROUND

Business Intelligence (BI) generally refers to a category of software systems and applications used to improve business enterprise decision-making and governance. The BI tools provide techniques for analyzing and leveraging enterprise applications and data. More specifically, Business Intelligence tools can include database management systems to organize, store, retrieve and manage data in databases include, but are not limited to, relational, Online Transaction Processing (“OLTP”) and Online Analytic Processing (“OLAP”) databases.

In today's technological environment, knowledge workers and IT professionals commonly utilize database servers employing the online analytical processing (OLAP) approach to quickly answer multi-dimensional analytical queries. OLAP, part of the broader category of business intelligence, is typically used in business reporting applications for sales, marketing, management reporting, business process management, budgeting and forecasting, financial reporting and the like.

An OLAP cube is a data structure that allows fast analysis of data and gives users the capability of manipulating and analyzing data from multiple perspectives. This arrangement of data into cubes overcomes certain limitations of relational databases. The OLAP cube enables end users to create reports by communicating with the cube with common desktop applications (e.g., spreadsheet, content management, document management and like applications).

The OLAP cubes comprise data (measures) which are categorized by dimensions. Now, consider a scenario where user wants to add a new measure into the existing OLAP cube. The present solution for adding a new measure in the OLAP cube is cube restructuring. The cube restructuring is a data modification technique on an existing OLAP cube that enables OLAP user to add a new dimension or a new measure. However, the present solution for adding new measure is to restructure the entire cube and data tables.

Consider an example of Network device monitoring. In this, the OLAP cube contains a dimension for NE (network elements) and a measure for Network failure time. Using this OLAP cube, the user can create an analysis report to see the device failure time for each of the network elements. A sample illustration of the analysis report is shown in Table A below.

Dimension - Network Element (NE) Measure - Network Failure Time
NE 1 2.15
NE 2 2.15
NE 3 2.15
NE 4 2.15
NE 5 2.03
NE 6 2.15
NE 7 2.15
NE 8 7.18
NE 9 7.5
NE 10 7
NE 11 7.5

Table A

Now the user wants to set some goal for failure time of each of the network element to check which NE has poor performance. For this, the user has to add a new measure namely “Target Failure Time”. Also, the data needs to be populated for the newly added measure “Target Failure Time”. A sample illustration of report with added measure is shown in Table B below.

Dimension - Network Element (NE) Measure - Network Failure Time Measure - Target Failure Time
NE 1 2.15 2. 5
NE 2 2.15 2.15
NE 3 2.15 2.15
NE 4 2.15 2.15
NE 5 2.03 2.15
NE 6 2.15 2.15
NE 7 2.15 2.15
NE 8 7.18 5.5
NE 9 7.5 7.5
NE 10 7 7.5
NE 11 7.5 7.5

Table B

The conventional process for generating such a report with added measure is illustrated in Fig. 1. When a new measure is to be added to an OLAP cube, a domain expert sends information regarding the new measure to be added, for example, Network Target Failure Time. Also, the domain expert saves data for the measure in the reporting database simultaneously. Now, the entire OLAP cube is restructured to accommodate the new measure and an updated OLAP cube is generated. The user can now generate a query to the updated OLAP cube to get a report with the new measure. The process of restructuring the entire OLAP cube from scratch is a very tedious, time consuming and expensive process.

Hence, there exists a need for a method and system for generating a report with user-added measures from a data store to overcome the above mentioned problems.

SUMMARY

The shortcomings of the prior art are overcome and additional advantages are provided through the embodiments of the present invention. Additional features and advantages are realized through the techniques of the present invention. Other embodiments and aspects of the disclosure are described in detail herein and are considered a part of the claimed disclosure.

The embodiments of the present disclosure provide a method of generating a report with user-added measures from a data store. The method comprises receiving an existing report model and one or more user-added measures along with associated data from a computing device. The data associated to the one or more user-added measure is dynamically stored in a temporary storage. Then, the method comprises creating a query based on the existing report model, wherein the query comprises existing dimensions and measures. Further, the query is updated by including the one or more user-added measures to the query. Finally, a report is generated in response to the updated query by retrieving result data from the data store and the temporary storage, wherein data associated with the existing dimensions and measures are stored in the data store.

The embodiments of the present disclosure provide a query executing server for generating a report with user-added measures from a data store. The query executing server comprises a processor and a memory communicatively coupled to the processor. The memory stores processor-executable instructions, which, on execution, causes the processor to receive an existing report model and one or more user-added measures along with associated data from a computing device. The data associated to the one or more user-added measure is dynamically stored in a temporary storage. Further, the processor creates a query based on the existing report model, wherein the query comprises existing dimensions and measures. The processor is also configured to update the query by including the one or more user-added measures to the query. The processor generates a report in response to the updated query by retrieving result data from the data store and the temporary storage, wherein data associated with the existing dimensions and measures are stored in the data store.

The embodiments of the present invention is related to a non-transitory computer readable medium including operations stored thereon that when processed by at least one processing unit cause a query executing server to receive an existing report model and one or more user-added measures along with associated data from a computing device. The data associated to the one or more user-added measure is stored dynamically in a temporary storage. Further, the processing unit causes the query executing server to create a query based on the existing report model, wherein the query comprises existing dimensions and measures. Also, the processing unit causes the query executing server to update the query by including the one or more user-added measures to the query and generate a report in response to the updated query by retrieving result data from the data store and the temporary storage, wherein data associated with the existing dimensions and measures are stored in the data store.

The embodiments of the present disclosure also provide a computer program for generating a report with user-added measures from a data store. The computer program comprises code segment for receiving an existing report model and one or more user-added measures along with associated data from a computing device, wherein the data associated to the one or more user-added measure is stored dynamically in a temporary storage, code segment for creating a query based on the existing report model, wherein the query comprises existing dimensions and measures, code segment for updating the query by including the one or more user-added measures to the query and code segment for generating a report in response to the updated query by retrieving result data from the data store and the temporary storage, wherein data associated with the existing dimensions and measures are stored in the data store.

In an embodiment, the method of present disclosure reduces the cost of restructuring in the data store like OLAP cubes, in case any measure is added to the cube. In an embodiment, the user can add a measure and the data from user interface of computing device very easily and quickly. There is no need to refresh the data store every time user adds a new measure. Therefore, a lot of time can be saved while generating a report. Also, the addition of a new measure to the data store is limited to the user. So, other users will not be affected by this change. Further, many users can simultaneously add new measures. The measures can coexist among different users as the data store is not affected by this addition.

The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the drawings and the following detailed description.

BRIEF DESCRIPTION OF THE ACCOMPANYING DRAWINGS

The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate exemplary embodiments and, together with the description, serve to explain the disclosed principles. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the figures to reference like features and components. Some embodiments of system and/or methods in accordance with embodiments of the present subject matter are now described, by way of example only, and with reference to the accompanying figures, in which:

Fig.1 illustrates a block diagram for restructuring of OLAP cube in accordance with an embodiment of the prior art;
Fig. 2 show block diagram of a system for generating a report with user-added measures from a data store in accordance with some embodiments of the present disclosure;
Fig. 3 show block diagram of a query executing server for generating a report with user-added measures from a data store in accordance with some embodiments of the present disclosure;
Fig. 4 illustrates a system diagram of user measure processor for generating dynamic cube with user-added measure in accordance with some embodiments of the present disclosure; and

Fig. 5 illustrates a flowchart illustrating method of generating a report with user-added measures from a data store in accordance with some embodiments of the present disclosure.

The figures depict embodiments of the disclosure for purposes of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the disclosure described herein.

It should be appreciated by those skilled in the art that any block diagrams herein represent conceptual views of illustrative systems embodying the principles of the present subject matter. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in computer readable medium and executed by a computer or processor, whether or not such computer or processor is explicitly shown.

DETAILED DESCRIPTION

In the present document, the word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment or implementation of the present subject matter described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments.

While the disclosure is susceptible to various modifications and alternative forms, specific embodiment thereof has been shown by way of example in the drawings and will be described in detail below. It should be understood, however that it is not intended to limit the disclosure to the particular forms disclosed, but on the contrary, the disclosure is to cover all modifications, equivalents, and alternative falling within the spirit and the scope of the disclosure.
The terms “comprises”, “comprising”, or any other variations thereof, are intended to cover a non-exclusive inclusion, such that a setup, device or method that comprises a list of components or steps does not include only those components or steps but may include other components or steps not expressly listed or inherent to such setup or device or method. In other words, one or more elements in a system or apparatus proceeded by “comprises… a” does not, without more constraints, preclude the existence of other elements or additional elements in the system or apparatus.

In an embodiment, the present disclosure provides systems, methods and computer readable medium that facilitates the customization of a data store after the data store has been deployed by adding new dimensions.

The term “cube” refers to a set of data that is organized and summarized into a multidimensional structure defined by a set of dimensions and measures. The term “cube” may also refer to any relational data source or structured data source. The embodiments of the present disclosure have been explained by using the example of multidimensional data source structure. However, a person skilled in the art would understand that other types of data structures can be implemented with the present disclosure without departing from scope of the present disclosure.

The term “dimension” refers to a structural attribute of a cube, which is an organized hierarchy of categories (levels) that describe data in a fact table. These categories typically describe a similar set of members upon which the user wants to base an analysis. For example, a geography dimension might include levels for Country, Region, State or Province, and City.

The term “measure” refers to values within a cube that are based on a column in the cube's fact table store and are usually numeric. Measures are the central values that are aggregated and analyzed.

In the following detailed description of the embodiments of the disclosure, reference is made to the accompanying drawings that form a part hereof, and in which are shown by way of illustration specific embodiments in which the disclosure may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the disclosure, and it is to be understood that other embodiments may be utilized and that changes may be made without departing from the scope of the present disclosure. The following description is, therefore, not to be taken in a limiting sense.

FIG. 2 illustrates a system for generating a report with user-added measures from a data store in accordance with some embodiment of the present disclosure. As illustrated, the system 200 comprises one or more components coupled with each other. In one implementation, the system comprises one or more computing devices 202-1, 202-2…..202-N (collectively referred to as computing devices 202). Examples of the computing devices 202 include, but are not limited to, a desktop computer, a portable computer, a mobile phone, a handheld device, a workstation, a mainframe computer, a server, a network server, and the like. The computing devices 202 may be used by various stakeholders or end users of the organization, such as project managers, database administrators and application developers. As shown in the figure 2, such computing devices 202 are communicatively coupled to a query executing server 204 through a network 206 for facilitating one or more computing devices 202 to access and/or operate a data store 210 of the query executing server 202. The data store 210 may be directly connected to the query executing server 204, or through the network 206.

The network 206 may be a wireless network, wired network or a combination thereof. The network 206 can be implemented as one of the different types of networks, such as intranet, local area network (LAN), wide area network (WAN), the internet, and such. The network 206 may either be a dedicated network or a shared network, which represents an association of the different types of networks that use a variety of protocols, for example, Hypertext Transfer Protocol (HTTP), Transmission Control Protocol/Internet Protocol (TCP/IP), Wireless Application Protocol (WAP), etc., to communicate with each other. Further, the network 206 may include a variety of network devices, including routers, bridges, servers, computing devices, storage devices, etc.

The one or more computing devices 202 comprise an application program that uses the services of the query executing server 204. The computing devices 202 may comprise any type of application that interacts with the query executing server 204 and queries the data store 210 for information.

The data store 210 may be a database or data warehouse. Data stored in the data store 210 may be organized in tables, records, objects, other data structures and the like. The data store 210 may comprise a relational database, an object-oriented database, a hierarchical database, any other known type of database, or any combination of these. As an example, the data store 210 can be Relational Online Analytical Processing (ROLAP) database, Multidimensional Online Analytical Processing (MOLAP) database or Hybrid Online Analytical Processing (HOLAP) database.

The report engine 208 generates a report based on the output of the user query provided by the query executing server 204. Also, the report engine 208 provides the report to the computing device 202 associated with the user.

In one implementation, the query executing server 204, as shown in Figure 3, includes a central processing unit (“CPU” or “processor”) 302, a memory 304 and an Interface 306. The processor 302 may comprise at least one data processor for executing program components and for executing user or system generated requests. A user may include a person, a person using a device such as those included in this disclosure, or such a device itself. The processor 302 may include specialized processing units such as integrated system (bus) controllers, memory management control units, floating point units, graphics processing units, digital signal processing units, etc. The processor 302 may be implemented using mainframe, distributed processor, multi-core, parallel, grid, or other architectures. Some embodiments may utilize embedded technologies like application-specific integrated circuits (ASICs), digital signal processors (DSPs), Field Programmable Gate Arrays (FPGAs), etc. Among other capabilities, the processor 302 is configured to fetch and execute computer-readable instructions stored in the memory 304. The memory 304 and the data store 210 can include any non-transitory computer-readable medium known in the art including, for example, RAM, ROM, EPROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by the system 200.

The interface(s) 306 may include a variety of software and hardware interfaces, for example, a web interface, a graphical user interface, etc. The interface 306 is coupled with the processor 302 and an Input/ Output (I/O) device. The I/O device is configured to receive inputs from user via the interface 306 and transmit outputs for displaying in the I/O device via the interface 306.

In accordance with an embodiment, the system 200 includes peripheral devices, such as input device(s) and/or output device(s) (not shown in the Fig). Exemplary input devices include, without limitation, keyboards, computer mice, pens, or styluses, voice input devices, tactile input devices and the like. Exemplary output device(s) include, without limitation, devices such as displays, speakers, and printers. Each of these devices is well known in the art and, therefore, not described in detail herein.

In one implementation, the query executing server 204 further comprises one or more modules 308 and a temporary storage 310. In one example, the modules 308 and the temporary storage 310 may be stored within the memory 304. In one example, the modules 308, amongst other things, include routines, programs, objects, components, and data structures, which perform particular tasks or implement particular abstract data types. The modules 308 may also be implemented as, signal processor(s), state machine(s), logic circuitries, and/or any other device or component that manipulate signals based on operational instructions. Further, the modules 308 can be implemented by one or more hardware components, by computer-readable instructions executed by a processing unit, or by a combination thereof.

The modules 308 may include, for example, a user measure processor 312, a query generator 314 and a query executor 316 coupled with the processor 302.

The query executing server 208 may also comprise other modules to perform various miscellaneous functionalities of the query executing server 208. It will be appreciated that such aforementioned modules may be represented as a single module or a combination of different modules.

In an embodiment, the query executing server 208 generates a report with user added measures from a data store dynamically. In operation, the user measure processor 312 of the query executing server 208 receives metadata related to user-added measure and user data. In an embodiment, the cube data and user data is parsed by the user measure processor 312. The user measure processor generates a virtual cube which includes the parsed metadata of user-added measure. Also, the user measure processor 312 stores the parsed user data in the temporary storage 310. As illustrated in Fig. 4, the user measure processor 312 is explained using a multidimensional data store, where data is stored in form of cubes. A person skilled in the art would understand that any other type of database can be used with the user measure processor 312.

The user measure processor 312 comprises a dynamic cube processor 402 and a user data processor 504. The dynamic cube processor 402 in turn comprises a cube parser 406 and a dynamic cube generator 408. Further, the user data processor 404 comprises a user data parser 410, and a user data restructure manager 412. When a user wishes to add a new measure to the existing data store like OLAP cube, then the user transmits the user-added measures and the existing report model to the user measure processor 312 through the associated computing device 202. The existing report model comprises existing cube information, which is received by the cube parser 406. The cube parser 406 parses the existing cube and provides parsed cube information to the dynamic cube generator 408. In addition to the parsed cube metadata from the cube parser 406, the dynamic cube generator 408 also receives user added measures from the computing device 202 associated with the user. The dynamic cube generator 408 generates a new virtual cube which included the user-added measures.

Next, the user data parser 410 receives the user data associated to the one or more user-added measure from the computing device 202. The user data parser 410 parses the received user data and provides parsed user metadata to the user data restructure manager 412. In addition, the user data restructure manager 412 receives dynamic cube with user-added measures from the dynamic cube generator 408. The user data restructure manager 412 generates a structured data which is required for responding to the user queries. The structured user data is stored in the temporary storage 310, which can be accessed later during execution of queries on the dynamic cube.

Fig. 5 illustrates a flowchart illustrating method of generating a report with user-added measures from a data store in accordance with some embodiments of the present disclosure.

As illustrated in Figure 5, the method 500 comprises one or more blocks for generating a report with user-added measures from the data store 210. The method 500 may be described in the general context of computer executable instructions. Generally, computer executable instructions can include routines, programs, objects, components, data structures, procedures, modules, and functions, which perform particular functions or implement particular abstract data types.

The order in which the method 500 is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method 500. Additionally, individual blocks may be deleted from the method 500 without departing from the spirit and scope of the subject matter described herein. Furthermore, the method 500 can be implemented in any suitable hardware, software, firmware, or combination thereof.

At block 502, receive an existing report model and one or more user-added measures along with associated data from the computing device 202. In an embodiment, the user using the data store 210 may require to see a report of the data store 210 with one or more new measures. In such a case, the user provides an existing report model and one or more measures along with associated data to be added to the query executing server 204. The existing report model including existing dimensions and measures are stored in the data store 210. In an embodiment, the existing dimensions and measures are those dimensions and measures which were included during creation of the data store 210. Any measures added by the user after the creation of the data store 210 are user-added measures. In an embodiment, the user can provide the data in any format. For example, the format may include Extended Markup Language (XML), Document Type Definitions (DTD), Hyper Text Markup Language (HTML), Extensible Hyper Text Markup Language (XHTML), JavaScript Object Notation (JSON) and Regular Language for XML Next Generation (RELAX NG). The below illustration, Illustration 1 is an example of user added measure and user data provided in XML format.

Illustration 1

Illustration 1

At block 504, create a query based on the existing report model. In an embodiment, the query is generated by the query generator 314 based on existing dimensions and measures only. The query does not include the new measures added by user. As an example, the query can be a Multidimensional Expressions (MDX) query.

At block 506, update the query by including the one or more user-added measures to the query. In an embodiment, the user added measures are provided to the user measure processor 312. The user measure processor 312 provides the metadata of the one or more user added measure to the query generator 314. The query generator 314 then updates the created query by including the one or more user-added measures to the query.

Simultaneously, the data associated with the user-added measures is received by the user measure processor 312. The user measure processor 312 structures the data based on the type of data store 210. Then, the data is stored in the temporary storage 310 of the query executing server 208. The temporary storage 310 may be any cache memory for temporary storage of data. The below Table C is an exemplary schematic of the data stored in the temporary storage 310. This table corresponds to the user-added measures as illustrated in Illustration1.

Tuples Value
Time.2012.Apr 500
Time.2012.Aug 600

Table C

As illustrated, the temporary storage 310 stores data in form of key value pair. The key is the tuple comprising a combination of one or more dimensions in a row. The value is the value entered by the user through the computing device 202.

At block 506, generate a report in response to the updated query by retrieving result data from the data store 210 and the temporary storage 310. The updated query is executed by the query executor 316. While executing the updated query, the query executor 316 retrieves existing data from the data store 210 and user added data from the temporary storage 310.

The output of the query execution is transmitted to the report engine 208. The report engine stores the output in form of report. The report may be sent to the computing device 202 of the user for visual rendering.

Additionally, advantages of present invention are illustrated herein.

In an embodiment, the method of present disclosure reduces the cost of restructuring in the data store like OLAP cubes, in case any measure is added to the cube.

In an embodiment, the user can add a measure and the data from user interface of computing device very easily and quickly.

In an embodiment, there is no need to refresh the data store every time user adds a new measure. Therefore, a lot of time can be saved while generating a report. Also, the addition of a new measure to the data store is limited to the user. So, other users will not be affected by this change.

In an embodiment, many users can simultaneously add new measures. The measures can coexist among different users as the data store is not affected by this addition.

The described operations may be implemented as a method, system, apparatus or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof. The described operations may be implemented as code maintained in a “non-transitory computer readable medium”, where a processing unit may read and execute the code from the computer readable medium. The processing unit is at least one of a microprocessor and a processor capable of processing and executing the queries. A non-transitory computer readable medium may comprise media such as magnetic storage medium (e.g., hard disk drives, floppy disks, tape, etc.), optical storage (CD-ROMs, DVDs, optical disks, etc.), volatile and non-volatile memory devices (e.g., EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, Flash Memory, firmware, programmable logic, etc.), etc. The non-transitory computer-readable media comprise all computer-readable media except for a transitory. The code implementing the described operations may further be implemented in hardware logic (e.g., an integrated circuit chip, Programmable Gate Array (PGA), Application Specific Integrated Circuit (ASIC), etc.).

Still further, the code implementing the described operations may be implemented in “transmission signals”, where transmission signals may propagate through space or through a transmission media, such as an optical fiber, copper wire, etc. The transmission signals in which the code or logic is encoded may further comprise a wireless signal, satellite transmission, radio waves, infrared signals, Bluetooth, etc. The transmission signals in which the code or logic is encoded is capable of being transmitted by a transmitting station and received by a receiving station, where the code or logic encoded in the transmission signal may be decoded and stored in hardware or a non-transitory computer readable medium at the receiving and transmitting stations or devices. An “article of manufacture” comprises non-transitory computer readable medium, hardware logic, and/or transmission signals in which code may be implemented. A device in which the code implementing the described embodiments of operations is encoded may comprise a computer readable medium or hardware logic. Of course, those skilled in the art will recognize that many modifications may be made to this configuration without departing from the scope of the invention, and that the article of manufacture may comprise suitable information bearing medium known in the art.

The terms "an embodiment", "embodiment", "embodiments", "the embodiment", "the embodiments", "one or more embodiments", "some embodiments", and "one embodiment" mean "one or more (but not all) embodiments of the invention(s)" unless expressly specified otherwise.

The terms "including", "comprising", “having” and variations thereof mean "including but not limited to", unless expressly specified otherwise.

The enumerated listing of items does not imply that any or all of the items are mutually exclusive, unless expressly specified otherwise.

The terms "a", "an" and "the" mean "one or more", unless expressly specified otherwise.

Devices that are in communication with each other need not be in continuous communication with each other, unless expressly specified otherwise. In addition, devices that are in communication with each other may communicate directly or indirectly through one or more intermediaries.

A description of an embodiment with several components in communication with each other does not imply that all such components are required. On the contrary a variety of optional components are described to illustrate the wide variety of possible embodiments of the invention.

Further, although process steps, method steps, algorithms or the like may be described in a sequential order, such processes, methods and algorithms may be configured to work in alternate orders. In other words, any sequence or order of steps that may be described does not necessarily indicate a requirement that the steps be performed in that order. The steps of processes described herein may be performed in any order practical. Further, some steps may be performed simultaneously.

When a single device or article is described herein, it will be readily apparent that more than one device/article (whether or not they cooperate) may be used in place of a single device/article. Similarly, where more than one device or article is described herein (whether or not they cooperate), it will be readily apparent that a single device/article may be used in place of the more than one device or article or a different number of devices/articles may be used instead of the shown number of devices or programs. The functionality and/or the features of a device may be alternatively embodied by one or more other devices which are not explicitly described as having such functionality/features. Thus, other embodiments of the invention need not include the device itself.

The illustrated operations of Fig. 5 show certain events occurring in a certain order. In alternative embodiments, certain operations may be performed in a different order, modified or removed. Moreover, steps may be added to the above described logic and still conform to the described embodiments. Further, operations described herein may occur sequentially or certain operations may be processed in parallel. Yet further, operations may be performed by a single processing unit or by distributed processing units.

The foregoing description of various embodiments of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto. The above specification, examples and data provide a complete description of the manufacture and use of the composition of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.

Additionally, advantages of present invention are illustrated herein.

In an embodiment, the method of present disclosure reduces the cost of restructuring in the data store like OLAP cubes, in case any measure is added to the cube.

In an embodiment, the user can add a measure and the data from user interface of computing device very easily and quickly.

In an embodiment, there is no need to refresh the data store every time user adds a new measure. Therefore, a lot of time can be saved while generating a report. Also, the addition of a new measure to the data store is limited to the user. So, other users will not be affected by this change.

In an embodiment, may users can simultaneously add new measures. The measures can coexist among different users as the data store is not affected by this addition.
Finally, the language used in the specification has been principally selected for readability and instructional purposes, and it may not have been selected to delineate or circumscribe the inventive subject matter. It is therefore intended that the scope of the invention be limited not by this detailed description, but rather by any claims that issue on an application based here on. Accordingly, the disclosure of the embodiments of the invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.

With respect to the use of substantially any plural and/or singular terms herein, those having skill in the art can translate from the plural to the singular and/or from the singular to the plural as is appropriate to the context and/or application. The various singular/plural permutations may be expressly set forth herein for sake of clarity.

In addition, where features or aspects of the disclosure are described in terms of Markush groups, those skilled in the art will recognize that the disclosure is also thereby described in terms of any individual member or subgroup of members of the Markush group.

While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.

Referral Numerals:
Reference Number Description
200 System
202 Computing Device
204 Query Executing Server
206 Network
208 Report Engine
210 Data Store
302 Processor
304 Memory
306 Interface
308 Modules
310 Temporary Storage
312 User Measure Processor
314 Query Generator
316 Query Executor
402 Dynamic Cube Processor
404 User Data Processor
406 Cube Parser
408 Dynamic Cube Generator
410 User Data Parser
412 User Data Restructure Manager

Documents