Pattern Recognition Cache Event Sources Functions

Introduction to Oracle CQL 1-15 Oracle CEP relational database table and cache event sources are pull data sources: that is, Oracle CEP polls the event source on arrival of an event on the data stream. For more information, see: ■ Section 1.1.9, Table Event Sources ■ Section 1.1.10, Cache Event Sources

1.1.8.2 Event Sinks

An Oracle CQL event sink connected to a CQL processor is a consumer of query results. In Oracle CEP, the following elements may be event sinks: ■ adapter JMS, HTTP, and file ■ channel ■ processor ■ cache You can associate the same query with more than one event sink and with different types of event sink.

1.1.8.3 Connecting Event Sources and Event Sinks

In Oracle CEP, you define event sources and event sinks using Oracle CEP IDE for Eclipse to create the Event Processing Network EPN as Figure 1–5 shows. In this EPN, adapter PriceAdapter is the event source for channel priceStream; channel priceStream is the event source for Oracle CQL processor filterFanoutProcessor. Similarly, Oracle CQL processor filterFanoutProcessor is the event sink for channel priceStream. Figure 1–5 Event Sources and Event Sinks in the Event Processing Network For more information, see: ■ Section 1.1.1, Streams and Relations ■ Section 18.1, Introduction to Oracle CQL Queries, Views, and Joins ■ Oracle Complex Event Processing Developers Guide for Eclipse

1.1.9 Table Event Sources

Using Oracle CQL, you can access tabular data, including: ■ Section 1.1.9.1, Relational Database Table Event Sources ■ Section 1.1.9.2, XML Table Event Sources ■ Section 1.1.9.3, Function Table Event Sources For more information, see Section 1.1.8, Event Sources and Event Sinks 1-16 Oracle Complex Event Processing CQL Language Reference

1.1.9.1 Relational Database Table Event Sources

Using an Oracle CQL processor, you can specify a relational database table as an event source. You can query this event source, join it with other event sources, and so on. For more information, see Section 18.6, Oracle CQL Queries and Relational Database Tables .

1.1.9.2 XML Table Event Sources

Using the Oracle CQL XMLTABLE clause, you can parse data from an xmltype stream into columns using XPath expressions and conveniently access the data by column name. For more information, see Section 18.2.6, XMLTable Query .

1.1.9.3 Function Table Event Sources

Use the TABLE clause to access, as a relation, the multiple rows returned by a built-in or user-defined function, as an array or Collection type, in the FROM clause of an Oracle CQL query. For more information, see: ■ Section 18.2.7, Function TABLE Query ■ Section 1.1.11, Functions

1.1.10 Cache Event Sources

Using an Oracle CQL processor, you can specify an Oracle CEP cache as an event source. You can query this event source and join it with other event sources using a now window only. For more information, see: ■ Section 1.1.8, Event Sources and Event Sinks ■ Section 18.2.8, Cache Query ■ S[now] on page 4-7

1.1.11 Functions

Functions are similar to operators in that they manipulate data items and return a result. Functions differ from operators in the format of their arguments. This format enables them to operate on zero, one, two, or more arguments: functionargument, argument, ... A function without any arguments is similar to a pseudocolumn refer to Chapter 3, Pseudocolumns . However, a pseudocolumn typically returns a different value for each tuple in a relation, whereas a function without any arguments typically returns the same value for each tuple. Oracle CQL provides a wide variety of built-in functions to perform operations on stream data, including: ■ single-row functions that return a single result row for every row of a queried stream or view ■ aggregate functions that return a single aggregate result based on group of tuples, rather than on a single tuple Introduction to Oracle CQL 1-17 ■ single-row statistical and advanced arithmetic operations based on the Colt open source libraries for high performance scientific and technical computing. ■ aggregate statistical and advanced arithmetic operations based on the Colt open source libraries for high performance scientific and technical computing. ■ statistical and advanced arithmetic operations based on the java.lang.Math class If Oracle CQL built-in functions do not provide the capabilities your application requires, you can easily create user-defined functions in Java by using the classes in the oracle.cep.extensibility.functions package. You can create aggregate and single-row user-defined functions. You can create overloaded functions and you can override built-in functions. If you call an Oracle CQL function with an argument of a datatype other than the datatype expected by the Oracle CQL function, then Oracle CEP attempts to convert the argument to the expected datatype before performing the Oracle CQL function. For more information, see: ■ Chapter 8, Built-In Single-Row Functions ■ Chapter 9, Built-In Aggregate Functions ■ Chapter 10, Colt Single-Row Functions ■ Chapter 11, Colt Aggregate Functions ■ Chapter 12, java.lang.Math Functions ■ Chapter 13, User-Defined Functions ■ Section 2.3.4, Datatype Conversion

1.1.12 Data Cartridges

The Oracle CQL data cartridge framework allows you to tightly integrate arbitrary domain objects with the Oracle CQL language and use domain object fields, methods, and constructors within Oracle CQL queries in the same way you use Oracle CQL native types. Currently, Oracle CEP provides the following data cartridges: ■ Oracle Java data cartridge: this data cartridge exposes Java types, methods, fields, and constructors that you can use in Oracle CQL queries and views as you would Oracle CQL native types. See Chapter 15, Oracle Java Data Cartridge . ■ Oracle Spatial: this data cartridge exposes Oracle Spatial types, methods, fields, and constructors that you can use in Oracle CQL queries and views as you would Oracle CQL native types. See Chapter 16, Oracle Spatial . Note: Function names are case sensitive: ■ Built-in functions: lower case. ■ User-defined functions: welvs:function element function-name attribute determines the case you use. 1-18 Oracle Complex Event Processing CQL Language Reference ■ Oracle JDBC data cartridge: this data cartridge allows you to incorporate arbitrary SQL functions against multiple tables and data sources in Oracle CQL queries and views as you would Oracle CQL native types. See Chapter 17, Oracle CEP JDBC Data Cartridge . For more information, see: ■ Section 14.1, Understanding Data Cartridges