Big Data/Analytics Zone is brought to you in partnership with:

Machine learner and data scientist, Ph.D. from the University of Bonn in 2005, now working as a PostDoc at TU Berlin and as chief data scientist and co-founder at TWIMPACT, a startup focussing on real-time social media analysis. Mikio is a DZone MVB and is not an employee of DZone and has posted 34 posts at DZone. You can read more from them at their website. View Full User Profile

Download the Steamdrill Demo

  • submit to reddit
A few days ago, we’ve released the beta version of streamdrill, the real-time event analysis engine which we’ve extracted from our the social media analysis codebase.

The past few days, Leo has been busy working his maven-magic to create a downloadable jar of streamdrill. Just go to and select the “Download” option.

You can then start the jar simply with java. First try

$ java -jar streamdrill.jar -h

to show some of the options, or simply start it with

$ java -Xmx2g -jar streamdrill.jar

to start it on localhost:9669.

Next, get the Python client like this:

$ git clone

and start a example session like this:

$ cd streamdrill-client/streamdrill-python
$ ipython
Python 2.7.3 (default, Sep 26 2012, 21:51:14) 
Type "copyright", "credits" or "license" for more information.

IPython 0.13.1.rc2 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: import streamdrill

In [2]: c = streamdrill.StreamDrillClient("http://localhost:9669")

In [3]: c.create("test", "user", 100, "hour")
Out[3]: u'1c182c7f-40f0-45ca-8d55-7c5fad930173'

In [4]: c.update("test", ["frank"])

In [5]: c.update("test", ["paul"])

In [6]: c.update("test", ["felix"])

In [7]: c.query("test")
[([u'felix'], 1.0),
 ([u'paul'], 0.9994225441413808),
 ([u'frank'], 0.998460858626963)]

Some more things to try

help(streamdrill.StreamDrillClient) show some help on the client.

Define a trend with more than one entity:

c.create("page-views", "page:referer", 100, "day")

and query with filter:

c.query("page-views", 10, filter={'page': '/index.html'})

The demo has no restrictions on the analysis features, but you’re not able to take snapshots of your data (so all data is lost on each restart), and you cannot configure the API key and secret, so you’d probably wouldn’t want to use this in production ;)

If you have more questions, don’t hesitate to contact us under

Published at DZone with permission of Mikio Braun, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)