Example: JoinStream with LeftOuter Join Migration

In CCL, the Aleri store element migrates to a CREATE MEMORY STORE statement, and the JoinStream element migrates to an output window with JOIN expressions.

The Aleri JoinStream " leftOuterJoindatatypes" has a left outer join between the input streams "alldatatypes" and "alldatatypes1", with One-Many mapping between these input streams. The SourceStream elements (alldatatypes and alldatatypes1) migrate to an input window in CCL.

AleriML:

<Store file="store1" fullsize="64" id="store1" kind="memory"/>
    <SourceStream id="alldatatypes" store="store1">
  	  <Column datatype="int32" key="true" name="id"/>
    <Column datatype="int64" key="true" name="a"/>
    <Column datatype="string" key="false" name="charData"/>
  </SourceStream>
     <SourceStream id="alldatatypes1" store="store1">
		<Column datatype="int32" key="true" name="id"/>
		<Column datatype="int64" key="false" name="a1"/>
		<Column datatype="string" key="false" name="charData1"/>
   </SourceStream>
  <JoinStream id="leftOuterJoindatatypes" istream="alldatatypes alldatatypes1" store="store1">
    <Join constraints="id=id a=a1" table1="alldatatypes" table2="alldatatypes1" type="leftouter"/>
   <ColumnExpression key="true" name="id">alldatatypes.id</ColumnExpression>
    <ColumnExpression key="true" name="a">alldatatypes.a</ColumnExpression>
    <ColumnExpression key="false" name="chardata">alldatatypes.charData</ColumnExpression>
    <ColumnExpression key="false" name="chardata1">alldatatypes1.charData1</ColumnExpression>
    </JoinStream>

CCL:

CREATE  MEMORY  STORE store1 PROPERTIES  INDEXTYPE ='tree',  INDEXSIZEHINT =8;
CREATE  INPUT  WINDOW alldatatypes
SCHEMA (id INTEGER, a LONG, charData STRING)
PRIMARY KEY (id, a)
 STORE store1;
CREATE  INPUT  WINDOW alldatatypes1
SCHEMA (id INTEGER, a1 LONG, charData1 STRING)
PRIMARY KEY (id)
 STORE store1;
CREATE  OUTPUT  WINDOW leftOuerJoindatatypes
SCHEMA (id INTEGER, a LONG, chardata STRING, chardata1 STRING)
PRIMARY KEY (id, a)
 STORE store1
 AS 
SELECT alldatatypes.id AS id, alldatatypes.a AS a, alldatatypes.charData AS chardata, alldatatypes1.charData1 AS chardata1 FROM 
alldatatypes
 LEFT JOIN 
alldatatypes1
 ON alldatatypes.id = alldatatypes1.id AND alldatatypes.a = alldatatypes1.a1;