-
Pull a eKuiper Docker image from
https://hub.docker.com/r/lfedge/ekuiper/tags
. It's recommended to usealpine
image in this tutorial (refer to eKuiper Docker for the difference of eKuiper Docker image variants). -
Set eKuiper source to an MQTT server. This sample uses server locating at
tcp://broker.emqx.io:1883
.broker.emqx.io
is a public MQTT test server hosted by EMQ.docker run -p 9081:9081 -d --name kuiper -e MQTT_SOURCE__DEFAULT__SERVER="tcp://broker.emqx.io:1883" lfedge/ekuiper:$tag
-
Create a stream - the stream is your stream data schema, similar to table definition in database. Let's say the temperature & humidity data are sent to
broker.emqx.io
, and those data will be processed in your LOCAL RUN eKuiper docker instance. Below steps will create a stream nameddemo
, and data are sent todevices/device_001/messages
topic, whiledevice_001
could be other devices, such asdevice_002
, all of those data will be subscribed and handled bydemo
stream.-- In host # docker exec -it kuiper /bin/sh -- In docker instance # bin/kuiper create stream demo '(temperature float, humidity bigint) WITH (FORMAT="JSON", DATASOURCE="devices/+/messages")' Connecting to 127.0.0.1:20498... Stream demo is created. # bin/kuiper query Connecting to 127.0.0.1:20498... kuiper > select * from demo where temperature > 30; Query was submit successfully.
-
Publish sensor data to topic
devices/device_001/messages
of servertcp://broker.emqx.io:1883
with any MQTT client such as MQTT X.# mqttx pub -h broker.emqx.io -m '{"temperature": 40, "humidity" : 20}' -t devices/device_001/messages
-
If everything goes well, you can see the message is print on docker
bin/kuiper query
window. Please try to publish another message withtemperature
less than 30, and it will be filtered by WHERE condition of the SQL.kuiper > select * from demo WHERE temperature > 30; [{"temperature": 40, "humidity" : 20}]
If having any problems, please take a look at
log/stream.log
. -
To stop the test, just press
ctrl + c
inbin/kuiper query
command console, or inputexit
and press enter.
You can also refer to eKuiper dashboard documentation for better using experience.
Next for exploring more powerful features of eKuiper? Refer to below for how to apply LF Edge eKuiper in edge and integrate with AWS / Azure IoT cloud.