SlideShare a Scribd company logo
Apache StreamPipes –
Flexible Industrial IoT
Management
Patrick Wiener | PPMC Apache StreamPipes
IoT Track | Sep 29, 2020
Who am I and how did I get here?
§ Researcher by day @FZI (Germany), Open Source
enthusiast by night
§ ACNA19 talk @dominikjriemer, entered Apache
incubator w/ StreamPipes in November 2019
§ PPMC member of Apache StreamPipes
§ GIF-lover
§ Twitter: @patrickwiener, @streampipes
Stream Processing IoTDistributed Systems
this is me
flamingo
Philipp
Dominik
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
Agenda
Industrial IoT in the Factory 4.01
StreamPipes 1012
Roadmap & How to Contribute5
Technical Deepdive3
Demo
Extending StreamPipes4
SDK
Industrial IoT in the Factory 4.0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
IIoT in the Factory 4.0
Data streams everywhere
machine
data
gripping
force
camera
images
sensor
data
environmental
data
gripping
force
ROS ROS
MQTT
Modbus
PLC
REST
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
IIoT in the Factory 4.0
Collecting them is NOT easy but there are great universal protocols
machine
data
gripping
force
camera
images
sensor
data
environmental
data
gripping
force
PLC
ROS ROS
MQTT
Modbus
REST
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
IIoT in the Factory 4.0
StreamPipes sits on top as an industrial IoT toolbox for domain experts
machine
data
gripping
force
camera
images
sensor
data
environmental
data
gripping
force
PLC
ROS ROS
MQTT
Modbus
REST
StreamPipes 101
2
What is StreamPipes?
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
"An open source industrial IoT toolbox to enable non-technical users to
connect, analyze and exploit (IoT) data streams."
Connect Pipeline Editor Dashboard Data Explorer Notifications
beta
How does it work?
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
standalone distributed
Leverage reuseable data processors & sinks2
x86 arm
Deploy & execute the way you like3
Realize use cases 4
Continuous
Asset Monitoring
Calculate live-KPI
Wrap your ML
models and use
them on
sensor/image data
...
Connect IoT sources1
OPC UA
csv
> 30 Adapters
> 100 Pipeline Elements
Training Data
Collection
Pre-processing of
input streams to build
up training data
repository
IIoT in the Factory 4.0
Typical StreamPipes use cases
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
Continuous Asset
Monitoring
Dashboard to provide
live insights of current
state
KPI Analytics
Live overview of
relevant production or
asset KPI
Process / Product
Quality Inspection
Detect time-critical
situations
(CEP vs. ML)
Pipeline Editor: Types of Pipeline Elements
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
Data stream. Ordered sequence of events
provided by a StreamPipes Connect adapter
instance connecting to an industrial event
source (e.g. UR Robot via ROS).
Data Streams
Data Streams
Data Processors
Data Sinks
+
+
Pipeline DAG =
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
Data ProcessorsData Streams
Data processors. Applies a configurable
function on one or more input event streams
(transform, enrich, filter, etc) and produces
an output event stream.
Data Streams
Data Processors
Data Sinks
+
+
Pipeline DAG =
Pipeline Editor: Types of Pipeline Elements
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
Data SinksData Streams Data Processors
Data Streams
Data Processors
Data Sinks
+
+
Pipeline DAG =
Data sinks. Marks the end of a pipeline and
either forwards an input event stream to
§ internal sinks (Dashboard, Datalake) or
§ third-party sink (Kafka, IoTDB, ROS, etc)
Pipeline Editor: Types of Pipeline Elements
StreamPipes IIoT toolbox complementing the Pipeline Editor
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
Connect
Notifications Data Explorer
Dashboard
beta
Demo
Source: https://bit.ly/3fGaqke
Look ma, (almost) no hands!
Technical Deepdive
3
StreamPipes Microservice Architecture
Transport Layer
Data sources
Connect Adapters
web UI
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
Core
More than a web app
Pipeline Element Microservices
Filter
temp > 100
Temp
Sensor
Dashboard
MQTT
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
industrial
event source
100
011
010
001
010
010
100
101
000
111
{
"tstamp": 1453478160,
"machineId": "ID5",
"temperature": 73.5
}
Datalake
Let‘s look a basic Pipeline
It all starts with an event (stream)
API Connect Worker
Description
Runtime
Adapter Library
Transport LayerMQTT Adapter
MQTT
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
industrial
event source
100
011
010
001
010
010
100
101
000
111
{
"tstamp": 1453478160,
"machineId": "ID5",
"temperature": 73.5
}
Anatomy of a connect worker
MQTT Adapter
Event Quality User ConfigurationEvent Schema
Data type, runtime
name, semantic type
Frequency, latency,
measurement unit
Host,
Port, Topic
double C° 192.168.0.10, 1883, my-topic
Adapter Thread
API Connect Worker
Description
Runtime
Adapter Library
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
Anatomy of a connect worker
MQTT Adapter
Transport LayerMQTT Adapter
Connect Masterinvoke
runtime
UI
MQTT
industrial
event source
100
011
010
001
010
010
100
101
000
111
{
"tstamp": 1453478160,
"machineId": "ID5",
"temperature": 73.5
}
start
adapter
http://adapter-url:8099/mqtt
host: 192.168.0.10
port: 1883,
topic: my-topicpayload
user config
protocol: kafka
format: json
host: kafka:9092
outputtopic: <topic>
Event grounding
Adapter Thread
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
Anatomy of a data processor
Numerical Filter
API Data Processor
Description(s)
Runtime
Processing Function(s)
Transport Layer Transport Layer
User Configuration Output Strategy Stream requirements
Event Schema
(data type, ...)
Text Input,
Selections, Slider, ...
Keep, Append,
Custom, ...
Event Grounding
Supported Format,
Supported Protocol
Numerical Filter
[Json,Thrift],
[Kafka, MQTT]numerickeep
threshold: 100,
operator: “>“,
property: “temp“
Function Thread
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
Anatomy of a data processor
Numerical Filter
Pipeline Management
API Data Processor
Description(s)
Runtime
Processing Function(s)
Transport Layer Transport Layer
Numerical Filter
UI
http://svc-url:8090/numericalfilter
value: 100
operator: “>“
property: “temp“payload
protocol: kafka
format: json
host: kafka:9092
inputtopic: <topic>
outputtopic: <topic>
provided user config
Event grounding
start
pipeline
✓
✓
invoke
runtime
Function Thread
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
Pipeline Management
API Data Sink
Description(s)
Runtime
Sink Function(s)
UI
Datalake
Websocket
InfluxDB
Anatomy of a data sink
Dashboard & Datalake sink
Dashboard
Transport Layer
http://svc-url:8090/dashboard
http://svc-url:8090/datalake
payload
invoke
runtime
Sink Thread 1
Sink Thread 2
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
Why do we need such a description layer?
User guidance, pipeline element matching & verification
Supporting and guiding users through pipeline
modeling process
Preventing non-compatible elements to be
connected early on
Pre-selecting suitable event fields in user
configuration dialog
Supporting and guiding users
Pre-selecting suitable event fields
Preventing non-compatible elements
data stream contains
only numeric event fields
requires at least one
boolean event field
Extending StreamPipes
4
Pipeline Elements Microservices
Runtime Options
* [STREAMPIPES-174] New Python Wrapper
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
Standalone
(Java, Siddhi, Python*)
Distributed
(Flink, Spark, Kafka Streams)
Runtime Wrapper
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
MyGreeter data processor
Input requirements, user-defined parameters & output strategy
Input
Params
Output
Transport
Layer
Params
Write your application logic in a few lines
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
Transport LayerTransport Layer
MyGreeter data processor
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
https://github.com/wipatrick/apachecon-demo-processor
SDK
Source: https://bit.ly/3fGaqke
Write your own data processor
Roadmap & How to Contribute
5
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
Python Runtime Wrapper
Improve SDK to develop pipeline elements using Python
(data science audience)
Edge Deployment
Advanced deployment options to assign pipeline
elements to individual nodes (e.g., edge/cloud nodes)
StreamPipes Client
Define/create pipelines from code, which are
automatically deployed in StreamPipes
StreamPipes Platform
Services
API to interact with live/historical data, pipelines and
pipeline elements
Resilience/Fault Tolerance Better failure handling/recovery of state
Pipeline Monitoring/Statistics
Inspect current pipeline execution state, receive
statistics (e.g., processed messages) and see errors.
Feature roadmap
Feature roadmap
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
Python Runtime Wrapper
Edge Deployment
StreamPipes Client
StreamPipes Platform
Services
Resilience/Fault Tolerance
Pipeline Monitoring/Statistics
Want to get involved?
§ Check our issues in Jira to get started
§ See StreamPipes Improvement Proposals in Confluence
§ Subscribe to mailing lists and slack channel and get
involved in the discussions
§ Help us grow the community
§ Looking to contribute?
§ Core/UI features
§ Extensions (adapters, processors, sinks)
§ Docs/Blog posts
Don’t miss the next talk
Analyzing IIoT data with PLC4X and StreamPipes
Philipp Zehnder | PPMC Apache StreamPipesChristofer Dutz | PMC Apache PLC4X
streampipes.apache.org/ | @streampipes | github.com/apache/incubator-streampipes
right after
this talk
+ Toddy
Let‘s connect!
… and leave a star on Github if you like it J
streampipes.apache.org
streampipes.apache.org/docs
apache/incubator-streampipes
@streampipes

More Related Content

PDF
Self-Service IoT Data Analytics with StreamPipes
PDF
Flink for Everyone: Self-Service Data Analytics with StreamPipes
PDF
Implementing Domain Events with Kafka
PDF
Real-Life Use Cases & Architectures for Event Streaming with Apache Kafka
PPTX
Building Azure Logic Apps
PDF
Apache Kafka Architecture & Fundamentals Explained
PDF
Fundamentals Big Data and AI Architecture
PDF
Kafka 101 and Developer Best Practices
Self-Service IoT Data Analytics with StreamPipes
Flink for Everyone: Self-Service Data Analytics with StreamPipes
Implementing Domain Events with Kafka
Real-Life Use Cases & Architectures for Event Streaming with Apache Kafka
Building Azure Logic Apps
Apache Kafka Architecture & Fundamentals Explained
Fundamentals Big Data and AI Architecture
Kafka 101 and Developer Best Practices

What's hot (20)

PDF
Stream processing with Apache Flink (Timo Walther - Ververica)
PDF
Exactly-Once Semantics Revisited: Distributed Transactions across Flink and K...
PDF
ksqlDB: A Stream-Relational Database System
PDF
Benefits of Stream Processing and Apache Kafka Use Cases
PDF
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB) - Friends, Enemies or ...
PDF
Running Apache Spark on Kubernetes: Best Practices and Pitfalls
PPSX
Apache Flink, AWS Kinesis, Analytics
PDF
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
PDF
Apache Kafka and MQTT - Overview, Comparison, Use Cases, Architectures
PPTX
Introduction to Apache Flink
PPTX
Getting started with azure event hubs and stream analytics services
PDF
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®
PPTX
Microsoft Azure BI Solutions in the Cloud
PDF
Apache Kafka
PDF
PDF
When NOT to use Apache Kafka?
PDF
MuleSoft Surat Meetup#54 - MuleSoft Automation
PPTX
The Top 5 Apache Kafka Use Cases and Architectures in 2022
PDF
Red Hat Container Strategy
PPTX
Managing your ML lifecycle with Azure Databricks and Azure ML
Stream processing with Apache Flink (Timo Walther - Ververica)
Exactly-Once Semantics Revisited: Distributed Transactions across Flink and K...
ksqlDB: A Stream-Relational Database System
Benefits of Stream Processing and Apache Kafka Use Cases
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB) - Friends, Enemies or ...
Running Apache Spark on Kubernetes: Best Practices and Pitfalls
Apache Flink, AWS Kinesis, Analytics
MuleSoft Event Driven Architecture (EDA Patterns in MuleSoft) - VirtualMuleys63
Apache Kafka and MQTT - Overview, Comparison, Use Cases, Architectures
Introduction to Apache Flink
Getting started with azure event hubs and stream analytics services
Best Practices for Streaming IoT Data with MQTT and Apache Kafka®
Microsoft Azure BI Solutions in the Cloud
Apache Kafka
When NOT to use Apache Kafka?
MuleSoft Surat Meetup#54 - MuleSoft Automation
The Top 5 Apache Kafka Use Cases and Architectures in 2022
Red Hat Container Strategy
Managing your ML lifecycle with Azure Databricks and Azure ML
Ad

Similar to Apache StreamPipes – Flexible Industrial IoT Management (20)

PDF
Flink for Everyone: Self Service Data Analytics with StreamPipes - Philipp Ze...
PDF
Io t data streaming
PDF
IoT Architectures for Apache Kafka and Event Streaming - Industry 4.0, Digita...
PPTX
IoT and Event Streaming at Scale with Apache Kafka
PDF
Visualizing Big Data in Realtime
PDF
Streaming Visualization
PDF
Data Ingestion in Big Data and IoT platforms
PDF
Streaming Visualization
PDF
Introduction to Stream Processing
PPTX
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
PPTX
Spring on PAS - Fabio Marinelli
PDF
Introduction to Apache NiFi 1.11.4
PPTX
SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...
PDF
Streaming Visualization
PDF
Splunk app for stream
PDF
Apache Pulsar with MQTT for Edge Computing - Pulsar Summit Asia 2021
PDF
Pulsar summit asia 2021 apache pulsar with mqtt for edge computing
PDF
Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...
PDF
A Practical Deep Dive into Observability of Streaming Applications with Kosta...
PDF
Spring and Pivotal Application Service - SpringOne Tour - Boston
Flink for Everyone: Self Service Data Analytics with StreamPipes - Philipp Ze...
Io t data streaming
IoT Architectures for Apache Kafka and Event Streaming - Industry 4.0, Digita...
IoT and Event Streaming at Scale with Apache Kafka
Visualizing Big Data in Realtime
Streaming Visualization
Data Ingestion in Big Data and IoT platforms
Streaming Visualization
Introduction to Stream Processing
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
Spring on PAS - Fabio Marinelli
Introduction to Apache NiFi 1.11.4
SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...
Streaming Visualization
Splunk app for stream
Apache Pulsar with MQTT for Edge Computing - Pulsar Summit Asia 2021
Pulsar summit asia 2021 apache pulsar with mqtt for edge computing
Data Summer Conf 2018, “Building unified Batch and Stream processing pipeline...
A Practical Deep Dive into Observability of Streaming Applications with Kosta...
Spring and Pivotal Application Service - SpringOne Tour - Boston
Ad

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Electronic commerce courselecture one. Pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Empathic Computing: Creating Shared Understanding
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
KodekX | Application Modernization Development
PPTX
Cloud computing and distributed systems.
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
A Presentation on Artificial Intelligence
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
NewMind AI Monthly Chronicles - July 2025
NewMind AI Weekly Chronicles - August'25 Week I
Advanced methodologies resolving dimensionality complications for autism neur...
Understanding_Digital_Forensics_Presentation.pptx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Per capita expenditure prediction using model stacking based on satellite ima...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Electronic commerce courselecture one. Pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
The AUB Centre for AI in Media Proposal.docx
Unlocking AI with Model Context Protocol (MCP)
Empathic Computing: Creating Shared Understanding
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
KodekX | Application Modernization Development
Cloud computing and distributed systems.
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
A Presentation on Artificial Intelligence
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Chapter 3 Spatial Domain Image Processing.pdf
NewMind AI Monthly Chronicles - July 2025

Apache StreamPipes – Flexible Industrial IoT Management