Database Reference
In-Depth Information
development language that can be used to build Streams applications. It's
supported by both the Streams Graphical and the Streams Processing Lan-
guage editors, which are integrated with “round-trip ability” so that it's pos-
sible to go back and forth between both editors.
SPL is a very powerful declarative language that provides a higher level
of abstraction for building Streams applications than using lower-level
languages or APIs, in the same way that Jaql or Pig makes development
easier for Hadoop compared to writing MapReduce applications directly.
Streams 3.0 introduces a new XML data type and operators to process
XML natively. Source and sink adapters support XML data, XML can be
queried and manipulated with new operators and functions, and Streams
tuples can be converted to and from XML. Additionally, SPL has been
extensively enhanced with new built-in functions and operators; in fact,
one of our partners, Dr. Alex Philp, Founder and CTO of TerraEchos, Inc.,
noted that their developers can “deliver applications 45 percent faster due
to the agility of [the] Streams Processing Language.” We think that Bó
Thide, a professor at Sweden's top-ranked Uppsala University, said it best
when referring to SPL: “Streams allows me to again be a Space Physicist
instead of a Computer Scientist.” After all, technology is great, but if you
can't quickly apply it to the business need at hand, what's the point?
Streams-based applications built with the Streams Graphical Editor or
written in SPL are compiled using the Streams compiler, which turns them
into binary ( bin ) executable code—this executable code runs in the Streams
environment to accomplish tasks on the various servers in the cluster. An
SPL program is a text-based representation of the graph that we discussed in
the preceding section: It defines the sources, sinks, and operators, as well as
the way in which they are interconnected with a stream. For example, the
following SPL code reads data from a file line by line into tuples, converts
each line to uppercase, and then writes each line to standard output.
composite toUpper {
graph
stream<rstring line> LineStream = FileSource() {
param file : "input_file";
format : line;
}
stream<LineStream> upperedTxt = Functor(LineStream) {
Search WWH ::




Custom Search