Automated migration results
When Import encounters an Alteryx Append tool, it recreates the behavior using a Join gem. Although the Alteryx Append tool behaves like a Cartesian join, Import does not emit a literalCROSS JOIN. Instead, it generates SQL that attaches the selected fields from the secondary input to each row of the primary input using a controlled join pattern. This approach avoids optimizer restrictions associated with explicit CROSS JOIN, preserves field-selection semantics, and ensures consistent behavior.
- Prophecy generates a Join gem that combines the target and source streams.
- The Join is configured with a constant condition (
1 = 1), effectively performing a cross join between the two inputs. - All columns from both inputs are preserved (
in0.*andin1.*), so each record from one stream is replicated for every record in the other stream, matching Alteryx Append semantics. - The resulting dataset is then available as a single downstream output in the Prophecy pipeline.
Manually replicate in Prophecy
- Add a Join gem configured as a Cross Join.
- Connect two datasets to the Join gem.
- Preview results in the Data Explorer.
Configuration options
Alteryx Append Fields tool
- Attach the Target and Source streams to the Append Fields tool.
- Optionally, deselect any Source fields you do not want replicated onto each Target row.
Prophecy Join gem
Attach two datasets to a Join gem configured as a Cross Join.Output behavior
Alteryx produces a dataset where all combination pairs (Cartesian) or matched rows (key-based) are appended. Prophecy outputs combined rows that match Alteryx’s logical intent.Known caveats
- Target and Source ports do not appear in Prophecy.
- Prophecy often imports cross-joins as joins on a constant condition (such as
1 = 1). This is an explicit representation of a cross join, and is used to preserve semantics and lineage while stabilizing planner behavior. The resulting data is identical to Alteryx’s no-key join or append behavior. - Cross joins can grow extremely large; ensure datasets are appropriately sized.
Example
Goal: Add a simpleproduct_category dataset to every record in a daily_ production log.
Alteryx Append tool example
- Add an Append tool to the canvas.
- Connect the
daily_productiondataset to the T (target) anchor. - Connect the
product_categorydataset to the S (source) anchor.
Prophecy example
In Prophecy, this operation is represented using a Join-based pattern that adds the selected fields from the secondary dataset to each row of the primary dataset. To reproduce this manually in Prophecy:- Add a Join gem configured as a Cross Join.
- Connect the
daily_productionandproduct_categorydatasets to the Join gem.

