flink-htm
flink-htm copied to clipboard
Distributed, streaming anomaly detection and prediction with HTM in Apache Flink
Template: ``` DataStream result = HTM.learn(stream, new Network()) .select(new InferenceSelectFunction() { @Override public T select(Tuple2 inference) throws Exception { return inference.f1.getAnomalyScore(); } }); ``` The overrided select is never called....
The `RiverSource` should support a graceful stop by implementing `StoppableFunction`. Streaming jobs are stoppable by the user as per [FLINK-2111](https://issues.apache.org/jira/browse/FLINK-2111).
The Flink API supports stateful mapper functions and so should the HTM DSL. An important scenario is to store predictions over time for comparison purposes with later events, to calculate...
Publish the first release of the library to Central.
**flink-htm** provides a convenience DSL for encoders (see [Input Data](../wiki/input-Data) wiki page). Many but not all encoders are supported. Simply create additional companion objects as needed in [Encoders.scala](https://github.com/nupic-community/flink-htm/blob/master/flink-htm-streaming-scala/src/main/scala/org/numenta/nupic/encoders/scala/Encoders.scala).
Flink provides a unit test framework for operators - or at least an integration test using an embedded Flink instance. - Use a mock Network. - Enhance the existing test...
_River View_ rivers come in two varieties - scalar and geospatial. It is unclear (to me) what extra work is needed to support geospatial rivers - maybe nothing. Please test...
It is possible for events to arrive out-of-order into the HTM operator. We should reorder the events using an internal queue, using the watermark to make progress. See the flink-cep...
Let's develop a connector to read Socrata streams. Consider using the [soda-java](https://github.com/socrata/soda-java) library, but be aware that its dependencies are fairly old (jackson 1, jersey 1). We would probably need...