////
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at
  http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
////
:documentationPath: /pipeline/transforms/
:language: en_US
:description: The Append Streams transform reads the data from two transforms, only processing the second stream after the first one is finished.

= image:transforms/icons/append.svg[Append Streams Icon, role="image-doc-icon"] Append Streams

[%noheader,cols="3a,1a", role="table-no-borders" ]
|===
|
== Description

The Append Streams transform reads the data from two transforms, only processing the second stream after the first one is finished.

As always, the row layout for the input data coming from both transforms has to be identical: the same row lengths, the same data types, the same fields at the same field indexes in the row.

*Important*: If you don't care about the order in which the output rows occur, you can use any transform to create a union of 2 or more data streams.
|
== Supported Engines
[%noheader,cols="2,1a",frame=none, role="table-supported-engines"]
!===
!Hop Engine! image:check_mark.svg[Supported, 24]
!Spark! image:cross.svg[Not Supported, 24]
!Flink! image:cross.svg[Not Supported, 24]
!Dataflow! image:cross.svg[Not Supported, 24]
!===
|===

== Options

[options="header"]
|===
|Option|Description
|Transform name|Name of the transform.
Note: This name has to be unique in a single pipeline.
|Head hop|The name of the transform from which will be read the first stream.
|Tail hop|The name of the transform from which will be read the second stream.
|===
