US2015339352A1PendingUtilityA1

Enriching Database Query Responses Using Data From External Data Sources

Assignee: MICROSOFT TECHNOLOGY LICENSING LLCPriority: Jun 14, 2011Filed: Aug 3, 2015Published: Nov 26, 2015
Est. expiryJun 14, 2031(~4.9 yrs left)· nominal 20-yr term from priority
G06F 16/2445G06F 16/24575G06F 16/27G06F 16/215G06F 16/335G06F 16/9535G06F 16/2425G06F 16/24522G06F 16/2471G06F 16/245G06F 16/23G06F 16/2453G06F 17/30528G06F 17/30395G06F 17/30867
53
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

The subject disclosure is directed towards enriching database query responses using data from external data sources. When processing a database query seeking enriched data from an external data source, a request is communicated to the external data source based on the database query. An enriched database query response is generated based on data provided by the external data source. The enriched database query response may be combined with data returned via an internal database query operation, and/or inserted into a local database table.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A computer system, the computer system comprising:
 system memory;   one or more processors; and   a data enrichment service, the data enrichment service configured to:
 access a database query, the database query including an enrichment parameter, the database query requesting values for a plurality of entities, the database query requesting that values for any of the plurality of entities available from a database are to be retrieved from the database, the enrichment parameter indicating that values for at least one entity, from among the plurality of entities, not available from the database are to be retrieved from a second data source, the enrichment parameter indicating that values for a first subset of entities, from among the plurality of entities, retrieved from the database are to be enriched with enrichment data; 
 obtain enrichment data by querying the second data source for values for a second subset of entities, from among the plurality of entities, querying the second data source using retrieved values for an entity from among the first subset of entities to specify what values to retrieve for the second subset of entities; and 
 return an enriched query response in response to the database query, the enriched query response including values for the first subset of entities along with the values for the second subset of entities. 
   
     
     
         2 . The computer system of  claim 1 , wherein the data enrichment service being configured to obtain enrichment data by querying the second data source comprises the data enrichment service configured to:
 identify a data type for data in the second data source; and   use a translation mechanism to execute a native function for accessing data of the identified data type.   
     
     
         3 . The computer system of  claim 2 , wherein the data enrichment service being configured to use the translation mechanism comprises the data enrichment service being configured to use a contextual parameter that specifies one or more of: a location value, a time value, and a geographic location value as a function call parameter to identify values for the second subset of entities. 
     
     
         4 . The computer system of  claim 1 , further comprising the data enrichment service being configured to, prior to obtaining enrichment data, access a directory that defines a protocol for communicating with the second data source; and
 wherein the data enrichment service being configured to obtain enrichment data comprises the data enrichment service being configured to use the protocol for querying the second data source.   
     
     
         5 . The computer system of  claim 1 , wherein the database is a free data service and the second data source is a commercial data service. 
     
     
         6 . The computer system of  claim 1 , wherein data queried from the second data source is limited to data corresponding to values of an entity in the first subset of entities. 
     
     
         7 . The computer system of  claim 1 , further comprising the data enrichment service being configured to, prior to obtaining enrichment data, select the second data source, from among a plurality of data sources capable of returning values for the second subset of entities, in accordance with a one or more of: a data preference contained in a policy and a data priority contained in the policy. 
     
     
         8 . The computer system of  claim 1 , wherein the computer system is an enrichment server. 
     
     
         9 . The computer system of  claim 1 , wherein the enrichment service is included in a SQL engine. 
     
     
         10 . In a computing environment, a method performed at least in part on at least one processor for enriching a query response, comprising:
 accessing a database query, the database query including an enrichment parameter, the database query requesting values for a plurality of entities, the database query requesting that values for any of the plurality of entities available from a database are to be retrieved from the database, the enrichment parameter indicating that values for at least one entity, from among the plurality of entities, not available from the database are to be retrieved from a second data source, the enrichment parameter indicating that values for a first subset of entities, from among the plurality of entities, retrieved from the database are to be enriched with enrichment data;   obtaining enrichment data by querying the second data source for values for a second subset of entities, from among the plurality of entities, querying the second data source using retrieved values for an entity from among the first subset of entities to specify what values to retrieve for the second subset of entities; and   returning an enriched query response in response to the database query, the enriched query response including values for the first subset of entities along with the values for the second subset of entities.   
     
     
         11 . The method of  claim 10 , wherein obtaining enrichment data by querying the second data source comprises:
 identifying a data type for data in the second data source; and   using a translation mechanism to execute a native function for accessing data of the identified data type.   
     
     
         12 . The method of  claim 11 , wherein using the translation mechanism comprises using a contextual parameter that specifies one or more of: a location value, a time value, and a geographic location value as a function call parameter to identify values for the second subset of entities. 
     
     
         13 . The method of  claim 10 , further comprising, prior to obtaining enrichment data, accessing a directory that defines a protocol for communicating with the second data source; and
 wherein obtaining enrichment data comprises using the protocol for querying the second data source.   
     
     
         14 . The method of  claim 10 , wherein the database is a free data service and the second data source is a commercial data service. 
     
     
         15 . The method of  claim 10 , wherein data queried from the second data source is limited to data corresponding to values of an entity in the first subset of entities. 
     
     
         16 . The method of  claim 10 , further comprising, prior to obtaining enrichment data, selecting the second data source, from among a plurality of data sources capable of returning values for the second subset of entities, in accordance with a one or more of: a data preference contained in a policy and a data priority contained in the policy. 
     
     
         17 . A computer program product of user at a computer system, the computer program product for implementing a method for enriching a query response, the computer program product comprising one or more computer-readable media having stored thereon computer-executable instructions, which in response to execution at a processor cause the computer system to perform the method, including the following:
 access a database query, the database query including an enrichment parameter, the database query requesting values for a plurality of entities, the database query requesting that values for any of the plurality of entities available from a database are to be retrieved from the database, the enrichment parameter indicating that values for at least one entity, from among the plurality of entities, not available from the database are to be retrieved from a second data source, the enrichment parameter indicating that values for a first subset of entities, from among the plurality of entities, retrieved from the database are to be enriched with enrichment data;   obtain enrichment data by querying the second data source for values for a second subset of entities, from among the plurality of entities, querying the second data source using retrieved values for an entity from among the first subset of entities to specify what values to retrieve for the second subset of entities; and   return an enriched query response in response to the database query, the enriched query response including values for the first subset of entities along with the values for the second subset of entities.   
     
     
         18 . The computer program product of  claim 17 , wherein computer-executable instructions that, in response to execution, cause the computer system to obtain enrichment data by querying the second data source comprise computer-executable instructions that, in response to execution, cause the computer system to:
 identify a data type for data in the second data source; and   use a translation mechanism to execute a native function for accessing data of the identified data type by using a contextual parameter that specifies one or more of: a location value, a time value, and a geographic location value as a function call parameter to identify values for the second subset of entities.   
     
     
         19 . The computer program product of  claim 17 , further comprising computer-executable instructions that, in response to execution, cause the computer system to, prior to obtaining enrichment data, access a directory that defines a protocol for communicating with the second data source; and
 wherein computer-executable instructions that, in response to execution, cause the computer system to obtain enrichment data comprise computer-executable instructions that, in response to execution, cause the computer system to use the protocol for querying the second data source.   
     
     
         20 . The computer program product of  claim 17 , further comprising computer-executable instructions that, in response to execution, cause the computer system to, prior to obtaining enrichment data, select the second data source, from among a plurality of data sources capable of returning values for the second subset of entities, in accordance with a one or more of: a data preference contained in a policy and a data priority contained in the policy.

Join the waitlist — get patent alerts

Track US2015339352A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.