GithubHelp home page GithubHelp logo

qminer / qtopology Goto Github PK

View Code? Open in Web Editor NEW
19.0 19.0 5.0 3 MB

Distributed stream processing layer

License: BSD 2-Clause "Simplified" License

JavaScript 41.54% TypeScript 53.39% CSS 0.71% HTML 4.36%
complex-event-processing javascript nodejs topology

qtopology's Introduction

QMiner

Join the chat at https://gitter.im/qminer/qminer NPM Version NPM Downloads Linux Build Linux Build Windows Build Testing Workflow

QMiner is an analytics platform for large-scale real-time streams containing structured and unstructured data. It is designed for scaling to millions of data points on high-end commodity hardware, providing efficient storage, retrieval and analytics mechanisms with real-time response.

Project homepage

Examples

Prerequisites

  • node.js v14.x, v12.x, v10.x and npm 5.3 or higher To test that your node.js version is correct, run node --version and npm --version. Not compatible with nodejs v0.10 or older.

Windows

Install

To Install the qminer package run:

npm install qminer

Test. To test if the package was successfully installed run:

node -e "require('qminer'); console.log('OK')"

Compile from Source

If you wish to compile the package from source, please address the instructions.

Documentation

The package has a full documentation available online:

Acknowledgments

QMiner is developed by Department of Artificial Intelligence at Jozef Stefan Institute, Quintelligence, Qlector and other contributors.

The authors would like to acknowledge funding from the European Union Seventh Framework Programme, under Grant Agreements 288342 (XLike), 611346 (XLime), 611875 (Symphony), 317534 (Sophocles), 318452 (Mobis), 600074 (NRG4Cast), 619437 (Sunseed), 632840 (FI-Impact) and 612329 (ProaSense).

This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No 636160-2 (Optimum).

qtopology's People

Contributors

azure-pipelines[bot] avatar bergloman avatar blazf avatar dependabot[bot] avatar rupnikj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

qtopology's Issues

RSS spout

A spout that would read data from RSS or ATOMcfeed and emit parsed posts.

Dir-monitor spout

Spout that periodically monitors given directory and reports new files

Implement flow control

  • Spouts and bolts should be monitored with respect to emitted tuples
  • Queuing mechanism should be implemented before each bolt to allow some flexibility regarding processed tuples
    • Using high_water and low_water signals (from settings)
  • Bolts need to ack their data and thus send control feedback to previous nodes in the topology

Topology weight indication

Topology definition can include its weight - an approximation of the resource intensity of running this topology.
Leader should take this indication into account when doing load distribution.

Default weight is 1.

File-appender bolt

Bolt should append each incoming data as plain text into given file.
Creates file if it doesn't exist, appends if exists.

Advanced flow control

Each bolt should have a queue in front of it and handle multi-spout inbound requests

Topology error handling

If topology repeatedly crashes, worker should try up to 5 restarts per 10 minutes and then disable it.

Bolt - allow_parallel

Bolts by design execute in sync manner - the topology takes care of waiting.
Allow (opt-in) async execution (non-blocking) when bolt settings require it.

GET bolt

result should be text, not Buffer

Heartbeat

Make heartbeat part of the engine

Stream-assigner BOLT

This bolt will assign different stream ids to data, depending on the content. Match is determined using the same pattern matching mechanism as in filter bolt.

JsonSchema - warnings

Schema validator should report errors when optional fields names are miss-spelled

Stream mechanism

Spouts and bolts can tag tuples with stream names, while bolts can subscribe to specific stream names.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.