The present teachings relate to systems and methods for a middleware database hosting dimensional transforms, and more particularly to platforms and techniques for aggregating multiple data sources having different dimensions via a middleware database storing dimensional transforms to permit consumption of the dimensional data by diverse applications.
In networked data technologies, the introduction and expanded use of middleware platforms has enabled a wider range of applications access to a wider range of data sources. Middleware platforms in general are known which allow a single application to access diverse or incompatible data sources, by commonizing the data schema used by those separate sources for use by the application.
It may be desirable to provide methods and systems of a middleware database which intermediates between a set of data sources containing data of different dimensions and/or formats, and a set of applications requesting data of different dimensions or data types from those various original data sources.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the present teachings and together with the description, serve to explain the principles of the present teachings. In the figures:
Embodiments of the present teachings relate to systems and methods for a middleware database hosting dimensional transforms. More particularly, embodiments relate to platforms and techniques for receiving a set of data requests from a set of applications in a middleware database system. The middleware database system, which can be hosted on a server, can receive the data request and make a determination of the types or dimensions of data that are being requested by the requesting application(s). Rather than storing data entries directly, the middleware database system can store links to a set of remote data sources which host data available to search based on the data request, as well as dimensional data transforms hosted in the database system itself. The set of dimensional data transforms can extract the data dimensions returned from the set of data sources, and transform, extend, or otherwise modify the received data to generate transformed dimensional output or data. It may be noted that in embodiments, the dimensional data transforms can operate on single dimensions (e.g., rows or columns) of source databases to transform those dimensions individually or in isolation, rather than transform the entire source database. In embodiments, besides or in addition to source data stored in database storage, dimensional transforms can be run on other sources of data, such as streamed data. In embodiments, the transformed dimensional data can be combined into further data formats, such as online analytical processing (OLAP) data format, object oriented data format, relational data format, and/or other data formats, structures, or configurations.
Reference will now be made in detail to exemplary embodiments of the present teachings, which are illustrated in the accompanying drawings. Where possible the same reference numbers will be used throughout the drawings to refer to the same or like parts.
More particularly, and as shown in
Database system 106 can receive a set of data requests 118 from one or more application in set of applications 102, and identify which data source or sources in set of data sources 104 contain dimensions of data (e.g., rows labeled “annual sales”) corresponding to the data request. Database system 106 can then, via an internal database engine 114 and/or other logic, communicate with data sources having corresponding data, and extract that data from the data sources. For example, one or more dimension of each data source can be read out or retrieved by database system 106. When all dimensional data corresponding to the set of data requests 118 is extracted from set of data sources 104, database system 106 can analyze that data to generate an output via a dimensional transform table 108 to conform the structyral dimension(s) of the data to those compatible with the requesting application(s).
More particularly, in embodiments database system 106 can generate and access a dimensional transform table 108, which can be stored in database store 128. Dimensional transform table 108 can contain entries mapping the dimensions and/or fields extracted from the data sources in set of data sources 104 to a transformed dimension encapsulating the subject data in a new dimensional format. In embodiments, dimensional transform table 108 can contain fields including a data source field 110 identifying the data source which contributes a dimension, field, or other data. Dimensional transform table 108 can also include a dimension field 112 representing the original dimension of the extracted data in its host data source. Transform table 108 can further include a dimensional transform 114, representing a transformation of the original source dimension to a transformed dimension for output to the requesting application(s). In embodiments, for example, a data field representing “year” in one of set of data sources 104 can be transformed from a two-digit representation, such as “02”, to a four-digit representation (“2002”) by adding 2000 to that value of that dimension or field. Other types of dimensional transform 114 are possible.
As shown, for example, in
In 412, dimensional data can be extracted from set of data sources 104 corresponding to the set of data requests 118 via database engine 116. In 414, one or more dimensional transforms 114 can be performed on the extracted dimensional data by database engine 116. In 416, database system 106 can serve or transmit the transformed dimensional output 132 to the requesting application(s). In 418, the dimensional data, transforms, and/or other information stored in database system 106 and/or set of data sources 104 can be updated, as appropriate. In 420, processing can repeat, return to a prior processing point, jump to a further processing point, or end.
The foregoing description is illustrative, and variations in configuration and implementation may occur to persons skilled in the art. For example, while embodiments have been described in which database system 106 generates and maintains a dimensional transform 114 by way of a transform table 108, in embodiments other structures for establishing and storing the relationship between source dimensions, data, and resulting transformed dimensional output 132 can be used. For further example, while embodiments have been described in which set of data sources 104 consist of data stored in databases or data stores, in embodiments, other types or sources of data can be used. For example, in embodiments, set of data sources 104 can be or include live or streamed data, instead of stored data. Yet further, while embodiments have been described in which a single database system 106 generates and manages transform table 108 and related resources, in embodiments multiple transform engines, for example hosted on multiple servers, can cooperate to generate mappings or transforms between data sources and transformed dimensional output 132 and/or other output. Other resources described as singular or integrated can in embodiments be plural or distributed, and resources described as multiple or distributed can in embodiments be combined. The scope of the present teachings is accordingly intended to be limited only by the following claims.
| Number | Name | Date | Kind |
|---|---|---|---|
| 5890167 | Bridge et al. | Mar 1999 | A |
| 5978796 | Malloy et al. | Nov 1999 | A |
| 6360188 | Freidman et al. | Mar 2002 | B1 |
| 6366922 | Althoff | Apr 2002 | B1 |
| 6434435 | Tubel et al. | Aug 2002 | B1 |
| 6434544 | Bakalash et al. | Aug 2002 | B1 |
| 6594672 | Lampson et al. | Jul 2003 | B1 |
| 6609123 | Cazemier et al. | Aug 2003 | B1 |
| 6735590 | Shoup et al. | May 2004 | B1 |
| 6931418 | Barnes | Aug 2005 | B1 |
| 7152062 | Draper et al. | Dec 2006 | B1 |
| 7299241 | Reed et al. | Nov 2007 | B2 |
| 7660822 | Pfleger | Feb 2010 | B1 |
| 20010049678 | Yaginuma | Dec 2001 | A1 |
| 20020029207 | Bakalash et al. | Mar 2002 | A1 |
| 20020035562 | Roller et al. | Mar 2002 | A1 |
| 20020083034 | Orbanes et al. | Jun 2002 | A1 |
| 20020087516 | Cras et al. | Jul 2002 | A1 |
| 20020152210 | Johnson et al. | Oct 2002 | A1 |
| 20020169658 | Adler | Nov 2002 | A1 |
| 20030114950 | Ruth et al. | Jun 2003 | A1 |
| 20030115194 | Pitts et al. | Jun 2003 | A1 |
| 20030115207 | Bowman et al. | Jun 2003 | A1 |
| 20030120372 | Ruth et al. | Jun 2003 | A1 |
| 20030126114 | Tedesco | Jul 2003 | A1 |
| 20030184585 | Lin et al. | Oct 2003 | A1 |
| 20030225736 | Bakalash et al. | Dec 2003 | A1 |
| 20040039736 | Kilmer et al. | Feb 2004 | A1 |
| 20040128296 | Krishnamurthy et al. | Jul 2004 | A1 |
| 20040133552 | Greenfield et al. | Jul 2004 | A1 |
| 20040139061 | Colossi et al. | Jul 2004 | A1 |
| 20050004904 | Keamey et al. | Jan 2005 | A1 |
| 20050010566 | Cushing et al. | Jan 2005 | A1 |
| 20050060382 | Spector et al. | Mar 2005 | A1 |
| 20060004833 | Trivedi et al. | Jan 2006 | A1 |
| 20060036707 | Singh et al. | Feb 2006 | A1 |
| 20060136462 | Campos et al. | Jun 2006 | A1 |
| 20060262145 | Zhang et al. | Nov 2006 | A1 |
| 20060271583 | Hulen et al. | Nov 2006 | A1 |
| 20070022093 | Wyatt et al. | Jan 2007 | A1 |
| 20070027904 | Chow et al. | Feb 2007 | A1 |
| 20070088757 | Mullins et al. | Apr 2007 | A1 |
| 20070094236 | Otter et al. | Apr 2007 | A1 |
| 20070208721 | Zaman et al. | Sep 2007 | A1 |
| 20080140696 | Mathuria | Jun 2008 | A1 |
| 20080172405 | Feng et al. | Jul 2008 | A1 |
| 20080243778 | Behnen et al. | Oct 2008 | A1 |
| 20080294596 | Xiong | Nov 2008 | A1 |
| 20080320023 | Fong | Dec 2008 | A1 |
| 20090193039 | Bradley et al. | Jul 2009 | A1 |
| 20090222470 | Kemp et al. | Sep 2009 | A1 |
| 20100057700 | Williamson | Mar 2010 | A1 |
| 20100057777 | Williamson | Mar 2010 | A1 |
| 20100169299 | Pollara | Jul 2010 | A1 |
| 20100305922 | Williamson | Dec 2010 | A1 |
| 20100306254 | Williamson | Dec 2010 | A1 |
| 20100306255 | Williamson | Dec 2010 | A1 |
| 20100306272 | Williamson | Dec 2010 | A1 |
| 20100306281 | Williamson | Dec 2010 | A1 |
| 20100306340 | Williamson | Dec 2010 | A1 |
| 20100306682 | Williamson | Dec 2010 | A1 |
| 20110050728 | Williamson | Mar 2011 | A1 |
| 20110054854 | Williamson | Mar 2011 | A1 |
| 20110055680 | Williamson | Mar 2011 | A1 |
| 20110055761 | Williamson | Mar 2011 | A1 |
| 20110055850 | Williamson | Mar 2011 | A1 |
| 20110078199 | Williamson | Mar 2011 | A1 |
| 20110078200 | Williamson | Mar 2011 | A1 |
| 20110131176 | Williamson | Jun 2011 | A1 |
| 20110131220 | Williamson | Jun 2011 | A1 |
| 20110158106 | Williamson | Jun 2011 | A1 |
| 20110161282 | Williamson | Jun 2011 | A1 |
| 20110161374 | Williamson | Jun 2011 | A1 |
| 20110161378 | Williamson | Jun 2011 | A1 |
| Entry |
|---|
| ASPFAQ.com, “What are the valid styles for converting datetime to string?” (2006) http://databases.aspfaq.com/database/what-are-the-valid-styles-for-converting-datetime-to-string.html. |
| Using OLAP and Multi-Dimensional data for decision making, Hasan et al. IEEE 2001. |
| A new OLAP aggregation based on the AHC technique, Massaoud et al, DOLAP'04 Nov. 12-13, 2004. |
| Interactive hierarchical dimension ordering, spacing and filtering for exploration of high dimension datasets, Yang et al, IEEE symposium on information visualization 2003. |
| Williamson, “Systems and Methods for Interpolating Conformal Input Sets Based on a Target Output”, U.S. Appl. No. 12/872,779, filed Aug. 31, 2010. |
| Williamson, “Systems and Methods for Interpolating Alternative Input Sets Based on User-Weighted Variables”, U.S. Appl. No. 12/951,881, filed Nov. 22, 2010. |
| Williamson, “Systems and Methods for Tracking Differential Changes in Conformal Data Input Sets”, U.S. Appl. No. 12/951,937, filed Nov. 22, 2010. |
| Williamson, “Systems and Methods for Training a Self-Learning Network Using Interpolated Input Sets Based on a Target Output”, U.S. Appl. No. 12/872,935, filed Aug. 31, 2010. |
| Williamson, “Systems and Methods for Embedding Interpolated Data Object in Application Data File”, U.S. Appl. No. 12/955,717, filed Nov. 29, 2010. |
| Williamson, “Systems and Methods for Generating Interpolated Input Data Sets Using Reduced Input Source Objects”, U.S. Appl. No. 12/955,768, filed Nov. 29, 2010. |
| Williamson, “Systems and Methods for Filtering Interpolated Input Data Based on User-Supplied or Other Approximation Constraints”, U.S. Appl. No. 12/955,790, filed Nov. 29, 2010. |
| Williamson, “Systems and Methods for Binding Multiple Interpolated Data Objects”, U.S. Appl. No. 12/955,811, filed Nov. 29, 2010. |
| Williamson, “Systems and Methods for Generating Portable Interpolated Data Using Object Based Encodig of Interpolated Results”, U.S. Appl. No. 13/037,322, filed Feb. 28, 2011. |
| Williamson, “Systems and Methods for Generating Interpolation Data Template to Normalize Analytic Runs”, U.S. Appl. No. 13/037,332, filed Feb. 28, 2011. |
| Williamson, “Systems and Methods for Generating Interpolation Data Sets Converging to Optimized Results Using Iterative Overlapping Inputs”, U.S. Appl. No. 13/037,341, filed Feb. 28, 2011. |
| Williamson, “Systems and Methods for Validating Interpolation Results Using Monte Carlo Simulations on Interpolated Data Inputs”, U.S. Appl. No. 13/037,344, filed Feb. 28, 2011. |
| Answering Joint Queries from Multiple Aggregate OLAP Databases, Pourabbas et al, LNCS 2737, pp. 24-34, 2003. |
| Number | Date | Country | |
|---|---|---|---|
| 20100131456 A1 | May 2010 | US |