Getting started with IBM Streams v4.3 with Quick Start Edition

Edit me

Download and install

If you haven’t already done so, download and install Streams Quick Start Edition. For instructions, see Try IBM Streams v4.3 with Quick Start Edition.

Streams overview

For a quick overview about Streams and developing in Streams, see the following video:

Getting started

Run your first Streams application

Run your first Streams application, “Hello, World!” using Streams Studio.

Launch Streams Studio

If you are using the Docker QSE:

If you are using the Native Streams installation:

Import and run the applications

Watch this 2-minute walkthrough on importing and running your first Streams application.

Note: this video does not have narration.

Now that you have got Streams Studio up and running, the following sections provide some resources to help you create your own applications in the language of your choice.

Developing applications in Java, Scala, or Python

In addition to Streams Processing Language (SPL) discussed in the following section, Streams applications can be created in Java, Scala, and Python.

Sample Streams application in Java, Scala, and Python:

package simple;


  public static void main(String[] args) throws Exception {

           * Create the container for the topology that will
           * hold the streams of tuples.
          Topology topology = new Topology("HelloWorld");

           * Declare a source stream (hw) with String tuples containing two tuples,
           * "Hello" and "World!".
          TStream<String> hw = topology.strings("Hello", "World!");

           * Sink hw by printing each of its tuples to System.out.

           * At this point the topology is declared with a single
           * stream that is printed to System.out.

           * Now execute the topology by submitting to a StreamsContext.
           * If no argument is provided then the topology is executed
           * within this JVM (StreamsContext.Type.EMBEDDED).
           * Otherwise the first and only argument is taken as the
           * String representation of the desired context
          if (args.length == 0)
package simple


    import java.util.concurrent.TimeUnit


    object HelloWorldScala {
      def main(args: Array[String]) {
        val topology = new Topology("HelloWorldScala")

        var hw = topology.strings("Hello", "World!")    

import sys
from streamsx.topology.topology import Topology
import streamsx.topology.context
import hello_world_functions

def main():
    Sample Hello World topology application. This Python application builds a
    simple topology that prints Hello World to standard output.

    The application implements the typical pattern
    of code that declares a topology followed by
    submission of the topology to a Streams context.

    This demonstrates the mechanics of declaring a topology and executing it.


    # Create the container for the topology that will hold the streams of tuples.
    topo = Topology("hello_world")

    # Declare a source stream (hw) with string tuples containing two tuples,
    # "Hello" and "World!".
    hw = topo.source(hello_world_functions.source_tuples)

    # Sink hw by printing each of its tuples to standard output

    # At this point the topology is declared with a single
    # stream that is printed to standard output

    # Now execute the topology by submitting to a standalone context.
    streamsx.topology.context.submit("STANDALONE", topo.graph)

if __name__ == '__main__':
def source_tuples():
    Returns an iterable of strings
    return ["Hello", "World!"]

To get started, see these development guides:

Developing applications by using Streams Processing Language (SPL)

Streams Processing Language is designed from the ground up for writing streaming applications. To quickly get started, see the following resources:

Streams is shipped with comprehensive development tooling.

Streams Studio

To learn about how to develop using Streams Studio (our drag-and-drop IDE):

Writing Java Operators

If you have existing Java code, you can easily reuse your code by writing a Java operator or native Java functions.

SparkMLLib in Streams

To get started, follow this development guide:

Apache Edgent (aka Open Embedded Streams) Integration

Gather local, real-time analytics from equipment, vehicles, systems, appliances, devices and sensors of all kinds. To get started, check out the Apache Edgent website for more information and guides:

Getting started for the data engineer

As a data engineer, you are responsible for:

  • Designing, building, and managing data and analytic systems to ensure they are secure, reliable, and scalable
  • Making all data, including data in motion, available for analysis by other team members such as data scientists and developers
  • Capturing data in motion and integrating it with data at rest
  • Leveraging the newest technologies for stream computing

Below are some resources to help you get started.

Integrating with Streams

Streams is shipped with many toolkits out of the box to enable integration with some of the most popular systems like HDFS, HBase, Kafka, Active MQ and more. To learn about the set of toolkits that are shipped as part of the Streams product, refer to the Product Toolkits Overview.

IBMStreams on Github provides a platform that enables Streams to rapidly deliver our support to emgerging technologies to you. It is also a place for us to share sample applications and helpful utilities. For a list of open-source projects hosted on Github, see: IBM Streams Github Projects Overview.

Integration with IBM InfoSphere Data Governance Catalog

With IBM InfoSphere Data Governance Catalog integration, developers can easily discover the data and schema that are available for use. By building data lineage with your Streams application, you can quickly see and control how data is consumed. To get started, see the Streams Governance Quickstart Guide.

Cybersecurity Toolkit

The Cybersecurity Toolkit provides operators that are capable of analyzing network traffic and detecting suspicious behaviour. For more information about using the Cybersecurity Toolkit, see the Cybersecurity Getting Started Guide

Streams and SPSS

SPSS is analytic predictive software that enables you to build predictive models from your data. Your application can perform real-time predictive scoring by running these predictive models using the SPSS operators.

To learn about Streams can integrate with SPSS: Streams and SPSS Lab.

Streams domain management and administration

Streams Console is the web-based administration console for monitoring and managing your Streams domain. Create customized dashboards to monitor your Streams domain, instances and applications.

Streams Console

To familiarize yourself with Streams Console, see this video:

Getting started for the business user

As a business user, you need to:

  • Identify patterns, trends, risks and opportunities in data
  • Build predictive analytic models
  • Use visualization tools to explore and uncover high value data.

Below are some resources to help you get started.

Streams and Microsoft Excel

Streams and Excel

IBM Streams integrates with Microsoft Excel, allowing you to see, analyze and visulize live streaming data in an Excel worksheet. This article helps you get started: Streams for Microsoft Excel

In the following demo, we demonstrate how you may build a marketing dashboard from real-time data using Excel.

Operational Decision Manager (ODM)

IBM Streams integrates with ODM rules, allowing you to create business rules, construct rule flows, and create and deploy rules applications to analyze data and automate decisions in real-time. This article helps you get started: ODM Toolkit Lab

Streams Community

The following Streams resources can help you connect with the Streams community and get support when you need it:

  • Streamsdev - This resource is a developer-to-developer website maintained by the Streams Development Team. It contains many useful articles and getting started material. Check back often for new articles, tips and best practises to this website.
  • Streams Tutorials Hub A collection of available tutorials, labs and courses.
  • Streams Forum - This forum enables you to ask, and get answers to your questions, related to IBM Streams. If you have questions, start here.
  • IBMStreams on Github - Streams is shipped with many useful toolkits out of the box. IBMStreams on Github contains many open-source toolkits. For a list of available toolkits available on Github, see this web page: IBMStreams Github Toolkits.
  • IBM Streams Support - This website provides information about IBM Streams downloads, technical support tools, documentation, and other resources.
  • IBM Streams Product Site - This website provides a broad range of information and resources about Streams and related topics.