自己寫輸入輸出適配器,只需要實現OptimizedInputAdaptorI和OptimizedInputAdaptorI就可以了。
1.輸入適配器
package com.example;
import java.util.Date;
import zstreamplus.eventbuffer.PrimitiveEvent;
import zstreamplus.eventbuffer.ValueType;
import com.sodbase.inputadaptor.OptimizedInputAdaptorI;
public class MyInputAdaptor extends OptimizedInputAdaptorI
{
private String[] myParams;
@Override
public void run()
{
running=true;
while(running)
{
// get the data
// generate the event
PrimitiveEvent primitiveEvent = new PrimitiveEvent();
ValueType valueType = new ValueType("value1", "string");
primitiveEvent.getAttributeMap().put("attrbute1", valueType);
valueType = new ValueType("value2", "double");
primitiveEvent.getAttributeMap().put("attrbute2", valueType);
long timestamp = new Date().getTime();
primitiveEvent.setStart_ts(timestamp);
primitiveEvent.setEnd_ts(timestamp);
//put to the stream
putEventToStream(primitiveEvent);
}
}
@Override
public void setUp()
{
/**
* configured in CEP model file (XML), or in .soddata* file,
* or directly manupulate GraphModelData object
*
* The first parameter should be the stream name that this input adaptor binds.
*/
myParams = getParams();
}
private boolean running = true;
@Override
public boolean isRunning()
{
return running;
//return running state for monitoring
}
@Override
public void stopInputStream()
{
running=false;
// stop input, release
}
}
2.輸出適配器
package com.example;
import java.util.List;
import zstreamplus.eventbuffer.Event;
import zstreamplus.eventbuffer.PrimitiveEvent;
import com.sodbase.outputadaptor.OptimizedOutputAdaptorI;
public class MyOutputAdaptor extends OptimizedOutputAdaptorI
{
String[] myParameters;
@Override
public void output(List<Event> eventlist)
{
while (eventlist.size() > 0)
{
Event e = eventlist.remove(0);
if (e instanceof PrimitiveEvent)
{
//do something here
} else
{
}
}
}
@Override
public void setUp()
{
/**
* configured in CEP model file (XML), or in .soddata* file,
* or directly manupulate GraphModelData object
*/
myParameters=getParams();
}
@Override
public void stopOutput()
{
//release the resources
}
}
寫好適配器後,Export爲jar文件,放到Studio的lib下面,在configuration/adaptor.properties中添加配置,就可以在Studio中測試使用此適配器了。
示例代碼下載SODBASE-CEP-SDK-Adaptor.zip
SODBASE CEP用於輕鬆、高效實施數據監測、監控類、實時交易類項目。嵌入式方式編程參見運行第一個EPL例子。與Storm集成參見EPL與Storm集成。緩存擴展參見與分佈式緩存集成。