You must create input and output streams when you register a query. Either bind those streams to existing streams in an existing project, or leave them unbound and instead use an out-of-process adapter to write data to or read data from those streams.
You must specify the schema for these streams. The individual SDK chapters explain how to specify the schema of a stream when you call registerQuery().
In addition to creating input and output streams, your registered query may also create local streams. If you use local streams, do not specify a schema for them. The local stream's schemas will be deduced from the results of the CCL statements in the registered query, so you must write the CCL statements that reference those streams in a way that makes implicit schema determination possible.
Streams in registered queries are populated in one of the following ways:
Via the streams to which they are bound; or,
Via an out-of-process adapter, which will write to the stream's URI.
ccl://server:port/Stream/Workspace/QueryName/StreamNamewhere
Workspace is the name of the workspace that you specify when you call the registerquery() function/method.
QueryName is the name of the query that you specify when you call rregisterQuery(). This name must be unique within the workspace.
StreamName is the name of this specific stream. This stream name must be unique within the query.