Processor implemented systems and methods for using the catalog part of an SQL identifier to expose/access heterogeneous data
First Claim
1. A computer-program product, tangibly embodied in a machine-readable non-transitory storage medium, including instructions configured to cause a data processing apparatus to perform operations including:
- receiving, at a computing device, a connection string, wherein the connection string;
includes a logical catalog name associated with a first data source and a logical catalog name associated with a second data source, andprovides connection properties of the first data source and connection properties of the second data source;
retrieving connection information from a metadata map, wherein retrieving connection information includes retrieving additional connection properties of the first data source and additional connection properties of the second data source, wherein the metadata map associates a first catalog name identifier with the first data source and a second catalog name identifier with the second data source;
augmenting the connection string based on the additional connection properties of the first data source and the additional connection properties of the second data source, wherein the metadata map associates the first catalog name identifier with the first data source and the second catalog name identifier with the second data source;
establishing a connection with the first data source;
establishing a connection with the second data source, wherein establishing the connection with the first data source and establishing the connection with the second data source includes using the augmented connection string;
receiving a query, wherein the query includes the first catalog name identifier, the second catalog name identifier, a first object reference and a second object reference, wherein each of the object references identifies an object according to a catalog.schema.object identifier syntax;
determining that the first data source and the second data source are referenced by the query, wherein determining includes ascertaining that the metadata map associates the first catalog name identifier and the second catalog name identifier with the first data source and the second data source, respectively;
in response to determining that the first data source and the second data source are referenced by the query, generating a first sub-query for information from the first data source and a second sub-query for information from the second data source, wherein generating the first sub-query is based on the first object reference and wherein generating the second sub-query is based on the second object reference;
querying the first data source using the first sub-query;
querying the second data source using the second sub-query;
receiving data retrieved from the first data source based on the first sub-query;
receiving data retrieved from the second data source based on the second sub-query; and
generating a query response by combining the received data retrieved from the first data source and the received data retrieved from the second data source.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are provided for providing data from a plurality of databases stored on a plurality of disparate servers. A query is received for data from a plurality of databases stored on a plurality of disparate servers. An address for a first server is resolved that stores a first database identified by the catalog field in the query using a logical name-to-connection metadata map. A first sub-query is transmitted to the first server based on the received query, and a first sub-query response is received from the first server. The resolving, transmitting, and receiving are repeated for a second server. The first sub-query response and the second sub-query response are combined to generate a query response according to the received query, and the query response is transmitted.
12 Citations
15 Claims
-
1. A computer-program product, tangibly embodied in a machine-readable non-transitory storage medium, including instructions configured to cause a data processing apparatus to perform operations including:
-
receiving, at a computing device, a connection string, wherein the connection string; includes a logical catalog name associated with a first data source and a logical catalog name associated with a second data source, and provides connection properties of the first data source and connection properties of the second data source; retrieving connection information from a metadata map, wherein retrieving connection information includes retrieving additional connection properties of the first data source and additional connection properties of the second data source, wherein the metadata map associates a first catalog name identifier with the first data source and a second catalog name identifier with the second data source; augmenting the connection string based on the additional connection properties of the first data source and the additional connection properties of the second data source, wherein the metadata map associates the first catalog name identifier with the first data source and the second catalog name identifier with the second data source; establishing a connection with the first data source; establishing a connection with the second data source, wherein establishing the connection with the first data source and establishing the connection with the second data source includes using the augmented connection string; receiving a query, wherein the query includes the first catalog name identifier, the second catalog name identifier, a first object reference and a second object reference, wherein each of the object references identifies an object according to a catalog.schema.object identifier syntax; determining that the first data source and the second data source are referenced by the query, wherein determining includes ascertaining that the metadata map associates the first catalog name identifier and the second catalog name identifier with the first data source and the second data source, respectively; in response to determining that the first data source and the second data source are referenced by the query, generating a first sub-query for information from the first data source and a second sub-query for information from the second data source, wherein generating the first sub-query is based on the first object reference and wherein generating the second sub-query is based on the second object reference; querying the first data source using the first sub-query; querying the second data source using the second sub-query; receiving data retrieved from the first data source based on the first sub-query; receiving data retrieved from the second data source based on the second sub-query; and generating a query response by combining the received data retrieved from the first data source and the received data retrieved from the second data source. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system, comprising:
-
one or more processing units; one or more non-transitory computer-readable storage mediums containing instructions configured to cause the one or more processing units to perform operations including; receiving, at a computing device, a connection string, wherein the connection string; includes a logical catalog name associated with a first data source and a logical catalog name associated with a second data source, and provides connection properties of the first data source and connection properties of the second data source; retrieving connection information from a metadata map, wherein retrieving connection information includes retrieving additional connection properties of the first data source and additional connection properties of the second data source, wherein the metadata map associates a first catalog name identifier with the first data source and a second catalog name identifier with the second data source; augmenting the connection string based on the additional connection properties of the first data source and the additional connection properties of the second data source, wherein the metadata map associates the first catalog name identifier with the first data source and the second catalog name identifier with the second data source; establishing a connection with the first data source; establishing a connection with the second data source, wherein establishing the connection with the first data source and establishing the connection with the second data source includes using the augmented connection string; receiving a query, wherein the query includes the first catalog name identifier, the second catalog name identifier, a first object reference and a second object reference, wherein each of the object references identifies an object according to a catalog.schema.object identifier syntax; determining that the first data source and the second data source are referenced by the query, wherein determining includes ascertaining that the metadata map associates the first catalog name identifier and the second catalog name identifier with the first data source and the second data source, respectively; in response to determining that the first data source and the second data source are referenced by the query, generating a first sub-query for information from the first data source and a second sub-query for information from the second data source, wherein generating the first sub-query is based on the first object reference and wherein generating the second sub-query is based on the second object reference; querying the first data source using the first sub-query; querying the second data source using the second sub-query; receiving data retrieved from the first data source based on the first sub-query; receiving data retrieved from the second data source based on the second sub-query; and generating a query response by combining the received data retrieved from the first data source and the received data retrieved from the second data source. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A computer-implemented method, comprising:
-
receiving, at a computing device, a connection string, wherein the connection string; includes a logical catalog name associated with a first data source and a logical catalog name associated with a second data source, and provides connection properties of the first data source and connection properties of the second data source; retrieving connection information from a metadata map, wherein retrieving connection information includes retrieving additional connection properties of the first data source and additional connection properties of the second data source, wherein the metadata map associates a first catalog name identifier with the first data source and a second catalog name identifier with the second data source; augmenting the connection string based on the additional connection properties of the first data source and the additional connection properties of the second data source, wherein the metadata map associates the first catalog name identifier with the first data source and the second catalog name identifier with the second data source; establishing a connection with the first data source; establishing a connection with the second data source, wherein establishing the connection with the first data source and establishing the connection with the second data source includes using the augmented connection string; receiving a query, wherein the query includes the first catalog name identifier, the second catalog name identifier, a first object reference and a second object reference, wherein each of the object references identifies an object according to a catalog.schema.object identifier syntax; determining that the first data source and the second data source are referenced by the query, wherein determining includes ascertaining that the metadata map associates the first catalog name identifier and the second catalog name identifier with the first data source and the second data source, respectively; in response to determining that the first data source and the second data source are referenced by the query, generating a first sub-query for information from the first data source and a second sub-query for information from the second data source, wherein generating the first sub-query is based on the first object reference and wherein generating the second sub-query is based on the second object reference; querying the first data source using the first sub-query; querying the second data source using the second sub-query; receiving data retrieved from the first data source based on the first sub-query; receiving data retrieved from the second data source based on the second sub-query; generating a query response by combining the received data retrieved from the first data source and the received data retrieved from the second data source. - View Dependent Claims (12, 13, 14, 15)
-
Specification