Find details on the SPL language, toolkits, APIs, commands, and more.
Streams Processing Language (SPL) is a distributed data flow composition language that is used in Teracloud® Streams. SPL has primitive types, program structures, and definitions that are tailored for streaming data.
Learn about the core capabilities of Teracloud® Streams, its architecture, and key concepts.
Use this information to install, upgrade, and uninstall the Teracloud® Streams product.
Create a basic or an enterprise domain which is a single point for configuring and managing common resources, security, and instances.
Administer the product by using the Teracloud® Streams graphical user interface, APIs, or the streamtool command-line interface.
streamtool
Learn about different Teracloud Streams tools and features to write, compile, run, and test streams applications.
Resolve problems with Teracloud® Streams using the troubleshooting tools provided with the product as well as the resources offered by Teracloud Support.
Application programming interfaces (APIs) provide functions that simplify applications development.
You can specify or change configuration parameters when you use the submitjob or updateoperators operations. The settings control submission constraints, host constraints and locations, and operator status. Parameters are captured and updated in the configuration JSON file. When you change the values in the job configuration overlay file, the changes override any previously set values.
submitjob
updateoperators
Teracloud® Streams provides a number of commands you use to perform tasks.
Teracloud® Streams provides metrics to help evaluate the health of Teracloud Streams services, to aid in diagnosing performance issues, and to analyze throughput of requests. You can use the streamtool checkinstancemetrics, streamtool checkdomainmetrics, streamtool getdomainmetrics, and streamtool checkresourcemetrics commands to view the metrics data.
An operator model is an XML document that describes the basic properties of a primitive operator.
SPL contains types, expressions, statements, functions, clauses, and other elements of a programming language.
This language specification adopts a flavor of Backus-Naur Form (BNF) to describe the syntax of language features.
SPL defines a set of rules to determine the syntax of a program.
Here is the SPL grammar syntax, with references to the sections that contain the semantics.
Though SPL is a streaming language, there are many places where it uses expressions that are found in traditional imperative or functional languages.
Operators can be annotated. Annotations influence the run time behavior of stream applications.
SPL has several primitive types that are tailored for streaming, and a few composite types that are inspired by scripting languages but statically checked. The following topics describe the types, how to define them, and how to convert values between different types.
Operators process tuples in an incoming stream and produce an output stream as a result. SPL supports two kinds of operators: primitive operators and composite operators. A primitive operator is written in C++ or Java™. A composite operator is written in SPL and contains a reusable stream subgraph.
SPLDOC comments start with /** and end with */. These comments are a form of embedded documentation, similar to Doxygen (C), docstrings (Python), or Javadoc™ (Java™). SPLDOC comments are a special form of delimited comments that contain an extra asterisk (*) in the opening tag.
The config clause specifies hints and directives that influence how the compiler builds an operator invocation, or how the runtime system runs it.
config
SPL uses a platform independent binary and character encoding for serializing and deserializing data. This encoding is used for the FileSource, TCPSource, and UDPSource operators, as well as the FileSink, TCPSink, and UDPSink operators.
FileSource
TCPSource
UDPSource
FileSink
TCPSink
UDPSink
You often must parameterize application composition when you create parallel subgraphs, conditional segments, and variable length pipelines. The SPL compiler provides a Perl-based preprocessor for this purpose. SPL files that are authored with the preprocessor directives are named with the .splmm extension and are called mixed-mode SPL programs.
The SPL compiler is an incremental compiler that generates artifacts needed to run your stream application. These artifacts include, for example, C++ code for several entities in your SPL program and an application bundle file.
A toolkit is a set of SPL artifacts, which are organized into a package. Toolkits make SPL or native functions and primitive or composite operators reusable across different applications.
You can use SPLDOC markup in the descriptions associated with the SPL artifacts in a toolkit. The spl-make-doc command generates HTML documentation from the marked up artifacts.
Use this glossary to find terms and definitions for Teracloud® Streams.