Search

US-12625866-B2 - System to determine tuple values

US12625866B2US 12625866 B2US12625866 B2US 12625866B2US-12625866-B2

Abstract

Systems and methods include receipt of a request for stored values associated with a plurality of tuples including a plurality of dimension members; transmission of a first query including all dimension members of each of the plurality of tuples, reception from the system of a first result set including a value associated with each of a plurality of first result tuples, determination of a remaining set of tuples based on the plurality of tuples and the plurality of first result tuples, transmission of a second query including dimension members of the remaining set of tuples, reception of a second result set including a value associated with each of a plurality of second result tuples, determination, based on the second result set, that the values associated with the plurality of tuples have been received, and presentation of the values associated with the plurality of tuples.

Inventors

  • Stephane Coze
  • JEROME GUERIN
  • Laurent Le Floch

Assignees

  • SAP SE

Dates

Publication Date
20260512
Application Date
20240206

Claims (20)

  1. 1 . A system comprising: a storage device; and one or more processing units to execute executable program code stored on the storage device to cause the system to: process a request received from a user for values associated with a plurality of tuples, each tuple including a plurality of dimension members; generate and transmit a first query, based on the request, the first query including all dimension members of each of the plurality of tuples; in response to the first query, receive a first result set including a value associated with each of a plurality of first result tuples; determine a remaining set of tuples comprising a refinement of the plurality of tuples by excluding the plurality of first result tuples from the plurality of tuples; generate and transmit a second query, based on the request and on remaining set of tuples, the second query including dimension members of the remaining set of tuples; in response to the second query, receive a second result set including a value associated with each of a plurality of second result tuples; determine, based on the second result set, that the values associated with the plurality of tuples have been received; and present the values associated with the plurality of tuples.
  2. 2 . The system according to claim 1 , wherein the request comprises a request for values associated with a second plurality of tuples including the plurality of tuples, and the one or more processing units to execute executable program code stored on the storage device to cause the system to: determine that each of the plurality of tuples is associated with a first data source and a first set of dimensions; determine a third plurality of tuples from the second plurality of tuples, each of the third plurality of tuples associated with the first data source and a second set of dimensions; transmit a third query including all dimension members of each of the third plurality of tuples; in response to the third query, receive a third result set including a value associated with each of a plurality of third result tuples; determine a second remaining set of tuples based on the third plurality of tuples and the plurality of third result tuples; transmit a fourth query including dimension members of the second remaining set of tuples; in response to the fourth query, receive a fourth result set including a value associated with each of a plurality of fourth result tuples; determine, based on the fourth result set, that the values associated with the third plurality of tuples have been received; and present the values associated with the third plurality of tuples.
  3. 3 . The system according to claim 1 , wherein the request comprises a request for values associated with a second plurality of tuples including the plurality of tuples, and the one or more processing units to execute executable program code stored on the storage device to cause the system to: determine that each of the plurality of tuples is associated with a first data source and a first set of dimensions; determine a third plurality of tuples from the second plurality of tuples, each of the third plurality of tuples associated with a second data source and a second set of dimensions; transmit a third query including all dimension members of each of the third plurality of tuples; in response to the third query, receive a third result set including a value associated with each of a plurality of third result tuples; determine a second remaining set of tuples based on the third plurality of tuples and the plurality of third result tuples; transmit a fourth query including dimension members of the second remaining set of tuples; in response to the fourth query, receive a fourth result set including a value associated with each of a plurality of fourth result tuples; determine, based on the fourth result set, that the values associated with the third plurality of tuples have been received; and present the values associated with the third plurality of tuples.
  4. 4 . The system according to claim 1 , wherein the second query comprises: only one dimension member of a first hierarchical dimension and one or more dimension members of one or more other hierarchical dimensions of the remaining tuples which include the one dimension member of the first hierarchical dimension.
  5. 5 . The system according to claim 4 , wherein the second query further comprises all dimension members of non-hierarchical dimensions of the remaining tuples.
  6. 6 . The system according to claim 4 , wherein transmission of the second query including dimension members of the remaining set of tuples comprises: determination of whether any of the remaining tuples include a dimension member of a first hierarchical dimension; and if it is determined that none of the remaining tuples include the dimension member of the first hierarchical dimension, generation of the second query to include all dimension members of each of the remaining tuples.
  7. 7 . The system according to claim 6 , wherein, if it is determined that the remaining tuples include the dimension member of the first hierarchical dimension, the second query is generated to include only the dimension member of the first hierarchical dimension and one or more dimension members of one or more other hierarchical dimensions of the remaining tuples which including the one dimension member of the first hierarchical dimension.
  8. 8 . The system according to claim 7 , wherein the second query further comprises all dimension members of non-hierarchical dimensions of the remaining tuples.
  9. 9 . A method comprising: processing a request received from a user for stored values associated with a plurality of tuples, each tuple including a plurality of dimension members of at least one hierarchical dimension; generating and transmitting a first query, based on the request, the first query including all dimension members of each of the plurality of tuples to a system storing the values; receiving from the system a first result set including a value associated with each of a plurality of first result tuples; determining a remaining set of tuples comprising a refinement of the plurality of tuples by excluding the plurality of first result tuples from the plurality of tuples; generating and transmitting to the system a second query, based on the request and on remaining set of tuples, the second query including dimension members of the remaining set of tuples; receiving from the system a second result set including a value associated with each of a plurality of second result tuples; determining, based on the second result set, that the values associated with the plurality of tuples have been received; and presenting the values associated with the plurality of tuples.
  10. 10 . The method according to claim 9 , wherein the request comprises a request for values associated with a second plurality of tuples including the plurality of tuples, the method further comprising: determining that each of the plurality of tuples is associated with a first data source and a first set of dimensions; determining a third plurality of tuples from the second plurality of tuples, each of the third plurality of tuples associated with the first data source and a second set of dimensions; transmitting to the system a third query including all dimension members of each of the third plurality of tuples; receiving from the system a third result set including a value associated with each of a plurality of third result tuples; determining a second remaining set of tuples based on the third plurality of tuples and the plurality of third result tuples; transmitting to the system a fourth query including dimension members of the second remaining set of tuples; receiving from the system a fourth result set including a value associated with each of a plurality of fourth result tuples; determining, based on the fourth result set, that the values associated with the third plurality of tuples have been received; and presenting the values associated with the third plurality of tuples.
  11. 11 . The method according to claim 9 , wherein the request comprises a request for values associated with a second plurality of tuples including the plurality of tuples, the method further comprising: determining that each of the plurality of tuples is associated with a first data source and a first set of dimensions; determining a third plurality of tuples from the second plurality of tuples, each of the third plurality of tuples associated with a second data source and a second set of dimensions; transmitting to the system a third query including all dimension members of each of the third plurality of tuples; receiving from the system a third result set including a value associated with each of a plurality of third result tuples; determining a second remaining set of tuples based on the third plurality of tuples and the plurality of third result tuples; transmitting a fourth query including dimension members of the second remaining set of tuples; receiving a fourth result set including a value associated with each of a plurality of fourth result tuples; determining, based on the fourth result set, that the values associated with the third plurality of tuples have been received; and presenting the values associated with the third plurality of tuples.
  12. 12 . The method according to claim 9 , wherein the second query comprises: only one dimension member of a first hierarchical dimension and one or more dimension members of one or more other hierarchical dimensions of the remaining tuples which include the one dimension member of the first hierarchical dimension.
  13. 13 . The method according to claim 12 , wherein the second query further comprises all dimension members of non-hierarchical dimensions of the remaining tuples.
  14. 14 . The method according to claim 12 , wherein transmitting the second query including dimension members of the remaining set of tuples comprises: determining whether any of the remaining tuples include a dimension member of a first hierarchical dimension; and if it is determined that none of the remaining tuples include the dimension member of the first hierarchical dimension, generating the second query to include all dimension members of each of the remaining tuples.
  15. 15 . The method according to claim 14 , wherein, if it is determined that the remaining tuples include the dimension member of the first hierarchical dimension, the second query is generated to include only the dimension member of the first hierarchical dimension and one or more dimension members of one or more other hierarchical dimensions of the remaining tuples which including the one dimension member of the first hierarchical dimension.
  16. 16 . The method according to claim 15 , wherein the second query further comprises all dimension members of non-hierarchical dimensions of the remaining tuples.
  17. 17 . A non-transitory medium storing executable program code, the program code executable to cause a system to: process a request received from a user for stored values associated with a plurality of tuples, each tuple including a plurality of dimension members of at least one hierarchical dimension; generate and transmit a first query, based on the request, the first query including all dimension members of each of the plurality of tuples to a system storing the values; receive from the system a first result set including a value associated with each of a plurality of first result tuples; determine a remaining set of tuples comprising a refinement of the plurality of tuples by excluding the plurality of first result tuples from the plurality of tuples; generate and transmit to the system a second query, based on the request and on remaining set of tuples, the second query including dimension members of the remaining set of tuples; receive from the system a second result set including a value associated with each of a plurality of second result tuples; determine, based on the second result set, that the values associated with the plurality of tuples have been received; and present the values associated with the plurality of tuples.
  18. 18 . The medium according to claim 17 , wherein the second query comprises: only one dimension member of a first hierarchical dimension and one or more dimension members of one or more other hierarchical dimensions of the remaining tuples which include the one dimension member of the first hierarchical dimension.
  19. 19 . The medium according to claim 18 , wherein the second query further comprises all dimension members of non-hierarchical dimensions of the remaining tuples.
  20. 20 . The medium according to claim 17 , wherein transmission of the second query including dimension members of the remaining set of tuples comprises: determination of whether any of the remaining tuples include a dimension member of a first hierarchical dimension; if it is determined that none of the remaining tuples include the dimension member of the first hierarchical dimension, generating the second query to include all dimension members of each of the remaining tuple; and if it is determined that the remaining tuples include the dimension member of the first hierarchical dimension, generating the second query to include only the dimension member of the first hierarchical dimension and one or more dimension members of one or more other hierarchical dimensions of the remaining tuples which including the one dimension member of the first hierarchical dimension.

Description

BACKGROUND Modern enterprises produce, use and store large amounts of numerical data. The data may be stored in database tables, files or other data structures. Users interact with applications executing on servers (e.g., on-premise or cloud-based) to view, create and update the data. Interactions between the applications and the data are facilitated by metadata which describes the semantics of the data. Applications may provide reports which present the stored data. A user requests a report by providing one or more dimensions (Country, Year, Product) and a measure (e.g., Sales) and by running a query on a data source based on the dimensions and measure. The dimensions and measure may be subject to query filters as is known in the art. A user often desires to obtain data associated with specific combinations, or tuples, of dimension members (e.g., U.S.A., 2020, Shoes). To obtain this data, current systems either generate a report and filter the report based on the dimension members or, if capable, execute a separate filtered query for each tuple. The processing power and time required to obtain the desired data quickly becomes unsuitable as the number of tuples under consideration increases. The problem is exacerbated in the case of hierarchical dimensions. A client application may be unaware of the levels of the hierarchy, the parent and/or children of specific dimension members, etc. Moreover, a client application may be unable to provide specific members of a hierarchical dimension at different levels without querying all members of these levels. Systems are desired to efficiently determine values associated with tuples in view of the shortcomings of existing systems. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram of a system to efficiently determine values associated with a plurality of tuples of dimensions members according to some embodiments. FIG. 2 is a view of an interface for requesting values associated with a plurality of tuples of dimensions members according to some embodiments. FIG. 3 illustrates dimension hierarchies of hierarchical dimensions according to some embodiments. FIGS. 4A and 4B comprise a flow diagram of a process to efficiently determine values associated with a plurality of tuples of dimensions members according to some embodiments. FIG. 5 is a tabular representation of a portion of a database table according to some embodiments. FIG. 6 is a tabular representation of a plurality of tuples of dimensions members according to some embodiments. FIG. 7 illustrates a query, a query result, and a list of remaining tuples according to some embodiments. FIG. 8 illustrates a query, a query result, and a list of remaining tuples according to some embodiments. FIG. 9 illustrates a query, a query result, and a list of remaining tuples according to some embodiments. FIG. 10 illustrates a query, a query result, and a list of remaining tuples according to some embodiments. FIG. 11 illustrates a query, a query result, and a list of remaining tuples according to some embodiments. FIG. 12 is a block diagram of a system to efficiently determine values associated with a plurality of tuples of dimensions members according to some embodiments. FIG. 13 is a block diagram of a cloud-based architecture implementing a system according to some embodiments. DETAILED DESCRIPTION The following description is provided to enable any person in the art to make and use the described embodiments. Various modifications, however, will remain readily-apparent to those in the art. Some embodiments provide efficient determination of requested values associated with dimension member tuples. Briefly, a data source is queried to generate a small intermediate report which returns some of the requested values as well as other values associated with other tuples. Another query is generated based on the returned requested values and the process repeats until all requested values are returned. The queries are generated to limit the size of the intermediate reports and thereby decrease response time, and also to limit the number of unwanted values to facilitate the processing of the returned reports. FIG. 1 is a block diagram of system 100 to efficiently determine values associated with a plurality of tuples of dimensions members according to some embodiments. System 100 is a logical diagram and may be implemented using any suitable combination of computing hardware and/or executable program code that is or becomes known. Such combinations may include one or more programmable processing units (microprocessors, central processing units, microprocessor cores, execution threads), local or remote non-transitory volatile and/or non-volatile electronic memory media (e.g., magnetic media, optical media, random access memory (RAM), read-only memory (ROM), removable media, or any other suitable memory), and executable program code. In some embodiments, two or more elements of system 100 are implemented by a single computing