blob: 8cb76477d50c45364fad37b04e23812e89f454be [file] [log] [blame]
<!DOCTYPE html >
<html>
<head>
<title>source - io.gearpump.streaming.source</title>
<meta name="description" content="source - io.gearpump.streaming.source" />
<meta name="keywords" content="source io.gearpump.streaming.source" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<link href="../../../../lib/template.css" media="screen" type="text/css" rel="stylesheet" />
<link href="../../../../lib/diagrams.css" media="screen" type="text/css" rel="stylesheet" id="diagrams-css" />
<script type="text/javascript" src="../../../../lib/jquery.js" id="jquery-js"></script>
<script type="text/javascript" src="../../../../lib/jquery-ui.js"></script>
<script type="text/javascript" src="../../../../lib/template.js"></script>
<script type="text/javascript" src="../../../../lib/tools.tooltip.js"></script>
<script type="text/javascript">
if(top === self) {
var url = '../../../../index.html';
var hash = 'io.gearpump.streaming.source.package';
var anchor = window.location.hash;
var anchor_opt = '';
if (anchor.length >= 1)
anchor_opt = '@' + anchor.substring(1);
window.location.href = url + '#' + hash + anchor_opt;
}
</script>
</head>
<body class="value">
<div id="definition">
<img src="../../../../lib/package_big.png" />
<p id="owner"><a href="../../../package.html" class="extype" name="io">io</a>.<a href="../../package.html" class="extype" name="io.gearpump">gearpump</a>.<a href="../package.html" class="extype" name="io.gearpump.streaming">streaming</a></p>
<h1>source</h1><span class="permalink">
<a href="../../../../index.html#io.gearpump.streaming.source.package" title="Permalink" target="_top">
<img src="../../../../lib/permalink.png" />
</a>
</span>
</div>
<h4 id="signature" class="signature">
<span class="modifier_kind">
<span class="modifier"></span>
<span class="kind">package</span>
</span>
<span class="symbol">
<span class="name">source</span>
</span>
</h4>
<div id="comment" class="fullcommenttop"></div>
<div id="mbrsel">
<div id="textfilter"><span class="pre"></span><span class="input"><input id="mbrsel-input" type="text" accesskey="/" /></span><span class="post"></span></div>
<div id="visbl">
<span class="filtertype">Visibility</span>
<ol><li class="public in"><span>Public</span></li><li class="all out"><span>All</span></li></ol>
</div>
</div>
<div id="template">
<div id="allMembers">
<div id="types" class="types members">
<h3>Type Members</h3>
<ol><li name="io.gearpump.streaming.source.DataSource" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
<a id="DataSourceextendsSerializable"></a>
<a id="DataSource:DataSource"></a>
<h4 class="signature">
<span class="modifier_kind">
<span class="modifier"></span>
<span class="kind">trait</span>
</span>
<span class="symbol">
<a href="DataSource.html"><span class="name">DataSource</span></a><span class="result"> extends <span class="extype" name="java.io.Serializable">Serializable</span></span>
</span>
</h4><span class="permalink">
<a href="../../../../index.html#io.gearpump.streaming.source.package@DataSourceextendsSerializable" title="Permalink" target="_top">
<img src="../../../../lib/permalink.png" />
</a>
</span>
<p class="shortcomment cmt">interface to implement custom source where data is read into the system.</p><div class="fullcomment"><div class="comment cmt"><p>interface to implement custom source where data is read into the system.
a DataSource could be a message queue like kafka or simply data generation source.</p><p>an example would be like</p><pre>GenStringSource <span class="kw">extends</span> DataSource {
<span class="kw">def</span> open(context: TaskContext, startTime: <span class="std">Option</span>[TimeStamp]): <span class="std">Unit</span> = {}
<span class="kw">def</span> read(batchSize: <span class="std">Int</span>): <span class="std">List</span>[Message] = {
<span class="std">List</span>.fill(batchSize)(Message(<span class="lit">"message"</span>))
}
<span class="kw">def</span> close(): <span class="std">Unit</span> = {}
}</pre><p>subclass is required to be serializable
</p></div></div>
</li><li name="io.gearpump.streaming.source.DataSourceTask" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
<a id="DataSourceTaskextendsTask"></a>
<a id="DataSourceTask:DataSourceTask"></a>
<h4 class="signature">
<span class="modifier_kind">
<span class="modifier"></span>
<span class="kind">class</span>
</span>
<span class="symbol">
<a href="DataSourceTask.html"><span class="name">DataSourceTask</span></a><span class="result"> extends <a href="../task/Task.html" class="extype" name="io.gearpump.streaming.task.Task">Task</a></span>
</span>
</h4><span class="permalink">
<a href="../../../../index.html#io.gearpump.streaming.source.package@DataSourceTaskextendsTask" title="Permalink" target="_top">
<img src="../../../../lib/permalink.png" />
</a>
</span>
<p class="shortcomment cmt">general task that runs any <a href="DataSource.html" class="extype" name="io.gearpump.streaming.source.DataSource">DataSource</a>
see <a href="DataSourceProcessor$.html" class="extype" name="io.gearpump.streaming.source.DataSourceProcessor">DataSourceProcessor</a> for its usage</p><div class="fullcomment"><div class="comment cmt"><p>general task that runs any <a href="DataSource.html" class="extype" name="io.gearpump.streaming.source.DataSource">DataSource</a>
see <a href="DataSourceProcessor$.html" class="extype" name="io.gearpump.streaming.source.DataSourceProcessor">DataSourceProcessor</a> for its usage</p><p>DataSourceTask calls</p><ul><li><code>DataSource.open</code> in <code>onStart</code> and pass in <a href="../task/TaskContext.html" class="extype" name="io.gearpump.streaming.task.TaskContext">io.gearpump.streaming.task.TaskContext</a> and application start time</li><li><code>DataSource.read</code> in each <code>onNext</code>, which reads a batch of messages whose size are defined by
<code>gearpump.source.read.batch.size</code>.</li><li><code>DataSource.close</code> in <code>onStop</code>
</li></ul></div></div>
</li><li name="io.gearpump.streaming.source.DefaultTimeStampFilter" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
<a id="DefaultTimeStampFilterextendsTimeStampFilter"></a>
<a id="DefaultTimeStampFilter:DefaultTimeStampFilter"></a>
<h4 class="signature">
<span class="modifier_kind">
<span class="modifier"></span>
<span class="kind">class</span>
</span>
<span class="symbol">
<a href="DefaultTimeStampFilter.html"><span class="name">DefaultTimeStampFilter</span></a><span class="result"> extends <a href="../transaction/api/TimeStampFilter.html" class="extype" name="io.gearpump.streaming.transaction.api.TimeStampFilter">TimeStampFilter</a></span>
</span>
</h4><span class="permalink">
<a href="../../../../index.html#io.gearpump.streaming.source.package@DefaultTimeStampFilterextendsTimeStampFilter" title="Permalink" target="_top">
<img src="../../../../lib/permalink.png" />
</a>
</span>
<p class="shortcomment cmt">default TimeStampFilter that filters out messages with smaller timestamps
</p>
</li></ol>
</div>
<div id="values" class="values members">
<h3>Value Members</h3>
<ol><li name="io.gearpump.streaming.source.DataSourceConfig" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
<a id="DataSourceConfig"></a>
<a id="DataSourceConfig:DataSourceConfig"></a>
<h4 class="signature">
<span class="modifier_kind">
<span class="modifier"></span>
<span class="kind">object</span>
</span>
<span class="symbol">
<a href="DataSourceConfig$.html"><span class="name">DataSourceConfig</span></a>
</span>
</h4><span class="permalink">
<a href="../../../../index.html#io.gearpump.streaming.source.package@DataSourceConfig" title="Permalink" target="_top">
<img src="../../../../lib/permalink.png" />
</a>
</span>
</li><li name="io.gearpump.streaming.source.DataSourceProcessor" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
<a id="DataSourceProcessor"></a>
<a id="DataSourceProcessor:DataSourceProcessor"></a>
<h4 class="signature">
<span class="modifier_kind">
<span class="modifier"></span>
<span class="kind">object</span>
</span>
<span class="symbol">
<a href="DataSourceProcessor$.html"><span class="name">DataSourceProcessor</span></a>
</span>
</h4><span class="permalink">
<a href="../../../../index.html#io.gearpump.streaming.source.package@DataSourceProcessor" title="Permalink" target="_top">
<img src="../../../../lib/permalink.png" />
</a>
</span>
<p class="shortcomment cmt">utility that helps user to create a DAG starting with <a href="DataSourceTask.html" class="extype" name="io.gearpump.streaming.source.DataSourceTask">DataSourceTask</a>
user should pass in a <a href="DataSource.html" class="extype" name="io.gearpump.streaming.source.DataSource">DataSource</a></p><div class="fullcomment"><div class="comment cmt"><p>utility that helps user to create a DAG starting with <a href="DataSourceTask.html" class="extype" name="io.gearpump.streaming.source.DataSourceTask">DataSourceTask</a>
user should pass in a <a href="DataSource.html" class="extype" name="io.gearpump.streaming.source.DataSource">DataSource</a></p><p>here is an example to build a DAG that reads from Kafka source followed by word count</p><pre><span class="kw">val</span> source = <span class="kw">new</span> KafkaSource()
<span class="kw">val</span> sourceProcessor = DataSourceProcessor(source, <span class="num">1</span>)
<span class="kw">val</span> split = Processor[Split](<span class="num">1</span>)
<span class="kw">val</span> sum = Processor[Sum](<span class="num">1</span>)
<span class="kw">val</span> dag = sourceProcessor ~&gt; split ~&gt; sum</pre></div></div>
</li><li name="io.gearpump.streaming.source.DataSourceTask" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
<a id="DataSourceTask"></a>
<a id="DataSourceTask:DataSourceTask"></a>
<h4 class="signature">
<span class="modifier_kind">
<span class="modifier"></span>
<span class="kind">object</span>
</span>
<span class="symbol">
<a href="DataSourceTask$.html"><span class="name">DataSourceTask</span></a>
</span>
</h4><span class="permalink">
<a href="../../../../index.html#io.gearpump.streaming.source.package@DataSourceTask" title="Permalink" target="_top">
<img src="../../../../lib/permalink.png" />
</a>
</span>
</li></ol>
</div>
</div>
<div id="inheritedMembers">
</div>
<div id="groupedMembers">
<div class="group" name="Ungrouped">
<h3>Ungrouped</h3>
</div>
</div>
</div>
<div id="tooltip"></div>
<div id="footer"> </div>
</body>
</html>