5 minutes quick start
Pull a Kuiper Docker image from
https://hub.docker.com/r/emqx/kuiper/tags
. It’s recommended to usealpine
image in this tutorial (refer to Kuiper Docker (opens new window) for the difference of Kuiper Docker image variants).Set Kuiper 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 (opens new window).docker run -p 9081:9081 -d --name kuiper -e MQTT_SOURCE__DEFAULT__SERVERS=[tcp://broker.emqx.io:1883] emqx/kuiper:$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 Kuiper 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 tools (opens new window). Below sample usesmosquitto_pub
.# mosquitto_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 Kuiper dashboard documentation (opens new window) for better using experience.
Next for exploring more powerful features of EMQ X Kuiper? Refer to below for how to apply EMQ X Kuiper in edge and integrate with AWS / Azure IoT cloud.