Patent ID: 8122038

Claim:
A method performed by a computer having a memory and a processor for retrieving data from each of a plurality of heterogeneous data sources, the method comprising: defining a reference dimension specifying a plurality of values; receiving an indication of a first data source, the first data source organizing data according to a first unit of time in a first format, the first unit of time corresponding to a first granularity; receiving an indication of a second data source, the second data source organizing data according to a second unit of time in a second format, the second unit of time corresponding to a second granularity; with a processor, aligning the first data source to the reference dimension by selecting a value of the first unit of time in the first format of the first data source and associating the selected value of the first unit of time in the first format of the first data source with a first value of the reference dimension; with a processor, aligning the second data source to the reference dimension by selecting a value of the second unit of time in the second format of the second data source and associating the selected value of the second unit of time in the second format of the second data source with a second value of the reference dimension; receiving from a user a query function specifying a period; submitting the query function to the first data source wherein the first data source is configured to determine a first range of values of the first unit of time in the first format based at least in part on the specified period, a third granularity, and the alignment of the first data source to the reference dimension; receiving from the first data source a first set of results corresponding to the first range of values; submitting the query function to the second data source wherein the second data source is configured to determine a second range of values of the second unit of time in the second format based at least in part on the specified period, a fourth granularity, and the alignment of the second data source to the reference dimension; receiving from the second data source a second set of results corresponding to the second range of values; and combining the received first and second sets of results into a single data member.