Splitter

Use the splitter feature to route data from one stream to multiple streams.

The example creates a schema named TradeSchema and applies that schema to the input window Trades. IBM_MSFT_Splitter evaluates and routes data to one of three output windows. IBM_MSFT_Tradeswin retains data with the symbols IBM or MSFT. Large_TradesWin retains all data where the product of trw.Price * trw.Volume is greater than 25,000. Other_Trades retains all data sets that do not meet the conditions placed on the two previous output windows.
CREATE  SCHEMA TradeSchema ( 
    Id        long,
    Symbol    STRING,
    Price     MONEY(4),
    Volume    INTEGER,
    TradeTime DATE
) ;

CREATE  INPUT  WINDOW Trades
SCHEMA  TradeSchema
PRIMARY KEY (Id) ;

CREATE  SPLITTER  IBM_MSFT_Splitter
    AS
    WHEN trw.Symbol IN ('IBM', 'MSFT') THEN IBM_MSFT_Trades
    WHEN trw.Price * trw.Volume > 25000 THEN Large_Trades
    ELSE Other_Trades
    SELECT trw. * FROM Trades trw ;

CREATE  OUTPUT  WINDOW IBM_MSFT_TradesWin
        PRIMARY  KEY  DEDUCED
    AS  SELECT * FROM IBM_MSFT_Trades ;

CREATE  OUTPUT  WINDOW Large_TradesWin
        PRIMARY  KEY  DEDUCED
    AS  SELECT * FROM Large_Trades ;

CREATE  OUTPUT  WINDOW Other_TradesWin
        PRIMARY  KEY  DEDUCED
    AS  SELECT * FROM Other_Trades ;
    

The example concludes by attaching the XML Input Adapter to Trades to process the incoming stream data.

ATTACH  INPUT  ADAPTER xmlInConn1
    TYPE xml_in
    TO Trades
    PROPERTIES
        blockSize=1,
        dir='../exampledata',
        file='Trades.xml',
        filePattern='*.xml',
        safeOps=false,
        skipDels=false