US20130173584A1 - Delta measures - Google Patents
Delta measures Download PDFInfo
- Publication number
- US20130173584A1 US20130173584A1 US13/340,231 US201113340231A US2013173584A1 US 20130173584 A1 US20130173584 A1 US 20130173584A1 US 201113340231 A US201113340231 A US 201113340231A US 2013173584 A1 US2013173584 A1 US 2013173584A1
- Authority
- US
- United States
- Prior art keywords
- value
- measure
- dimension members
- query
- combinations
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
- G06F16/90324—Query formulation using system suggestions
- G06F16/90328—Query formulation using system suggestions using search space presentation or visualization, e.g. category or range presentation and selection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/26—Visual data mining; Browsing structured data
Definitions
- Some embodiments relate to data analysis systems. More specifically, some embodiments relate to systems for creating analytical views.
- Enterprise software systems receive, generate and store data related to many aspects of a business enterprise. Due to the volume of data, the variety of data, and the speed with which the data accumulates, intermediate systems are required to facilitate users' access to and understanding of the data.
- These systems may provide reporting, planning and/or analysis of underlying data.
- a user requests a report showing sales per month for a particular sales region.
- a user requests a sales plan which is fully or partially-populated based on underlying data.
- Some systems allow a user to customize such a report or plan, as well as to generate a new report, plan, or other view.
- Such customization or generation might not be intuitive to a typical business user. Even if a user is proficient at creating new views, these views normally include measure values associated with various combinations of dimension members, and simple values calculated based on the measure values (e.g., totals, etc.). In order to include more sophisticated analysis of the underlying measure values, the user is typically required to author a query (e.g., MDX or SQL) of the underlying data source. The skill set of the typical business user does not include this capability.
- a query e.g., MDX or SQL
- FIG. 1 is a block diagram of a system according to some embodiments.
- FIG. 2 is a flow diagram of a process according to some embodiments.
- FIG. 3 is a view of a user interface according to some embodiments.
- FIG. 4 is a view of a user interface according to some embodiments.
- FIG. 5 is a view of a user interface according to some embodiments.
- FIG. 6 is a view of a user interface according to some embodiments.
- FIG. 7 is a view of a user interface according to some embodiments.
- FIG. 8 is a view of a user interface according to some embodiments.
- FIG. 9 is a view of a user interface according to some embodiments.
- FIG. 10 is a flow diagram of a process according to some embodiments.
- FIG. 11 is a block diagram of a computing device according to some embodiments.
- FIG. 1 is a block diagram of system 100 according to some embodiments.
- FIG. 1 represents a logical architecture for describing processes according to some embodiments, and actual implementations may include more or different components arranged in other manners.
- System 100 includes analysis server 110 to provide data of data source 120 to analysis client 130 .
- analysis server 110 may receive a request for one or more dimensions and measures from analysis client 130 , query data source 120 for dimension members and associated measure values, receive the members and values from data source 120 , and return the information to analysis client 130 .
- Data source 120 may comprise any one or more systems to store data and provide the data in response to suitable queries.
- the data stored in data source 120 may be received from disparate hardware and software systems, some of which are not interoperational with one another.
- the systems may comprise a back-end data environment employed in a business or industrial context.
- the data may be pushed to data source 120 and/or provided in response to queries received therefrom.
- the data of data source 120 may be stored in traditional fixed disks or in-memory (e.g., in Random Access Memory) to allow fast retrieval and processing thereof.
- the data may comprise a relational database, an in-memory database, a multi-dimensional database, an eXtendable Markup Language (XML) document, and/or any other structured data storage system.
- Analysis server 110 queries data source 120 based on the query language supported by data source 120 (or by an intermediate data provider disposed between server 110 and data source 120 ). For example, analysis server 110 generates and transmits Multi-Dimensional eXpression (MDX) queries in a case that data source 120 is an OnLine Analytical Processing (OLAP) cube.
- MDX Multi-Dimensional eXpression
- data source 120 may include data of more than one customer.
- analysis server 110 includes mechanisms to ensure that a client accesses only the data that the client is authorized to access.
- the data of data source 120 may be indexed and/or selectively replicated in an index.
- Analysis client 130 displays user interfaces and data received from analysis server 110 , and may also be operated to process such data and send data back to analysis server 110 for storage in data source 120 .
- Analysis client 130 may comprise any suitable device, such as a desktop computer, a laptop computer, a personal digital assistant, a tablet PC, and a smartphone.
- Analysis client 130 may execute program code of a data analysis (e.g., spreadsheet) application, a data analysis application with a plug-in allowing communication (e.g. via Web Services) with analysis server 110 , a rich client application (e.g., a Business Intelligence tool), an applet in a Web browser, or any other application to perform the processes attributed thereto herein.
- Repository 140 stores metadata and data for use by analysis server 110 .
- the metadata may specify a schema of data source 120 , which may be used by analysis server 110 to query data source 120 .
- Repository 140 may also store metadata defining reports and instance data of the reports.
- system 100 may be implemented in some embodiments by a single computing device.
- both analysis client 130 and analysis server 110 may be embodied by an application executed by a processor of a desktop computer
- data source 120 may be embodied by a fixed disk drive within the desktop computer.
- FIG. 2 comprises flow diagram of process 200 according to some embodiments.
- various hardware elements of system 100 execute program code to perform process 200 .
- hard-wired circuitry may be used in place of, or in combination with, program code for implementation of processes according to some embodiments. Embodiments are therefore not limited to any specific combination of hardware and software.
- FIG. 3 shows a view of user interface 300 according to some embodiments.
- User interface 300 may be presented on a display of analysis client 130 in response to execution of a Business Intelligence tool (e.g., Analysis Application) by a processor of client 130 .
- a Business Intelligence tool e.g., Analysis Application
- user interface 300 may be a Web page displayed by a Web browser application executed by the processor. Embodiments are not limited to these examples.
- Visualization 310 includes a list of dimensions and members logically arranged in a hierarchically ordering.
- Visualization 310 is a table according to the illustrated embodiment, and may be generated by a spreadsheet application. Any type of visualization may be employed in conjunction with some embodiments.
- the visualization may be a cross-tabulation (i.e., cross-tab).
- a cross-tab is a visualization of data that displays the joint distribution of two or more variables simultaneously. Cross-tabs are usually presented in a matrix format. Each cell of a cross-tab shows a value (e.g., Sales) associated with the specific combination of row (e.g., U.S.) and column (e.g., 2010) headings.
- Visualization 310 may be retrieved using any querying/reporting/analysis paradigm that is or becomes known according to some embodiments.
- the user drags and drops one or more dimensions from a list within data window 320 into layout window 330 .
- a list is omitted from FIG. 3 .
- the selected dimension in visualization 310 is called an axis.
- the user drags and drops one or more members, measures, or calculated values into layout window 330 .
- Visualization 310 is associated with a Customer Geography dimension and with an Order Quantity measure, but embodiments are not limited to one dimension or to one measure. Visualization 310 also includes members of the Customer Geography dimension and, for each member, a value for each of the Order Quantity measure.
- the present example assumes that the user wishes to evaluate the value of the Order Quantity measure with respect to one or more prior values of the measure for each of the displayed dimension members.
- Conventional systems do not allow the user to efficiently modify the structure of visualization 310 in order to support this evaluation.
- a selection of one or more cells of a column is received from the user at S 210 .
- the column is associated with a measure, and each of the one or more selected cells is associated with a value of the measure for a respective combination of one or more dimension members.
- Embodiments are not limited to the selection of columns and/or cells in a tabular format. Rather, S 210 merely requires the selection of a set of one or more visual elements, each one of which is associated with a value of the measure for a respective combination of one or more dimension members.
- FIG. 4 illustrates such a selection according to some embodiments.
- column 312 has been selected.
- Column 312 is associated with the Order Quantity measure, and each cell of column 312 is associated with a value of this measure for a respective member of the Customer Geography dimension. If another one or more dimensions and associated members were included in visualization 310 , each of the selected cells would be associated with a value of the Order Quantity measure for each respective combination of the dimension members (i.e., for each “row” of visualization 310 ).
- an instruction is received from the user to create a second column associated with a calculated measure.
- FIG. 4 also depicts this instruction according to some embodiments. More specifically, the user has “right-clicked” (or the equivalent for the interface in an implementation of client 130 , such as control-click) on column 312 , resulting in display of context menu 400 . The user has selected “Delta Measure” option 410 , resulting in display of sub-menu 420 , and has selected Percentage Change measure 430 as the calculated measure to associate with the second column.
- S 215 may generally comprise receiving an instruction to create a second set of one or more elements associated with a calculated measure.
- Sub-menu 420 presents several calculated measures that may be associated with the new column. For each calculated measure of sub-menu 420 , its value is calculated based on at least two values of the measure selected at S 210 (e.g., Order Quantity). A first value of the two values is associated with a first time and a second value of the two values is associated with a second time. For example, a value of Percentage Change measure 430 may be calculated based on a current value of the Order Quantity measure and on a prior value of the Order Quantity measure. The difference between the first time and the second time may initially be a default value, as will be described below.
- Order Quantity e.g., Order Quantity
- a query is automatically generated at S 220 in response to the received instruction.
- the query is intended to produce a value of the calculated measure for each of the combinations of dimension members (i.e., rows) of the selected cells.
- the format of the query depends on the data source.
- the data source is an OLAP cube and analysis server 110 automatically generates the following MDX query at S 220 in response to the selection of Percentage Change measure 430 :
- the OLAP cube includes a time-based dimension.
- a dimension may be detected automatically from the cube metadata, or configured manually by an administrator (e.g., in case the cube includes multiple time dimensions, such as Calendar and Fiscal Year).
- the data source implements methods for discovering and querying for data changes, and also stores historical versions of the data internally.
- the query generated at S 220 may simply identify the original measure (i.e., the Order Quantity measure), the calculated measure (i.e., Percentage Change), and the time period over which the calculated measure is to be calculated.
- the query is provided to a data provider of the data source at S 225 and a result set is received.
- the result set may include a value of the calculated measure for each of the combinations of dimension members of the selected cells.
- the result set includes the current value of the selected measure (i.e., the Order Quantity measure) and a prior value of the selected measure for each of the combinations of dimension members, and analysis server 110 calculates the values of the calculated measure based thereon.
- the second column is presented at S 230 .
- the second column includes a value of the calculated measure for each of the combinations of one or more dimension members (i.e., rows).
- FIG. 5 illustrates presentation of column 500 according to some embodiments of S 230 .
- column 500 includes, for each row of visualization 310 , a value of the Percentage Change measure.
- FIG. 5 also displays time period menu 510 , which indicates the time period over which the values of the calculated measure were calculated.
- the default time period may be changed on-the-fly by manipulating time period menu 510 .
- FIG. 6 depicts a scenario in which the user has changed the default time period from 24 hours to 3 days.
- S 220 through S 230 are again executed with respect to the new time period. Accordingly, the values of the Percentage Change measure presented in column 500 are changed to reflect the newly-calculated values.
- S 215 through S 230 may be repeated to add another calculated measure to visualization 310 .
- FIG. 7 illustrates receipt of an instruction to create a column associated with another calculated measure at S 215 .
- the user has again “right-clicked” on column 312 to display context menu 400 , and has selected “Delta Measure” option 410 to display sub-menu 420 .
- the user has further selected Value Change measure 440 as the calculated measure to associate with the new column.
- a query is then automatically generated at S 220 to produce a value of Value Change measure 440 for each of the combinations of dimension members (i.e., rows) of the selected cells.
- the generated query may consist of the following:
- FIG. 8 illustrates presentation of the values resulting from such a query in column 800 at S 230 .
- FIGS. 9 and 10 further depict manipulation of menu 510 to affect the values displayed in both of columns 500 and 800 .
- FIG. 9 illustrates the user chooses “Last Week” from the options presented by menu 510 .
- This choice results in generation at S 220 of a new query for the Percentage Change measure and a new query for the Value Change measure. Consequently, new values for each row are calculated for each measure.
- FIG. 10 illustrates the resulting presentation of the new values according to some embodiments.
- queries that may be automatically generated at S 220 in response to user selection of the Max/Min and Trends calculated measures, respectively, again assuming the same OLAP cube and dates as the previous examples:
- FIG. 11 is a block diagram of apparatus 1100 according to some embodiments.
- Apparatus 1100 may comprise a general-purpose computing apparatus and may execute program code to perform any of the functions described herein.
- Apparatus 1100 may comprise an implementation of one or more elements of system 100 , such as analysis server 110 and data source 120 .
- Apparatus 1100 may include other unshown elements according to some embodiments.
- Apparatus 1100 includes processor 1110 operatively coupled to communication device 1120 , data storage device 1130 , one or more input devices 1140 , one or more output devices 1150 and memory 1160 .
- Communication device 1120 may facilitate communication with external devices.
- Input device(s) 1140 may comprise, for example, a keyboard, a keypad, a mouse or other pointing device, a microphone, knob or a switch, an infra-red (IR) port, a docking station, and/or a touch screen.
- Input device(s) 1140 may be used, for example, to enter information into apparatus 1100 .
- Output device(s) 1150 may comprise, for example, a display (e.g., a display screen), a speaker, and/or a printer.
- Data storage device 1130 may comprise any appropriate persistent storage device, including combinations of magnetic storage devices (e.g., magnetic tape, hard disk drives and flash memory), optical storage devices, Read Only Memory (ROM) devices, etc., while memory 1160 may comprise Random Access Memory (RAM).
- magnetic storage devices e.g., magnetic tape, hard disk drives and flash memory
- optical storage devices e.g., Read Only Memory (ROM) devices, etc.
- RAM Random Access Memory
- Analysis server 1132 of data storage device 1130 may comprise program code executable by processor 1110 to provide any of the functions described herein, including but not limited to process 200 . Embodiments are not limited to execution of these functions by a single apparatus.
- Data source 1134 may store associated dimension members and measure values as described herein.
- Memory 1160 may also or alternatively store data of data source 120 , with data storage device 1130 providing a persistent backup.
- Data storage device 1130 may also store data and other program code for providing additional functionality and/or which are necessary for operation thereof, such as device drivers, operating system files, etc.
- each system described herein may be implemented by any number of computing devices in communication with one another via any number of other public and/or private networks. Two or more of such computing devices of may be located remote from one another and may communicate with one another via any known manner of network(s) and/or a dedicated connection.
- Each computing device may comprise any number of hardware and/or software elements suitable to provide the functions described herein as well as any other functions.
- any computing device used in an implementation of system 100 may include a processor to execute program code such that the computing device operates as described herein.
- Non-transitory media may include, for example, a fixed disk, a floppy disk, a CD-ROM, a DVD-ROM, a Flash drive, magnetic tape, and solid state RAM or ROM storage units. Embodiments are therefore not limited to any specific combination of hardware and software.
Abstract
Description
- Some embodiments relate to data analysis systems. More specifically, some embodiments relate to systems for creating analytical views.
- Enterprise software systems receive, generate and store data related to many aspects of a business enterprise. Due to the volume of data, the variety of data, and the speed with which the data accumulates, intermediate systems are required to facilitate users' access to and understanding of the data.
- These systems may provide reporting, planning and/or analysis of underlying data. In one example, a user requests a report showing sales per month for a particular sales region. In another example, a user requests a sales plan which is fully or partially-populated based on underlying data. Some systems allow a user to customize such a report or plan, as well as to generate a new report, plan, or other view.
- Such customization or generation might not be intuitive to a typical business user. Even if a user is adept at creating new views, these views normally include measure values associated with various combinations of dimension members, and simple values calculated based on the measure values (e.g., totals, etc.). In order to include more sophisticated analysis of the underlying measure values, the user is typically required to author a query (e.g., MDX or SQL) of the underlying data source. The skill set of the typical business user does not include this capability.
- Accordingly, systems are desired to facilitate the inclusion of useful analytical information within user-generated views.
-
FIG. 1 is a block diagram of a system according to some embodiments. -
FIG. 2 is a flow diagram of a process according to some embodiments. -
FIG. 3 is a view of a user interface according to some embodiments. -
FIG. 4 is a view of a user interface according to some embodiments. -
FIG. 5 is a view of a user interface according to some embodiments. -
FIG. 6 is a view of a user interface according to some embodiments. -
FIG. 7 is a view of a user interface according to some embodiments. -
FIG. 8 is a view of a user interface according to some embodiments. -
FIG. 9 is a view of a user interface according to some embodiments. -
FIG. 10 is a flow diagram of a process according to some embodiments. -
FIG. 11 is a block diagram of a computing device according to some embodiments. -
FIG. 1 is a block diagram ofsystem 100 according to some embodiments.FIG. 1 represents a logical architecture for describing processes according to some embodiments, and actual implementations may include more or different components arranged in other manners. -
System 100 includesanalysis server 110 to provide data ofdata source 120 toanalysis client 130. For example,analysis server 110 may receive a request for one or more dimensions and measures fromanalysis client 130,query data source 120 for dimension members and associated measure values, receive the members and values fromdata source 120, and return the information toanalysis client 130. -
Data source 120 may comprise any one or more systems to store data and provide the data in response to suitable queries. The data stored indata source 120 may be received from disparate hardware and software systems, some of which are not interoperational with one another. The systems may comprise a back-end data environment employed in a business or industrial context. The data may be pushed todata source 120 and/or provided in response to queries received therefrom. - The data of
data source 120 may be stored in traditional fixed disks or in-memory (e.g., in Random Access Memory) to allow fast retrieval and processing thereof. The data may comprise a relational database, an in-memory database, a multi-dimensional database, an eXtendable Markup Language (XML) document, and/or any other structured data storage system.Analysis server 110queries data source 120 based on the query language supported by data source 120 (or by an intermediate data provider disposed betweenserver 110 and data source 120). For example,analysis server 110 generates and transmits Multi-Dimensional eXpression (MDX) queries in a case thatdata source 120 is an OnLine Analytical Processing (OLAP) cube. - To provide economies of scale,
data source 120 may include data of more than one customer. In this scenario,analysis server 110 includes mechanisms to ensure that a client accesses only the data that the client is authorized to access. Moreover, the data ofdata source 120 may be indexed and/or selectively replicated in an index. -
Analysis client 130 displays user interfaces and data received fromanalysis server 110, and may also be operated to process such data and send data back toanalysis server 110 for storage indata source 120.Analysis client 130 may comprise any suitable device, such as a desktop computer, a laptop computer, a personal digital assistant, a tablet PC, and a smartphone.Analysis client 130 may execute program code of a data analysis (e.g., spreadsheet) application, a data analysis application with a plug-in allowing communication (e.g. via Web Services) withanalysis server 110, a rich client application (e.g., a Business Intelligence tool), an applet in a Web browser, or any other application to perform the processes attributed thereto herein. -
Repository 140 stores metadata and data for use byanalysis server 110. The metadata may specify a schema ofdata source 120, which may be used byanalysis server 110 to querydata source 120.Repository 140 may also store metadata defining reports and instance data of the reports. - Although
system 100 has been described as a distributed system,system 100 may be implemented in some embodiments by a single computing device. For example, bothanalysis client 130 andanalysis server 110 may be embodied by an application executed by a processor of a desktop computer, anddata source 120 may be embodied by a fixed disk drive within the desktop computer. -
FIG. 2 comprises flow diagram ofprocess 200 according to some embodiments. In some embodiments, various hardware elements ofsystem 100 execute program code to performprocess 200. In some embodiments, hard-wired circuitry may be used in place of, or in combination with, program code for implementation of processes according to some embodiments. Embodiments are therefore not limited to any specific combination of hardware and software. - Prior to S210, a user operates
analysis client 130 to receive a result set fromanalysis server 110. To assist in the present description of an example ofprocess 200,FIG. 3 shows a view ofuser interface 300 according to some embodiments.User interface 300 may be presented on a display ofanalysis client 130 in response to execution of a Business Intelligence tool (e.g., Analysis Application) by a processor ofclient 130. Alternatively,user interface 300 may be a Web page displayed by a Web browser application executed by the processor. Embodiments are not limited to these examples. - According to the present example, it will be assumed that a user has manipulated
user interface 300 to displayvisualization 310 at S210.Visualization 310 includes a list of dimensions and members logically arranged in a hierarchically ordering.Visualization 310 is a table according to the illustrated embodiment, and may be generated by a spreadsheet application. Any type of visualization may be employed in conjunction with some embodiments. - For example, the visualization may be a cross-tabulation (i.e., cross-tab). A cross-tab is a visualization of data that displays the joint distribution of two or more variables simultaneously. Cross-tabs are usually presented in a matrix format. Each cell of a cross-tab shows a value (e.g., Sales) associated with the specific combination of row (e.g., U.S.) and column (e.g., 2010) headings.
-
Visualization 310 may be retrieved using any querying/reporting/analysis paradigm that is or becomes known according to some embodiments. In some examples, the user drags and drops one or more dimensions from a list withindata window 320 intolayout window 330. For clarity, such a list is omitted fromFIG. 3 . By convention, the selected dimension invisualization 310 is called an axis. In some examples, the user drags and drops one or more members, measures, or calculated values intolayout window 330. -
Visualization 310 is associated with a Customer Geography dimension and with an Order Quantity measure, but embodiments are not limited to one dimension or to one measure.Visualization 310 also includes members of the Customer Geography dimension and, for each member, a value for each of the Order Quantity measure. - The present example assumes that the user wishes to evaluate the value of the Order Quantity measure with respect to one or more prior values of the measure for each of the displayed dimension members. Conventional systems do not allow the user to efficiently modify the structure of
visualization 310 in order to support this evaluation. - Turning to process 200, a selection of one or more cells of a column is received from the user at S210. The column is associated with a measure, and each of the one or more selected cells is associated with a value of the measure for a respective combination of one or more dimension members. Embodiments are not limited to the selection of columns and/or cells in a tabular format. Rather, S210 merely requires the selection of a set of one or more visual elements, each one of which is associated with a value of the measure for a respective combination of one or more dimension members.
-
FIG. 4 illustrates such a selection according to some embodiments. As indicated by shading,column 312 has been selected.Column 312 is associated with the Order Quantity measure, and each cell ofcolumn 312 is associated with a value of this measure for a respective member of the Customer Geography dimension. If another one or more dimensions and associated members were included invisualization 310, each of the selected cells would be associated with a value of the Order Quantity measure for each respective combination of the dimension members (i.e., for each “row” of visualization 310). - Next, at S215, an instruction is received from the user to create a second column associated with a calculated measure.
FIG. 4 also depicts this instruction according to some embodiments. More specifically, the user has “right-clicked” (or the equivalent for the interface in an implementation ofclient 130, such as control-click) oncolumn 312, resulting in display ofcontext menu 400. The user has selected “Delta Measure”option 410, resulting in display ofsub-menu 420, and has selectedPercentage Change measure 430 as the calculated measure to associate with the second column. Again, embodiments are not limited to “columns”, and S215 may generally comprise receiving an instruction to create a second set of one or more elements associated with a calculated measure. -
Sub-menu 420 presents several calculated measures that may be associated with the new column. For each calculated measure ofsub-menu 420, its value is calculated based on at least two values of the measure selected at S210 (e.g., Order Quantity). A first value of the two values is associated with a first time and a second value of the two values is associated with a second time. For example, a value ofPercentage Change measure 430 may be calculated based on a current value of the Order Quantity measure and on a prior value of the Order Quantity measure. The difference between the first time and the second time may initially be a default value, as will be described below. - A query is automatically generated at S220 in response to the received instruction. The query is intended to produce a value of the calculated measure for each of the combinations of dimension members (i.e., rows) of the selected cells. As mentioned above, the format of the query depends on the data source. In one example, the data source is an OLAP cube and
analysis server 110 automatically generates the following MDX query at S220 in response to the selection of Percentage Change measure 430: -
WITH MEMBER delta AS (([Measures].[Internet Order Quantity], [Date].[Fiscal].[Date].&[March 3, 2004]) - ([Measures].[Internet Order Quantity], [Date].[Fiscal].[Date].&[March 2, 2004])) / ([Measures].[Internet Order Quantity], [Date].[Fiscal].[Date].&[March 2, 2004]), FORMAT_STRING=“percent” SELECT {[Measures].[Internet Order Quantity], delta} ON 0, DrilldownLevel([Customer].[Customer Geography]) ON 1 FROM [Adventure Works];
The above query assumes that the current date is Mar. 3, 2004 and that the measure should be calculated with respect to the Order Quantity measure of the prior day, Mar. 2, 2004. Accordingly, the default difference between the time associated with the first and second measure values is 24 hours. - The above query also assumes that the OLAP cube includes a time-based dimension. Such a dimension may be detected automatically from the cube metadata, or configured manually by an administrator (e.g., in case the cube includes multiple time dimensions, such as Calendar and Fiscal Year).
- In some embodiments, the data source implements methods for discovering and querying for data changes, and also stores historical versions of the data internally. In such an embodiment, the query generated at S220 may simply identify the original measure (i.e., the Order Quantity measure), the calculated measure (i.e., Percentage Change), and the time period over which the calculated measure is to be calculated.
- The query is provided to a data provider of the data source at S225 and a result set is received. The result set may include a value of the calculated measure for each of the combinations of dimension members of the selected cells. In some embodiments, the result set includes the current value of the selected measure (i.e., the Order Quantity measure) and a prior value of the selected measure for each of the combinations of dimension members, and
analysis server 110 calculates the values of the calculated measure based thereon. - The second column is presented at S230. The second column includes a value of the calculated measure for each of the combinations of one or more dimension members (i.e., rows).
FIG. 5 illustrates presentation ofcolumn 500 according to some embodiments of S230. As shown,column 500 includes, for each row ofvisualization 310, a value of the Percentage Change measure.FIG. 5 also displaystime period menu 510, which indicates the time period over which the values of the calculated measure were calculated. - The default time period may be changed on-the-fly by manipulating
time period menu 510.FIG. 6 depicts a scenario in which the user has changed the default time period from 24 hours to 3 days. In response, S220 through S230 are again executed with respect to the new time period. Accordingly, the values of the Percentage Change measure presented incolumn 500 are changed to reflect the newly-calculated values. - In some embodiments, S215 through S230 may be repeated to add another calculated measure to
visualization 310. For example,FIG. 7 illustrates receipt of an instruction to create a column associated with another calculated measure at S215. The user has again “right-clicked” oncolumn 312 to displaycontext menu 400, and has selected “Delta Measure”option 410 to displaysub-menu 420. The user has further selectedValue Change measure 440 as the calculated measure to associate with the new column. - A query is then automatically generated at S220 to produce a value of
Value Change measure 440 for each of the combinations of dimension members (i.e., rows) of the selected cells. Assuming the same OLAP cube and dates as the previous example, the generated query may consist of the following: -
WITH MEMBER delta AS ([Measures].[Internet Order Quantity], [Date].[Fiscal].[Date].&[977])- ([Measures].[Internet Order Quantity], [Date].[Fiscal].[Date].&[976]) SELECT {[Measures].[Internet Order Quantity], delta}ON 0, DrilldownLevel([Customer].[Customer Geography]) ON 1 FROM [Adventure Works]; -
FIG. 8 illustrates presentation of the values resulting from such a query incolumn 800 at S230.FIGS. 9 and 10 further depict manipulation ofmenu 510 to affect the values displayed in both ofcolumns - Specifically, as shown in
FIG. 9 , the user chooses “Last Week” from the options presented bymenu 510. This choice results in generation at S220 of a new query for the Percentage Change measure and a new query for the Value Change measure. Consequently, new values for each row are calculated for each measure.FIG. 10 illustrates the resulting presentation of the new values according to some embodiments. - Although embodiments are not limited to the examples of
sub-menu 420 or the queries shown herein, the following are examples of queries that may be automatically generated at S220 in response to user selection of the Max/Min and Trends calculated measures, respectively, again assuming the same OLAP cube and dates as the previous examples: -
Max/Min WITH MEMBER max_val AS MAX([Date.][Fiscal].[Month].&[2004]&[3].Children, [Measures].[Internet Order Quantity]) MEMBER min_val AS MIN([Date].[Fiscal].[Month].&[2004]&[3].Children, [Measures].[Internet Order Quantity]) SELECT {[Measures].[Internet Order Quantity], max_val, min_val} ON 0, DrilldownLevel([Customer].[Customer Geography]) ON 1 FROM [Adventure Works]; Trends WITH MEMBER slope AS LinRegSlope( [Date].[Fiscal].[Month].&[2004]&[3].Children, [Measures].[Internet Order Quantity], Count([Date].[Fiscal].[Month].&[2004]&[3].FirstChild:[Date].[Fiscal].CurrentMem ber)), FORMAT_STRING=“0.000” SELECT {[Measures].[Internet Order Quantity], slope} ON 0, DrilldownLevel([Customer].[Customer Geography]) ON 1 FROM [Adventure Works]; -
FIG. 11 is a block diagram ofapparatus 1100 according to some embodiments.Apparatus 1100 may comprise a general-purpose computing apparatus and may execute program code to perform any of the functions described herein.Apparatus 1100 may comprise an implementation of one or more elements ofsystem 100, such asanalysis server 110 anddata source 120.Apparatus 1100 may include other unshown elements according to some embodiments. -
Apparatus 1100 includesprocessor 1110 operatively coupled tocommunication device 1120,data storage device 1130, one ormore input devices 1140, one ormore output devices 1150 andmemory 1160.Communication device 1120 may facilitate communication with external devices. Input device(s) 1140 may comprise, for example, a keyboard, a keypad, a mouse or other pointing device, a microphone, knob or a switch, an infra-red (IR) port, a docking station, and/or a touch screen. Input device(s) 1140 may be used, for example, to enter information intoapparatus 1100. Output device(s) 1150 may comprise, for example, a display (e.g., a display screen), a speaker, and/or a printer. -
Data storage device 1130 may comprise any appropriate persistent storage device, including combinations of magnetic storage devices (e.g., magnetic tape, hard disk drives and flash memory), optical storage devices, Read Only Memory (ROM) devices, etc., whilememory 1160 may comprise Random Access Memory (RAM). -
Analysis server 1132 ofdata storage device 1130 may comprise program code executable byprocessor 1110 to provide any of the functions described herein, including but not limited to process 200. Embodiments are not limited to execution of these functions by a single apparatus.Data source 1134 may store associated dimension members and measure values as described herein.Memory 1160 may also or alternatively store data ofdata source 120, withdata storage device 1130 providing a persistent backup.Data storage device 1130 may also store data and other program code for providing additional functionality and/or which are necessary for operation thereof, such as device drivers, operating system files, etc. - Other topologies may be used in conjunction with other embodiments. Moreover, each system described herein may be implemented by any number of computing devices in communication with one another via any number of other public and/or private networks. Two or more of such computing devices of may be located remote from one another and may communicate with one another via any known manner of network(s) and/or a dedicated connection. Each computing device may comprise any number of hardware and/or software elements suitable to provide the functions described herein as well as any other functions. For example, any computing device used in an implementation of
system 100 may include a processor to execute program code such that the computing device operates as described herein. - All systems and processes discussed herein may be embodied in program code stored on one or more computer-readable non-transitory media. Such non-transitory media may include, for example, a fixed disk, a floppy disk, a CD-ROM, a DVD-ROM, a Flash drive, magnetic tape, and solid state RAM or ROM storage units. Embodiments are therefore not limited to any specific combination of hardware and software.
- The embodiments described herein are solely for the purpose of illustration. Those in the art will recognize other embodiments may be practiced with modifications and alterations limited only by the claims.
Claims (18)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/340,231 US8473520B1 (en) | 2011-12-29 | 2011-12-29 | Delta measures |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/340,231 US8473520B1 (en) | 2011-12-29 | 2011-12-29 | Delta measures |
Publications (2)
Publication Number | Publication Date |
---|---|
US8473520B1 US8473520B1 (en) | 2013-06-25 |
US20130173584A1 true US20130173584A1 (en) | 2013-07-04 |
Family
ID=48627797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/340,231 Active 2032-02-16 US8473520B1 (en) | 2011-12-29 | 2011-12-29 | Delta measures |
Country Status (1)
Country | Link |
---|---|
US (1) | US8473520B1 (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6004807B2 (en) * | 2012-07-24 | 2016-10-12 | キヤノン株式会社 | Image processing apparatus, control method thereof, and program |
US9886490B1 (en) * | 2014-03-17 | 2018-02-06 | Numerify, Inc. | Common extract store |
US8990212B1 (en) * | 2014-03-27 | 2015-03-24 | Visier Solutions, Inc. | Systems and methods of mapping multidimensional data and executing queries |
US9977803B2 (en) * | 2015-01-30 | 2018-05-22 | Splunk Inc. | Column-based table manipulation of event data |
US10915583B2 (en) | 2015-01-30 | 2021-02-09 | Splunk Inc. | Suggested field extraction |
US9842160B2 (en) | 2015-01-30 | 2017-12-12 | Splunk, Inc. | Defining fields from particular occurences of field labels in events |
US10726037B2 (en) | 2015-01-30 | 2020-07-28 | Splunk Inc. | Automatic field extraction from filed values |
WO2021174104A1 (en) * | 2020-02-28 | 2021-09-02 | Clumio, Inc. | Modification of data in a time-series data lake |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6915289B1 (en) * | 2000-05-04 | 2005-07-05 | International Business Machines Corporation | Using an index to access a subject multi-dimensional database |
-
2011
- 2011-12-29 US US13/340,231 patent/US8473520B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
US8473520B1 (en) | 2013-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8473520B1 (en) | Delta measures | |
JP6017309B2 (en) | Data analysis formula | |
US8880459B2 (en) | Navigation across datasets from multiple data sources based on a common reference dimension | |
US9031976B2 (en) | Flexible tables | |
US9633077B2 (en) | Query of multiple unjoined views | |
US9342800B2 (en) | Storage model for information related to decision making process | |
US10147208B2 (en) | Dynamic chaining of data visualizations | |
US10311035B2 (en) | Direct cube filtering | |
US20170091833A1 (en) | Graphical rule editor | |
US10203841B2 (en) | In place creation of objects | |
US10311049B2 (en) | Pattern-based query result enhancement | |
US10331715B2 (en) | Metadata enrichment with a keyword definition editor | |
US10552447B2 (en) | Context-aware copying of multidimensional data cells | |
US20130166551A1 (en) | Cubits | |
US11093504B2 (en) | Server-side cross-model measure-based filtering | |
US9811931B2 (en) | Recommendations for creation of visualizations | |
US10152523B2 (en) | Copying data view portions relevant for analysis and/or collaboration | |
US11200236B2 (en) | Server-side cross-model filtering | |
US20170153968A1 (en) | Database configuration check | |
US10380134B2 (en) | Integrated predictive analysis | |
US9195690B2 (en) | Iterative measures | |
US11048695B2 (en) | Context-aware data commenting system | |
US20150006228A1 (en) | Stock coverage calculation in an olap engine | |
US8386497B2 (en) | Query generation based on hierarchical filters | |
US20150006579A1 (en) | Custom grouping of multidimensional data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: BUSINESS OBJECTS SOFTWARE LIMITED, IRELAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TSANG, KA CHUN;MOOSAVI, SEYYED ALI;CHOU, YU-HUA;AND OTHERS;SIGNING DATES FROM 20120227 TO 20120306;REEL/FRAME:027819/0299 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |