Skip to main content
The following guide provides step by step instructions to get started integrating Kinetica with Storm. This project is aimed to make Kinetica accessible via Storm, meaning data can be streamed from a Kinetica table or to a Kinetica table. The custom Storm Spout and Bolt do no additional processing. Source code for the connector can be found at https://github.com/kineticadb/kinetica-connector-storm

Connector Classes

The two connector classes that integrate Kinetica with Storm are: com.gpudb.storm
  • GPUdbSpout - A Storm Spout, which receives a data stream from a Kinetica database table monitor
  • GPUdbBolt - A Storm Bolt, which receives a data stream from a Spout and writes it to Kinetica

Streaming Data from Kinetica into a Storm Spout

A GPUdbSpout needs to be instantiated with the Kinetica source connection information and the name of the table from which data will be streamed:
When this Spout is used as part of a topology, it will emit streamed records for processing by any configured Bolts.

Streaming Data from a Storm Bolt to Kinetica

A GPUdbBolt needs to be instantiated with the Kinetica target connection information, the name of the collection & table to which data will be streamed, and the size & time thresholds that should be used to trigger data flushes:
The Bolt will create the target table & collection, if either do not exist. If using multi-head ingestion, the Bolt can be created with the prefix of the Kinetica node IP addresses:

Connecting the Streaming Spout to the Streaming Bolt

To connect the GPUdbSpout to the GPUdbBolt, they need to be added to a configured Storm topology and connected:
They can then be submitted to Storm, either by using a simulated cluster:
or by using a live Storm cluster:

Examples

An example can be found in the com.gpudb.storm package:
  • Test - Streaming data from Kinetica to Kinetica via Storm using a custom Spout & Bolt

Installation & Configuration

The example code provided in this project can be run in local mode, where the Storm environment is simulated, or on a live Storm cluster. In local mode, the example can be run on any server. In cluster mode, the example must be run on the head Storm node. Two JAR files are produced by this project:
  • storm-connector-<ver>.jar - can only be run in cluster mode
  • storm-connector-<ver>-jar-with-dependencies.jar - can be run in local or cluster mode
To run the example, issue the Unix command:
where:
example: