Modeling Guide

Operators

An operator represents a vertex of a graph. An operator is a reactive component, and reacts only to events from the environment.

An event from the environment is a message delivered to the operator through its input ports. The operator can interact with the environment through its output ports. The operators are unaware of the graph in which it is defined and the source and target of its incoming and outgoing connections.

The following image is a sample operator along with the input ports and output ports. Each port is associated with port type, and the tool uses color codes to identify compatible port types.

The tool provides certain base operators. You can use these base operators in a graph for productive use cases, or customize and use them to derive other operators (for other use cases).

The predefined operators within the tool can be classified as,
  • Connectors to messaging systems (Kafka, MQTT, NATS, and WAMP)
  • Connectors to store and read data (File, HDFS, S3)
  • Connectors to databases (SAP HANA, SAP Vora)
  • Javascript engine for manipulating arbitrary data
  • Process operators to execute any program (stateful and stateless) for manipulating data in the graph.
  • Operators for type conversion
  • Operators for digital signal processing (beta)
  • Operators for machine learning (beta)
  • Operators for image processing (beta)
Operator behavior at runtime

Operators require a certain runtime environment for their execution. For example, if an operator executes some JavaScript code, then the operator requires an environment with a JavaScript engine. The SAP Data Hub Modeler provides certain predefined environments for operators, and these environments are made available to users as a library of Dockerfiles.

When you execute a graph, the tool translates each operator in the graph into processes. It then searches the Dockerfiles for an environment suitable for the operator execution and instantiates a docker image.