Method and System for High Performance Integration, Processing and Searching of Structured and Unstructured Data Using Coprocessors
First Claim
1. A method of providing integrated access to both structured and unstructured data, the method comprising:
- receiving a query directed toward a combination of structured and unstructured data;
retrieving structured data from a database of structured data in accordance with the received query;
retrieving unstructured data from a data store of unstructured data based on the retrieved structured data;
streaming the retrieved unstructured data through a processing device in a computing system other than a main processor for the system; and
performing a query-specified data processing operation on the streaming unstructured data using the processing device.
4 Assignments
0 Petitions
Accused Products
Abstract
Disclosed herein is a method and system for integrating an enterprise'"'"'s structured and unstructured data to provide users and enterprise applications with efficient and intelligent access to that data. Queries can be directed toward both an enterprise'"'"'s structured and unstructured data using standardized database query formats such as SQL commands. A coprocessor can be used to hardware-accelerate data processing tasks (such as full-text searching) on unstructured data as necessary to handle a query. Furthermore, traditional relational database techniques can be used to access structured data stored by a relational database to determine which portions of the enterprise'"'"'s unstructured data should be delivered to the coprocessor for hardware-accelerated data processing.
-
Citations
69 Claims
-
1. A method of providing integrated access to both structured and unstructured data, the method comprising:
-
receiving a query directed toward a combination of structured and unstructured data; retrieving structured data from a database of structured data in accordance with the received query; retrieving unstructured data from a data store of unstructured data based on the retrieved structured data; streaming the retrieved unstructured data through a processing device in a computing system other than a main processor for the system; and performing a query-specified data processing operation on the streaming unstructured data using the processing device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 19, 20)
-
-
17. A system for processing data, the system comprising:
-
a main processor; a processing device other than the main processor; a data store of unstructured data in communication with the main processor and the processing device; a data store of structured data in communication with the main processor and the processing device; wherein the main processor is configured to (1) receive a query, (2) process at least a portion of the query against the structured data in the data store of structured data to identify a subset of unstructured data in the data store of unstructured data that satisfies at least a portion of the query, and (3) request that the subset of unstructured data be delivered to the processing device; and wherein the processing device is configured to perform a query-specified data processing operation on the subset of unstructured data. - View Dependent Claims (18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 36)
-
-
32. A method of providing integrated access to both structured and unstructured data, the method comprising:
-
receiving a query directed toward a combination of structured and unstructured data; retrieving structured data from a database of structured data in accordance with the received query; retrieving unstructured data from a data store of unstructured data based on the retrieved structured data; streaming the retrieved unstructured data through firmware deployed on a reconfigurable logic device, wherein the firmware is configured to perform a query-specified data processing operation on the unstructured data streamed therethrough.
-
-
33. A system for processing data, the system comprising:
-
a reconfigurable logic device having firmware deployed thereon; a data store of unstructured data in communication with the reconfigurable logic device; a data store of structured data in communication with the reconfigurable logic device; an interface configured to (1) receive a query, (2) process at least a portion of the query against the structured data in the data store of structured data to identify a subset of unstructured data in the data store of unstructured data that satisfies at least a portion of the query, and (3) request that the subset of unstructured data be delivered to the firmware on the reconfigurable logic device; and wherein the firmware is configured to perform a query-specified data processing operation on the subset of unstructured data.
-
-
34. A method for intelligently accessing unstructured data to perform a data analysis operation thereon, the method comprising:
-
maintaining metadata corresponding to the unstructured data within a data store of structured data; identifying a subset of the unstructured data by applying a query to the data store of structured data that is directed at least partially toward the metadata; and retrieving the identified subset of unstructured data from a data store of unstructured data; and performing a data analysis operation on the retrieved unstructured data using a coprocessor to thereby generate data for a response to the query. - View Dependent Claims (37, 38, 39, 40)
-
-
41. A processor-readable medium for interfacing a coprocessor with a software application, the computer-readable medium comprising:
processor-executable code for (1) receiving a query from a software application, (2) determining a portion of the query to be directed against structured data stored by a data store of structured data, (3) determining portion of the query to be directed toward unstructured data stored by a data store of unstructured data, (4) applying the determined query portion for structured data against the data store of structured data, (5) in response to the application of the determined query portion for structured data, receiving from the data store of structured data an identification of a subset of the stored unstructured data, (6) delivering a command to the coprocessor to thereby configure the coprocessor to perform a data analysis operation specified by the determined query portion for unstructured data, and (7) directing a delivery of the subset of unstructured data from the data store of unstructured data to the coprocessor for performance of the data analysis operation on the subset of unstructured data, wherein the code is resident on the processor-readable medium. - View Dependent Claims (42, 43)
-
44. A method of processing a query that is directed toward structured and unstructured data, the method comprising:
-
performing a structured data retrieval operation for a portion of the query that is directed toward structured data; and hardware-accelerating a query-specified data processing operation for a portion of the query that is directed toward unstructured data.
-
-
45. A method of performing queries on unstructured data, the method comprising:
-
receiving a query; accessing structured data in response to the query to identify a subset of unstructured data that is to be analyzed against the query; and performing a query-specified data analysis operation on the identified subset of unstructured data to thereby generate data for a response to the query; wherein the accessing step is conducted by a processor; and wherein the performing step is conducted by a coprocessor. - View Dependent Claims (46, 47, 48, 49, 50, 51)
-
-
52. An enterprise computing system, the system comprising:
-
a computer; an appliance in communication with the computer over a network, the appliance comprising a processor, a coprocessor, and a data store; wherein the computer is configured to execute a software application to deliver a query to the appliance; wherein the appliance is configured to receive the query; wherein the processor is configured to selectively apply a portion of the received query to structured data stored by the data store and identify a subset of unstructured data in response to the applied query; wherein the processor is further configured to define a data processing operation for the coprocessor based on another portion of the received query; wherein the appliance is further configured to stream the identified subset of unstructured data through the coprocessor; wherein the coprocessor is configured to perform the defined data processing operation on the identified subset of unstructured data streamed therethrough to thereby generate a result set corresponding to the received query; and wherein the processor is further configured to (1) formulate a response to the query based on the generated result set and (2) communicate the query response to the computer. - View Dependent Claims (53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66)
-
-
67. An apparatus for handling a query directed toward structured and unstructured data, the apparatus comprising:
a processor configured to (1) execute relational engine software and (2) execute coprocessor interface software, wherein the relational engine software is configured to (1) apply a portion of a query that is directed toward structured data to a relational database to thereby identify a subset of unstructured data, and (2) invoke the coprocessor interface software upon encountering a portion of the query that is directed toward unstructured data, and wherein the coprocessor interface software is configured to invoke a coprocessor to perform a query-specified data processing operation on the identified subset of unstructured data. - View Dependent Claims (68, 69)
Specification