SODBASE CEP學習進階篇(三):自己寫輸入輸出適配器

自己寫輸入輸出適配器,只需要實現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集成。緩存擴展參見與分佈式緩存集成


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章