MERGE_JOIN does not work with different mappings in joinKey?

Hi,

I encountered a problem when trying to join 3 files. File 1 is join to File 2 with key “REFERENCE”, and File 1 is join to File 3 with key “NAME”. The error from CloverETL is:

Graph definition file: palmer.grf
ERROR [main] - Can’t create object of type EXT_MERGE_JOIN with reason: MERGE_JOIN:JOIN:Driver keys differ
Exception in thread “main” java.lang.RuntimeException: Can’t create object of type EXT_MERGE_JOIN with reason: MERGE_JOIN:JOIN:Driver keys differ
at org.jetel.component.ComponentFactory.createComponent(ComponentFactory.java:132)
at org.jetel.graph.TransformationGraphXMLReaderWriter.instantiateNodes(TransformationGraphXMLReaderWriter.java:446)
at org.jetel.graph.TransformationGraphXMLReaderWriter.instantiatePhases(TransformationGraphXMLReaderWriter.java:409)
at org.jetel.graph.TransformationGraphXMLReaderWriter.read(TransformationGraphXMLReaderWriter.java:317)
at org.jetel.graph.runtime.GraphExecutor.loadGraph(GraphExecutor.java:213)
at org.jetel.graph.runtime.GraphExecutor.loadGraph(GraphExecutor.java:227)
at org.jetel.main.runGraph.main(runGraph.java:268)

here is my graph file:

<?xml version="1.0" encoding="UTF-8"?>

so does that mean that we cannot join files using different keys? or is my joinKey=“REFERENCE=REFERENCE#NAME=NAME” not correct? isn’t the first mapping “REFERENCE=REFERENCE” meant for File 1 to File 2, and second mapping “NAME=NAME” meant for File 1 to File 3?

Any suggestions/help is greatly appreciated :slight_smile:

al

Hi,
it impossible to join files using different keys. Merge Join joins driver records with slaves due to key field(s) value, so the driver key has to be the same for all slaves. Moreover records have to be sorted due to this key.

actually, that makes sense… the driver key has to be the same, but the slaves’ keys can be different… thanks for clarifying my thoughts :slight_smile: