The Esper EPL Notebook is an interpreter for processing time and event sequences with EPL. It is for use with Apache Zeppelin, which provides a web-based notebook that enables data-driven, interactive data analytics and collaborative documents.
If you are looking for a web application that is hosted for you, we also provide the Esper EPL Online web application.
Setting up Zeppelin
The Esper EPL Notebook interpreter currently requires Apache Zeppelin version 0.12.0. The link to download Apache Zeppelin is Download Apache Zeppelin.
We recommend running Zeppelin on Linux. For running it on Windows, we recommend Windows Subsystem for Linux (WSL, a Windows feature) for running Zeppelin.
After unpacking the Zeppelin distribution, you may change the Zeppelin configuration by going to the "conf" folder and copying the file "zeppelin-site.xml.template" to "zeppelin-site.xml". For WSL users that run Zeppelin locally, change the "zeppelin.server.addr" setting to "0.0.0.0" so that WSL exposes the port.
Esper EPL Interpreter Download
EsperTech makes the interpreter jar file available under an EsperTech End User License Agreement. By downloading the interpreter jar file you agree to the terms of the EsperTech End User License Agreement..
Download Links : zeppelin-esper-0.12.0.jar LICENSE
Setting up the Zeppelin Esper EPL Interpreter
After unpacking Zeppelin, the Zeppelin "interpreter" folder contains all built-in Zeppelin interpreters. Create a folder "esper" under the "interpreter" folder. Copy the downloaded Esper EPL interpreter jar file to this folder.
Start or restart Zeppelin. This is done by navigating to the download folder and executing the command "./bin/zeppelin-daemon.sh start".
You can now verify that Zeppelin loaded the Esper EPL interpreter by navigating to the Zeppelin web app. If you run Zeppelin locally the default port is 8080 and the URL is "https://localhost:8080". In the upper right hand corner, click on the "anonymous" dropdown and select the "Interpreter" option. You should be able to find an entry that looks like this: "esper %esper, %esper.scenario, %esper.setup, %esper.test".
Quick Start
Navigate to the Zeppelin web app and create a new note, like this: Click on the "Notebook" dropdown at the very top left of the web app and select the "Create new Note" option. Zeppelin displays a dialog that allows you to provide a name for the new note and to set the default interpreter. For the "Default Interpreter" make sure to choose "Esper". Click on the "Create" button to create the new note.
In the first paragraph of the note, enter your EPL. For testing, we provide some EPL here:
create schema StockTick(symbol string, price double);
@Name('Out') select * from StockTick;
Hover the mouse to the bottom of the text and Zeppelin will display an "Add Paragraph" button. Click this button to add a second paragraph. Alternatively, click the gear icon on the top-right of a paragraph and select the "Create new paragraph" option.
In the second paragraph of the note, enter your scenario. For testing, we provide some event-text that you can cut and paste here (make sure scenarios have the "%scenario" prefix):
%scenario StockTick={symbol='GE', price=20.5} t=t.plus(5 seconds) StockTick={symbol='YHOO', price=65}
Now you have a complete note with some EPL and some scenario-text. Let's proceed to running the whole note. There is a play icon next to the note name on top of the web page that can be used to run all paragraphs. Click that play icon and select "OK" when Zeppelin confirms the action. Alternatively, each paragraph also has a play icon that can be used to just run each paragraph.
After a short moment of processing for the first time, which starts up the interpreter process, you should see this output as part of the second paragraph:
Time Statement Stream Output Event 1970-01-01 00:00:00.000 ......
Documentation
The full documentation has more information on the EPL, scenario and setup:
Documentation Links : PDF print version Online HTML Single page HTML
Additional Information
There is no need to use a script to install the interpreter into Zeppelin. Simply placing the interpreter jar file and folder and restarting Zeppelin will load the interpreter. The interpreter is not available in public Maven repositories. The interpreter is a single shaded jar file that contains all dependencies.