BACKGROUND

In traditional database systems, data is stored in one or more databases usually in the form of tables. The stored data is then queried and manipulated using a data management language such as a structured query language (SQL). For example, a SQL query may be defined and executed to identify relevant data from the data stored in the database. A SQL query is thus executed on a finite set of data stored in the database. Further, when a SQL query is executed, it is executed once on the finite data set and produces a finite static result. Databases are thus best equipped to run queries over finite stored data sets.

A number of modern applications and systems however generate data in the form of continuous data or event streams instead of a finite data set. Examples of such applications include but are not limited to sensor data applications, financial tickers, network performance measuring tools (e.g. network monitoring and traffic management applications), clickstream analysis tools, automobile traffic monitoring, and the like. Such applications have given rise to a need for a new breed of applications that can process the data streams. For example, a temperature sensor may be configured to send out temperature readings.

Managing and processing data for these types of event stream-based applications involves building data management and querying capabilities with a strong temporal focus. A different kind of querying mechanism is needed that comprises long-running queries over continuous unbounded sets of data. While some vendors now offer product suites geared towards event streams processing, these product offerings still lack the processing flexibility required for handling today's events processing needs.

SUMMARY

The following portion of this disclosure presents a simplified summary of one or more innovations, embodiments, and/or examples found within this disclosure for at least the purpose of providing a basic understanding of the subject matter. This summary does not attempt to provide an extensive overview of any particular embodiment or example. Additionally, this summary is not intended to identify key/critical elements of an embodiment or example or to delineate the scope of the subject matter of this disclosure. Accordingly, one purpose of this summary may be to present some innovations, embodiments, and/or examples found within this disclosure in a simplified form as a prelude to a more detailed description presented later.

A further understanding of the nature of and equivalents to the subject matter of this disclosure (as well as any inherent or express advantages and improvements provided) should be realized in addition to the above section by reference to the remaining portions of this disclosure, any accompanying drawings, and the claims.

In some examples, a method, a system, and a computer-readable medium may be provided. The method, the system, and/or the computer-readable medium may comprise generating a first extractor for extracting a first field from a first event, determining an output event type, generating a second extractor for extracting subsequent fields from subsequent events based at least in part on the input event type, and implementing the second extractor. In some cases, the first extractor may be implemented to determine an input event type, extract the first field from the first event, and convert the first field to the output event (for the first event). Additionally, in some cases, the second extractor may be implemented to extract a subsequent field from the subsequent event and convert the subsequent field to the output event. In some cases, the first event and the subsequent events may be received from an input stream. The method, system, and/or computer-readable medium may also store the output event as a tuple and/or receive code that identifies a type conversion for each of a plurality of input events. In some examples, the second extractor may not determine a subsequent input event type for the subsequent events. In some examples, the first extractor, may be generated based at least in part on the code and/or the code may be received from an entity associated with at least one of the first event or the subsequent events. In some instances, the second extractor may be implemented for each subsequent event and/or at least one of the first extractor or the second extractor may be implemented as object oriented classes of an adapter framework.

